XMOS的视频传输

If you have a simple question and just want an answer.
Heirun
Member
Posts: 15
Joined: Thu Jun 04, 2015 11:37 am

XMOS的视频传输

Post by Heirun »

大家好!
我想请教一下xmos在使用AVB协议进行视频传输时,IEEE 802.1AS时钟同步协议是如何起作用的呢?与音频有着怎样的区别呢?因为我在使用wireshark抓包的时候,发现抓上来的视频包中的 Timestamp valid字段是FALSE,AVBTP Timestamp是0x00000000;我之前的理解在音频传输时IEEE 802.1AS主要体现在Timestamp字段,而音频和视频经过AVB协议传输应该仅仅只是数据的封装格式不一样,所以我不能理解视频传输该字段是FALSE。感谢你的任何帮助!谢谢!
Heirun
Member
Posts: 15
Joined: Thu Jun 04, 2015 11:37 am

Post by Heirun »

不好意思,之前理解有误,在传输视频的时候,1722的封包格式中提到Timestamp Valid字段是False,AVBTP Timestamp字段是0x00000000,这是正确的;在视频传输时时间戳字段被封装在188字节TS流数据之前的4个字节,所以我们抓包所看到1394 Packet Data Length字段是192字节(我的理解是 4byte(timestamp)+188byte(TS流数据),不知是否正确?)。但是在代码中看到tsi_output函数中取出时间戳值却并没有地方使用

Code: Select all

while (1) {
#pragma xta label "ts_spi_output_no_data"
      // Wait for the next packet
      while (*test_ptr) {
        // Wait until it is time to transmit the packet
        unsigned ts = *rd_ptr++; //取出时间戳
        // Transmit first word
        sync(p_data);
#pragma xta endpoint "ts_spi_output_first"
        p_sync <: 1;
        p_data <: *rd_ptr++;  //输出第一个TS流的视频数据

#pragma loop unroll
        for (unsigned i=0; i<46; i++) {    
#pragma xta endpoint "ts_spi_output_loop"
          p_sync <: 0;
          p_data <: *rd_ptr++;
        }

        *rd_ptr++ = 0;
        if (rd_ptr > end_ptr)
          rd_ptr = start_ptr;

        test_ptr = rd_ptr + MEDIA_OUTPUT_FIFO_INUSE_OFFSET;
      }
    }
,如果打上的时间戳值没有被使用,那是不是可以认为视频传输的时候802.1AS时间同步协议没有起到作用呢?不知我这样的理解是否正确?还是有其他地方我没有注意到,希望大家能够指点一二,谢谢!