GNOME Bugzilla – Bug 728435
vtdec: fails to decode randomly
Last modified: 2014-07-04 12:57:19 UTC
vtdec fails to decode randomly with the following error messages: 0:00:00.859137000 51078 0x1005bde30 WARN vtdec vtdec.c:544:gst_vtdec_session_output_callback:<vtdec0> Frame dropped 0x1008abea0 0 0:00:05.848712000 51078 0x1010b1850 ERROR vtdec vtdec.c:519:gst_vtdec_session_output_callback:<vtdec0> Error decoding frame 268451843 0:00:05.849020000 51078 0x1010b1850 WARN vtdec vtdec.c:544:gst_vtdec_session_output_callback:<vtdec0> Frame dropped 0x101126000 1 0:00:05.860912000 51078 0x1005bde30 WARN vtdec vtdec.c:544:gst_vtdec_session_output_callback:<vtdec0> Frame dropped 0x101126110 2 0:00:10.858018000 51078 0x1010b1850 ERROR vtdec vtdec.c:519:gst_vtdec_session_output_callback:<vtdec0> Error decoding frame 268451843 0:00:10.858363000 51078 0x1010b1850 WARN vtdec vtdec.c:544:gst_vtdec_session_output_callback:<vtdec0> Frame dropped 0x101126000 3 0:00:10.866109000 51078 0x1005bde30 WARN vtdec vtdec.c:544:gst_vtdec_session_output_callback:<vtdec0> Frame dropped 0x1011140a0 4 0:00:15.863930000 51078 0x1010b1850 ERROR vtdec vtdec.c:519:gst_vtdec_session_output_callback:<vtdec0> Error decoding frame 268451843 0:00:15.863967000 51078 0x1010b1850 WARN vtdec vtdec.c:544:gst_vtdec_session_output_callback:<vtdec0> Frame dropped 0x101126000 5 0:00:15.874228000 51078 0x1005bde30 WARN vtdec vtdec.c:544:gst_vtdec_session_output_callback:<vtdec0> Frame dropped 0x101114810 6 0:00:20.878758000 51078 0x1010b1850 ERROR vtdec vtdec.c:519:gst_vtdec_session_output_callback:<vtdec0> Error decoding frame 268451843 0:00:20.879096000 51078 0x1010b1850 WARN vtdec vtdec.c:544:gst_vtdec_session_output_callback:<vtdec0> Frame dropped 0x101126000 7 0:00:20.931725000 51078 0x1005bde30 WARN vtdec vtdec.c:544:gst_vtdec_session_output_callback:<vtdec0> Frame dropped 0x101114e70 8 It can be reproduced with: GST_DEBUG=*vtdec*:5 gst-launch-1.0 playbin uri=file:///Users/fluendo/Downloads/big_buck_bunny_480p_h264.mov
Why is this a blocker?
It's a regression similar to #727757 vtdec is now chosen by playbin and this pipeline that was working in 1.2 does not work anymore: gst-launch-1.0 playbin uri=http://mirror.bigbuckbunny.de/peach/bigbuckbunny_movies/big_buck_bunny_480p_h264.mov
Right, if nobody is going to fix that before 1.4.0 we will lower the rank of the element to NONE or MARGINAL again (something lower than gst-libav).
Andoni, are you working on this or should we lower the rank?
Is there a particular way of reproducing this? Played this same file a few times and it only happened once. Now I can't reproduce it anymore. Any particular sink being used?
I haven't found a way to reproduce it, it's completely random but I think it's easier to reproduce playing this file locally instead of through http
Created attachment 279732 [details] [review] vtdec: ignore the dropped flag if buffer was received Apparently there is some issue with VT that makes it mark the dropped flag even though the buffer was decoded.
Created attachment 279733 [details] [review] vtdec: avoid segfault when output isn't configured This can help when the callback is called during/after videodecoder base class shut down
Created attachment 279737 [details] [review] vtdec: avoid segfault when output isn't configured Updated patch to avoid an assertion or segfault as the invalidation of the VT context seems to make the CFBufferRelease segfault or, when it succeeds, makes the base videodecoder class assert on a segment.format issue
commit 92dbcf2bf9787460d9013e8e89b4bee16388c05f Author: Thiago Santos <ts.santos@sisa.samsung.com> Date: Wed Jul 2 04:54:29 2014 -0300 vtdec: avoid segfault when output isn't configured This can help when the callback is called during/after videodecoder base class shut down https://bugzilla.gnome.org/show_bug.cgi?id=728435 commit f75f860ff3791f47db3eb52602f0c5e6b9f35748 Author: Thiago Santos <ts.santos@sisa.samsung.com> Date: Wed Jul 2 00:27:12 2014 -0300 vtdec: ignore the dropped flag if buffer was received Apparently there is some issue with VT that makes it mark the dropped flag even though the buffer was decoded. https://bugzilla.gnome.org/show_bug.cgi?id=728435