vaapidecode: properly return from decode loop on downstream errors.
authorMatthew Waters <ystreet00@gmail.com>
Tue, 29 Jul 2014 06:22:01 +0000 (16:22 +1000)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Tue, 29 Jul 2014 08:21:02 +0000 (10:21 +0200)
commit6003596e82b9aaaa699135f89bd7839ae7792cb7
tree5eb35c9e74c60dbe4c013a6f29019b71dc2781ac
parent1afcede093297173d75720e3f5551e1fa8dda2b5
vaapidecode: properly return from decode loop on downstream errors.

Fixes a hang/race on shutdown where _decode_loop() had already completed
its execution and _finish() was waiting on a GCond for decode_loop()
to complete.  Also fixes the possible race where _finish() is called
but _decode_loop() endlessly returns before signalling completion
iff the decoder instance returns GST_FLOW_OK.

Found with: ... ! vaapidecode ! {glimagesink,cluttersink}

https://bugzilla.gnome.org/show_bug.cgi?id=733897

[factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
gst/vaapi/gstvaapidecode.c