DirectShow–filter 開發 之 程式調試

來源:互聯網
上載者:User

1 MPEG4的網路接收filter 是完成了 但是在VMR9播放時不顯示 畫面

   大夥如果想看VMR9是否接收到資料可以在這裡看

 

 

 看以播放幀數 等參量(在這裡感謝教我這一招的前輩)

 這是怎麼回事呢

在查看了

 state=((recv->pfilter)->m_output)->Deliver(pmediasample);

返回0後 我認定是解碼的問題

而後我跟蹤了 用JRTPlib 接收包含MPEG4流的RTP包 發現

我獲得的第一包資料 最開始竟然不是 00 00 01 B0 (只有懂MPEG4碼流結構的才理解這是什麼意思)我左思右想 不理解 這是為什嗎?

1 難道是因為我的機器是 四核 的 靠想到了jrtplib 難道不支援多核?

2 我代碼裡的問題 但是我看不出來

好 ,我拿出 JRTPLIB 3.7.1帶的example  在一通改動後 我接收 MPEG4發送端的資料

 一接收 竟然 和My Code一樣 呵呵 看來不是我的錯,但是當我自以為把自己的代碼排除嫌疑時 

我突然有了一個驚人的發現:

在發送端發送 29個位元組 最開始是 00 00 01 b0 在發送端我下斷點看了 發送時是對的
  在接收端接收到的是 80 E0
  這是為什麼
  原因找到了
  int len=pack->GetPacketLength();
  byte * test=pack->GetPacketData();
  我是想獲得 RTP包負載中的資料 但是我確調用上述兩個函數
  用錯了 獲得RTP包中負載的資料以及 獲得負載的長度是調用下邊兩個資料:
 
 int len2=pack->GetPayloadLength();
                 
 byte * test2=pack->GetPayloadData();

我的天!

2

我還發現一點

在向Divx 推資料時

如果(在代碼中我把 VOS VO VOL放在同一個sample中) VOS VO VOL 向下推失敗 其餘的sample 發送的再對 Divx 也不會解碼

1. 視頻對象序列VOS

2. 視頻對象VO

3. 視頻對象層VOL

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.