vaapidecode: decode and output all pending frames on normal EOS.
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>
Tue, 29 Jul 2014 13:47:46 +0000 (15:47 +0200)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Tue, 29 Jul 2014 13:47:46 +0000 (15:47 +0200)
commit528f486513d406c45f1e30436f391f726bbb3b3d
treef43cddc4ce48b5eba308ed6edfcb308732bc4825
parent05049864089a28a5ffbe8b8871d41cc61e2ce6b6
vaapidecode: decode and output all pending frames on normal EOS.

The gst_vaapidecode_decode_loop() function is called within a separate
task to fetch and output all frames that were decoded so far. So, if
the decoder_loop_status is forcibly set to EOS when _finish() is called,
then we are bound to exist the task without submitting the pending
frames.

If the downstream element error'ed out, then the gst_pad_push() would
propagate up an error and so we will get it right for cutting off
_finish() early in that case.

This is a regression from 6003596.

https://bugzilla.gnome.org/show_bug.cgi?id=733897
gst/vaapi/gstvaapidecode.c