After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 756257 - Crash playing an mkv video with totem and vaapi
Crash playing an mkv video with totem and vaapi
Status: RESOLVED FIXED
Product: clutter-gst
Classification: Other
Component: general
unspecified
Other All
: Normal critical
: ---
Assigned To: clutter-gst-maint
clutter-gst-maint
Depends on:
Blocks:
 
 
Reported: 2015-10-08 19:00 UTC by Olav Vitters
Modified: 2015-10-10 18:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
video-sink: delay subtitle upload until the frame is uploaded (1.20 KB, patch)
2015-10-10 17:37 UTC, Lionel Landwerlin
committed Details | Review

Description Olav Vitters 2015-10-08 19:00:13 UTC
I installed vaapi, after which the video which worked before failed to play. Totem crashed with:

sys:1: PyGIWarning: Peas was imported without specifying a version first. Use gi.require_version('Peas', '1.0') before import to ensure that the right version gets loaded.
sys:1: PyGIWarning: Totem was imported without specifying a version first. Use gi.require_version('Totem', '1.0') before import to ensure that the right version gets loaded.
No accelerated IMDCT transform found
libva info: VA-API version 0.38.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_38
libva info: va_openDriver() returns 0

(totem:30782): Cogl-WARNING **: driver/gl/cogl-framebuffer-gl.c:983: GL error (1280): Invalid enumeration value


Backtrace:
$ gdb --args totem *.mkv 
GNU gdb (GDB) 7.10-4.mga6 (Mageia release 6)
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-mageia-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from totem...Reading symbols from /usr/lib/debug/usr/bin/totem.debug...done.
done.
(gdb) r
Starting program: /usr/bin/totem Dark.Matter.S01E05.1080p.WEB-DL.DD5.1.H.264-RARBG.mkv
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7fffe6639700 (LWP 30545)]
[New Thread 0x7fffe5e38700 (LWP 30546)]
warning: the debug information found in "/usr/lib/debug//usr/lib64/gio/modules/libdconfsettings.so.debug" does not match "/usr/lib64/gio/modules/libdconfsettings.so" (CRC mismatch).

Missing separate debuginfo for /usr/lib64/gio/modules/libdconfsettings.so
Try: urpmi  /usr/lib/debug/.build-id/d0/9c58282e3946bc5f7cbd459de9db6b18030e4b.debug
[New Thread 0x7fffdeffa700 (LWP 30549)]
[New Thread 0x7fffdce83700 (LWP 30550)]
[New Thread 0x7fffd3dfb700 (LWP 30551)]
sys:1: PyGIWarning: Peas was imported without specifying a version first. Use gi.require_version('Peas', '1.0') before import to ensure that the right version gets loaded.
sys:1: PyGIWarning: Totem was imported without specifying a version first. Use gi.require_version('Totem', '1.0') before import to ensure that the right version gets loaded.
[New Thread 0x7fffcb039700 (LWP 30557)]
[New Thread 0x7fffc6837700 (LWP 30558)]
[New Thread 0x7fffc59c7700 (LWP 30559)]
[New Thread 0x7fffc51c6700 (LWP 30560)]
[New Thread 0x7fffbbffe700 (LWP 30561)]
[New Thread 0x7fffbb7fd700 (LWP 30562)]
No accelerated IMDCT transform found
libva info: VA-API version 0.38.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_38
libva info: va_openDriver() returns 0
[New Thread 0x7fffa3588700 (LWP 30564)]
[New Thread 0x7fffa2d87700 (LWP 30565)]
[New Thread 0x7fffa2586700 (LWP 30566)]
[New Thread 0x7fffa1668700 (LWP 30567)]

(totem:30537): Cogl-WARNING **: driver/gl/cogl-buffer-gl.c:93: GL error (1280): Invalid enumeration value


