erichocean/libjingle

Problem with H264/AVC packetization-mode=1

GoogleCodeExporter opened this issue · 2 comments

It seems that Gmail is unable to accept H264 packets with packetization-mode=1.

As long as you send it packets with packetization-mode=0, it is happy, but as 
soon as you send it a Fu-A packet, it starts sending RTCP packets requiring a 
FIR (with FMT=4), and stops decoding.

I read the RFC 3984, and it says that unless you specify the packetization mode 
(generally done using SDP), the decoders should assume packetization-mode=0.

How do we tell gmail that we are going to be using packetization-mode=1?

I have already tried adding a <parameter name="packetization-mode" value="1"/> 
in the jingle description, but that doesn't seem to work either.

I had to provide the SPS/PPS data inline in the stream (after an FIR request), 
and <parameter name="sprop-parameter-sets"> doesn't seem to work either.

Now, as long as I use very simple frames (solid colors) so that the packet goes 
as a raw NAL (without fragmentation), gmail client displays it fine, and as 
soon as I use complex frames (enabling fragmentation and Fu-A packets), gmail 
stops decoding. I have tried this on a running stream (first 200 frames were 
simple, and then the frames were substituted from the camera).

We have tried this with latest gmail client running on Windows.

The documentation claims that the client should be capable of receiving all 
types of packetization from RFC 3984. 

I can attach a pcap file if required.


Original issue reported on code.google.com by saur...@octro.com on 11 Aug 2011 at 10:26

This doc 
http://code.google.com/intl/pt-BR/apis/talk/call_signaling.html#Video_Packetizat
ion says that Gtalk use packetization-mode 0 to send but can decode packets in 
any packetization-mode. Since this doc is very out of date (it explains the old 
Gingle protocol), it would be great a clarification about this.

Original comment by diego.cd...@gmail.com on 11 Aug 2011 at 11:37

Fragmented NALs are not supported, and are generally a bad idea. Use slices 
intead.

Original comment by juberti@google.com on 8 Dec 2011 at 9:24

  • Changed state: WontFix