I am now working on decoding an h264 byte stream on Android. The stream is sent from a third party product and I am not so sure about its video format. The document says the stream consists of PPS and SPS NAL units. But the h264 byte stream I received includes sequences starting with 0x00 0x00 0x00 0x01 and the 5th byte could be 0x09, 0x21 or 0x06 in the sample I received. This has triggered me up for a while because it seems to be different from the usual indicator of 0x67 or 0x68. Does anyone know what 0x09/0x21/0x06 mean in NAL unit headers?
Asked
Active
Viewed 3,711 times
1 Answers
2
0x09 is an access unit delimiter. 0x21 is a non IDR frame or slice. 0x06 is an SEI message. See my answer here for more info. Possible Locations for Sequence/Picture Parameter Set(s) for H.264 Stream
-
Thank you very much and the link is very helpful! Now I am confirmed that the 0x09 header signals the start of a complete access unit. – Vitt Volt Jan 01 '16 at 09:54
-
And just one more question: When I fill the Android Mediacodec input buffer with a complete access unit for decoding, do I have to include the 0x00 0x00 0x00 0x01 0x09 header as well ? (or any other NALU hearders such as 0x21/0x06) – Vitt Volt Jan 01 '16 at 10:15