GNOME Bugzilla – Bug 796099
vaapih264dec: if a frame is corrupted, all the stream fails
Last modified: 2018-08-31 18:38:32 UTC
Totem black screen with Elapsed time slider playing some .mp4. other .mp4 are played correctly. Problem occurs both in x11 and in wayland in Ubuntu Bionic 18.04 and Cosmic 18.10 thumbnails are correctly displayed on nautilus. all files are successfully played by VLC, mpv and SMPlayer corrado@corrado-p6-cc-0509:~$ totem /media/corrado/dati1/BugTotem/limone.mp4 --gst-debug-level=1 0:00:00.151180135 2754 0x7f9040176720 ERROR vaapidecode gstvaapidecode.c:1178:gst_vaapidecode_parse_frame: parse error 8 0:00:00.151422590 2754 0x7f9040176720 ERROR vaapidecode gstvaapidecode.c:1178:gst_vaapidecode_parse_frame: parse error 8 (totem:2754): Totem-WARNING **: 08:57:44.563: Failed to reset the playback rate to 1.0 corrado@corrado-p6-cc-0509:~$ totem /media/corrado/dati1/BugTotem/limone.mp4 --gst-debug-level=2 0:00:00.112689816 2777 0x556264569f20 WARN basesrc gstbasesrc.c:3583:gst_base_src_start_complete:<source> pad not activated yet 0:00:00.112900665 2777 0x556264569f20 WARN basesrc gstbasesrc.c:3583:gst_base_src_start_complete:<source> pad not activated yet 0:00:00.125083154 2777 0x7f5a7416bf70 WARN qtdemux qtdemux.c:7279:qtdemux_parse_container:<qtdemux0> length too long (1507328 > 27) 0:00:00.125124213 2777 0x7f5a7416bf70 WARN qtdemux qtdemux.c:3027:qtdemux_parse_trex:<qtdemux0> failed to find fragment defaults for stream 1 0:00:00.125226353 2777 0x7f5a7416bf70 WARN qtdemux qtdemux.c:3027:qtdemux_parse_trex:<qtdemux0> failed to find fragment defaults for stream 2 0:00:00.125389571 2777 0x7f5a7416bf70 WARN basesrc gstbasesrc.c:2445:gst_base_src_update_length:<source> processing at or past EOS 0:00:00.147965118 2777 0x7f5a74174720 WARN codecparsers_h264 gsth264parser.c:2195:gst_h264_parser_parse_slice_hdr: value greater than max. value: 31, max 2 0:00:00.147991704 2777 0x7f5a74174720 WARN codecparsers_h264 gsth264parser.c:2219:gst_h264_parser_parse_slice_hdr: error parsing "Slice header" 0:00:00.148004556 2777 0x7f5a74174720 ERROR vaapidecode gstvaapidecode.c:1178:gst_vaapidecode_parse_frame: parse error 8 0:00:00.153646724 2777 0x7f5a74174720 WARN codecparsers_h264 gsth264parser.c:2195:gst_h264_parser_parse_slice_hdr: value greater than max. value: 31, max 2 0:00:00.153666189 2777 0x7f5a74174720 WARN codecparsers_h264 gsth264parser.c:2219:gst_h264_parser_parse_slice_hdr: error parsing "Slice header" 0:00:00.153674754 2777 0x7f5a74174720 ERROR vaapidecode gstvaapidecode.c:1178:gst_vaapidecode_parse_frame: parse error 8 (totem:2777): Totem-WARNING **: 08:58:22.504: Failed to reset the playback rate to 1.0 corrado@corrado-p6-cc-0509:~$ corrado@corrado-p6-cc-0509:~$ inxi -SCGx System: Host: corrado-p6-cc-0509 Kernel: 4.15.0-20-generic x86_64 bits: 64 compiler: gcc v: 7.3.0 Desktop: Gnome 3.28.1 Distro: Ubuntu Cosmic Cuttlefish (development branch) CPU: Topology: Dual Core model: Intel Core i3-7100 bits: 64 type: MT MCP arch: Skylake rev: 9 L2 cache: 3072 KiB flags: lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 31296 Speed: 801 MHz min/max: 800/3900 MHz Core speeds (MHz): 1: 801 2: 800 3: 800 4: 800 Graphics: Card-1: Intel HD Graphics 630 driver: i915 v: kernel bus ID: 00:02.0 Display: x11 server: X.Org 1.19.6 driver: i915 resolution: 1920x1080~60Hz OpenGL: renderer: Mesa DRI Intel HD Graphics 630 (Kaby Lake GT2) v: 4.5 Mesa 18.0.2 direct render: Yes corrado@corrado-p6-cc-0509:~$ apt policy totem totem: Installed: 3.26.0-0ubuntu6 Candidate: 3.26.0-0ubuntu6 Version table: *** 3.26.0-0ubuntu6 500 500 http://archive.ubuntu.com/ubuntu cosmic/main amd64 Packages 100 /var/lib/dpkg/status corrado@corrado-p6-cc-0509:~$
Remove the GStreamer VA-API plugin in the meanwhile.
Can you share the media?
@Bastian: what is the package name of GStreamer VA-API plugin? @Victor: The smaller media causing the problem is about 29MB (also compressed). If I cut a part of the file with 'ffmpeg -ss 15 -i limone.mp4 -to 5 limox.mp4' the resulting 'limox.mp4' does not have the problem so I suspect the original file is somehow corrupted, but why other players (VLC, mpv and SMPlayer) are able to play it?
(In reply to corrado venturini from comment #3) > @Bastian: what is the package name of GStreamer VA-API plugin? https://packages.ubuntu.com/cosmic/gstreamer1.0-vaapi > @Victor: > The smaller media causing the problem is about 29MB (also compressed). > If I cut a part of the file with 'ffmpeg -ss 15 -i limone.mp4 -to 5 > limox.mp4' > the resulting 'limox.mp4' does not have the problem so I suspect the > original file is somehow corrupted, but why other players (VLC, mpv and > SMPlayer) are able to play it? Because other players might be less pickier with non-conformance media. That doesn't mean that we couldn't do it better. Can you place the media somewhere, like google, where I can grab it?
https://drive.google.com/drive/folders/1KiKB6yhHW77xvzSSAB_as0NGJWaide0k?usp=sharing
removed gstreamer1.0-vaapi. now my .mp4 are correctly played. should i open a new problem against gstreamer1.0-vaapi ? thanks it seems this plugin gives a lot of problems: https://bugs.launchpad.net/ubuntu/+source/totem/+bug/1721248 https://bugs.launchpad.net/ubuntu/+source/gstreamer-vaapi/+bug/1730502 https://bugs.launchpad.net/ubuntu/+source/totem/+bug/1732204 corrado@corrado-p6-cc-0509:~$ totem /media/corrado/dati1/BugTotem/limone.mp4 --gst-debug-level=2 0:00:00.160746861 4297 0x55bcb7158120 WARN basesrc gstbasesrc.c:3583:gst_base_src_start_complete:<source> pad not activated yet 0:00:00.161058686 4297 0x55bcb7158120 WARN basesrc gstbasesrc.c:3583:gst_base_src_start_complete:<source> pad not activated yet 0:00:00.171261160 4297 0x7f7b78165ca0 WARN qtdemux qtdemux.c:7279:qtdemux_parse_container:<qtdemux0> length too long (1507328 > 27) 0:00:00.171311685 4297 0x7f7b78165ca0 WARN qtdemux qtdemux.c:3027:qtdemux_parse_trex:<qtdemux0> failed to find fragment defaults for stream 1 0:00:00.171392825 4297 0x7f7b78165ca0 WARN qtdemux qtdemux.c:3027:qtdemux_parse_trex:<qtdemux0> failed to find fragment defaults for stream 2 0:00:00.171614798 4297 0x7f7b78165ca0 WARN basesrc gstbasesrc.c:2445:gst_base_src_update_length:<source> processing at or past EOS 0:00:00.214097181 4297 0x7f7b7c1614d0 ERROR libav :0:: A non-intra slice in an IDR NAL unit. 0:00:00.214126262 4297 0x7f7b7c1614d0 ERROR libav :0:: decode_slice_header error 0:00:00.235002426 4297 0x7f7b700782d0 WARN audio-resampler audio-resampler.c:274:convert_taps_gint16_c: can't find exact taps 0:00:00.245216818 4297 0x55bcb7158120 WARN totem bacon-video-widget.c:2074:bvw_update_tags: Pipeline sent video tags update with no changes corrado@corrado-p6-cc-0509:~$
(In reply to corrado venturini from comment #6) > removed gstreamer1.0-vaapi. now my .mp4 are correctly played. > should i open a new problem against gstreamer1.0-vaapi ? > thanks This bug is already assigned to gstreamer-vaapi component in gstreamer upstream. The problem here is clearly a non-valid stream. Nonetheless, other decoders just ignore the corrupted frames, but gstreamer-vaapi fails. It could be possible to add a bit more fault tolerance to gstreamer-vaapi by dropping the corrupted frames, instead of ditching the whole stream.
for the other problems (maybe just same problem 3 times) in launchpad related to gstreamer1.0-vaapi shuld i open a new probem here in bugzilla? or are they already known? thank a lot corrado
(In reply to corrado venturini from comment #8) > for the other problems (maybe just same problem 3 times) in launchpad > related to gstreamer1.0-vaapi shuld i open a new probem here in bugzilla? or > are they already known? They look quite similar. But I would say leave them in launchpad, perhaps Daniel could triage them and then file a bug here.
this issue gets fixed with patches in bug 797006
*** This bug has been marked as a duplicate of bug 797006 ***