Skip to content

videoparsers: vp9: Need to process the first frame even not key.

He Junyan requested to merge He_Junyan/gst-plugins-bad:vp9_first_frame into master

Some cut VP9 streams begin with a non key frame. The current code just bail out the parse_process_frame() if not a key frame. Because of this, we do not set the valid caps before we push the data of the first frame(even this first frame will be discarded by the downstream decoder because it is not a key frame).

The pipeline such as: gst-launch-1.0 filesrc location=some.ivf ! ivfparse ! vp9parse ! vavp9dec ! fakesink will get a negotiation error and the pipeline can not continue. The correct behaviour should be: the decoder discard the first frame and continue to decode later frames successfully.

So, when the parse does not have valid stream info(should be the first frame case), we should continue and report caps.

Merge request reports