1

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?

Vitt Volt
  • 337
  • 4
  • 17

1 Answers1

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

Community
  • 1
  • 1
szatmary
  • 29,969
  • 8
  • 44
  • 57
  • 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