Program received signal SIGSEGV, Segmentation fault.
clutter_gst_content_paint_content (content=<optimized out>, actor=<optimized out>, root=0x11410c0 [ClutterDummyNode]) at ./clutter-gst-content.c:402
402	            overlay->position.x1 * box_width / priv->current_frame->resolution.width,
Missing separate debuginfos, use: dnf debuginfo-install gstreamer1.0-a52dec-1.4.5-2.mga6.tainted.x86_64 gstreamer1.0-plugins-bad-1.6.0-1.mga6.x86_64 gstreamer1.0-plugins-base-1.6.0-1.mga6.x86_64 gstreamer1.0-plugins-good-1.6.0-1.mga6.x86_64 gstreamer1.0-pulse-1.6.0-1.mga6.x86_64 lib64a52dec0-0.7.4-23.mga5.x86_64 lib64archive13-3.1.2-6.mga5.x86_64 lib64asyncns0-0.8-8.mga5.x86_64 lib64clutter-gtk1.0_0-1.6.4-1.mga6.x86_64 lib64datrie1-0.2.8-3.mga5.x86_64 lib64epoxy0-1.3.1-2.mga6.x86_64 lib64evdev2-1.4.4-1.mga6.x86_64 lib64flac8-1.3.1-3.mga6.x86_64 lib64girepository1.0_1-1.46.0-1.mga6.x86_64 lib64gmime2.6_0-2.6.20-5.mga6.x86_64 lib64gnome-desktop3_12-3.18.0-1.mga6.x86_64 lib64grilo0.2_1-0.2.15-1.mga6.x86_64 lib64grlpls0.2_0-0.2.15-1.mga6.x86_64 lib64gstcodecparsers1.0_0-1.6.0-1.mga6.x86_64 lib64gstgl1.0_0-1.6.0-1.mga6.x86_64 lib64gstreamer-plugins-base1.0_0-1.6.0-1.mga6.x86_64 lib64gstreamer1.0_0-1.6.0-2.mga6.x86_64 lib64json-glib1.0_0-1.0.4-3.mga6.x86_64 lib64json2-0.12-3.mga5.x86_64 lib64lzo2_2-2.09-2.mga6.x86_64 lib64mtdev1-1.1.5-4.mga5.x86_64 lib64orc0.4_0-0.4.23-1.mga6.x86_64 lib64pciaccess0-0.13.4-1.mga6.x86_64 lib64peas-gtk1.0_0-1.16.0-2.mga6.x86_64 lib64peas1.0_0-1.16.0-2.mga6.x86_64 lib64pulseaudio0-7.0-1.mga6.x86_64 lib64pulsecommon7.0-7.0-1.mga6.x86_64 lib64python3.5-3.5.0-4.mga6.x86_64 lib64sndfile1-1.0.25-9.mga5.x86_64 lib64soup2.4_1-2.52.0-1.mga6.x86_64 lib64thai0-0.1.21-3.mga5.x86_64 lib64totem-plparser18-3.10.5-3.mga6.x86_64 lib64txc-dxtn-1.0.1-7.mga5.tainted.x86_64 lib64va1-1.6.1-1.mga6.x86_64 lib64wrap0-7.6-46.mga5.x86_64 python3-3.5.0-4.mga6.x86_64 python3-dbus-1.2.0-13.mga6.x86_64 python3-gobject3-3.18.0-3.mga6.x86_64 vaapi-driver-intel-1.6.1-1.mga6.x86_64
(gdb) bt full
  • #0 clutter_gst_content_paint_content
    at ./clutter-gst-content.c line 402
  • #1 clutter_actor_continue_paint
    at clutter-actor.c line 3713
  • #2 clutter_actor_continue_paint
    at clutter-actor.c line 4018
  • #3 clutter_actor_paint
    at clutter-actor.c line 3942
  • #4 clutter_actor_paint
    at clutter-actor.c line 3968
  • #5 totem_aspect_frame_paint
    at totem-aspect-frame.c line 310
  • #6 _g_closure_invoke_va
    at gclosure.c line 864
  • #7 g_signal_emit_valist
    at gsignal.c line 3292
  • #8 g_signal_emit
    at gsignal.c line 3439
  • #9 clutter_actor_continue_paint
    at clutter-actor.c line 4022
  • #10 clutter_actor_paint
    at clutter-actor.c line 3942
  • #11 clutter_actor_paint
    at clutter-actor.c line 3968
  • #12 clutter_stage_paint
    at clutter-stage.c line 704
  • #13 _g_closure_invoke_va
    at gclosure.c line 864
  • #14 g_signal_emit_valist
    at gsignal.c line 3292
  • #15 g_signal_emit
    at gsignal.c line 3439
  • #16 clutter_actor_continue_paint
    at clutter-actor.c line 4022
  • #17 clutter_actor_paint
    at clutter-actor.c line 3942
  • #18 clutter_actor_paint
    at clutter-actor.c line 3968
  • #19 _clutter_stage_do_paint
    at clutter-stage.c line 687
  • #20 clutter_stage_cogl_redraw
    at cogl/clutter-stage-cogl.c line 548
  • #21 clutter_stage_gdk_redraw
    at gdk/clutter-stage-gdk.c line 629
  • #23 _clutter_stage_do_update
    at clutter-stage.c line 1186
  • #24 clutter_master_clock_gdk_update
    at gdk/clutter-master-clock-gdk.c line 223
  • #30 gdk_frame_clock_paint_idle
    at gdkframeclockidle.c line 430
  • #31 gdk_threads_dispatch
    at gdk.c line 719
  • #32 g_timeout_dispatch
    at gmain.c line 4577
  • #33 g_main_context_dispatch
    at gmain.c line 3154
  • #34 g_main_context_dispatch
    at gmain.c line 3769
  • #35 g_main_context_iterate
    at gmain.c line 3840
  • #36 g_main_context_iteration
    at gmain.c line 3901
  • #37 g_application_run
    at gapplication.c line 2311
  • #38 main
    at totem.c line 83

Comment 1 Lionel Landwerlin 2015-10-09 09:23:48 UTC
Thanks for the report, it sounds like a trivial null pointer problem (shame on me).
Could add the version of the following packages :

- cogl
- clutter
- clutter-gst3
- totem
- gstreamer-vaapi

Thanks!
Comment 2 Olav Vitters 2015-10-09 17:32:05 UTC
cogl 1.22.0
clutter 1.24.0
clutter-gst3 3.0.12 (was 3.0.10 when I filed report, 3.0.12 still crashes)
totem 3.18.0
gstreamer-vaapi 0.6.1
Comment 3 Lionel Landwerlin 2015-10-10 01:13:36 UTC
Ok, still investigating a bit, since I can't even use totem with gstreamer-vaapi installed...
Comment 4 Lionel Landwerlin 2015-10-10 17:37:28 UTC
Created attachment 313024 [details] [review]
video-sink: delay subtitle upload until the frame is uploaded
Comment 5 Lionel Landwerlin 2015-10-10 17:40:45 UTC
I'm guessing (because I couldn't reproduce the crash) that what you're experiencing is that the GL upload with the vaapi plugins failed, and then we endup with a NULL frame but valid subtitles.

I can't say I'm surprised that vaapi broke yet another time...

The above patch should be the crash, but you probably won't be able to see any video.
Comment 6 Lionel Landwerlin 2015-10-10 17:48:13 UTC
Review of attachment 313024 [details] [review]:

Pushed to the 3.0 branch.
Comment 7 Lionel Landwerlin 2015-10-10 18:18:30 UTC
Just release 3.0.14 with this fix.
Feel free to open another bug for the vaapi problem.