Request key frame in vpuenc (Freescale)

Carlos Rafael Giani dv at pseudoterminal.org
Wed Oct 2 08:26:10 PDT 2013


On 2013-10-02 16:42, Chuck Crisler wrote:
> I don't think that you need to run the parser after the encoder. The 
> encoder produces a valid H264 buffer so the parser can't do anything 
> worthwhile. Yes, you need to store the SPS/PPS and transmit them in 
> the bitstream with each IFrame. The only other thing to look into is 
> whether or not the encoder inserts start codes in the H264 buffer at 
> MB boundaries based on the MTU size and verify that the payloader is 
> breaking the buffer at those boundaries. And make sure that you are 
> setting the MTU properly.
>

You need the parser in case downstream expects a different format. The 
VPU produces h264 data in Annex.B (byte-stream) format. There are 
container formats which do not need Annex.B, so they do not accept it. 
h264parse can then be used to strip it away.

An alternative would be to add code to the encoder element to handle 
both AnnexB and non-Annexb, and access units yes/no. But that seems like 
code duplication to me if h264parse can do it already.

Also, isn't putting the SPS/PPS headers with each IFrame wasteful?


More information about the gstreamer-devel mailing list