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 733524 - ges-launch crashes with SIGABRT when using h264 encoded assets
ges-launch crashes with SIGABRT when using h264 encoded assets
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal critical
: 1.5.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-07-21 22:41 UTC by Lubosz Sarnecki
Modified: 2014-11-08 14:14 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Lubosz Sarnecki 2014-07-21 22:41:06 UTC
Since a recent update on git master, ges-launch crashes.

To reproduce:

ges-launch any.ogv 0 10

Backtrace:

Program received signal SIGABRT, Aborted.

Thread 140737234323200 (LWP 1393)

  • #0 raise
  • #1 abort
  • #2 0x00007ffff4b7df93 in
  • #3 malloc_printerr
  • #4 _int_free
  • #5 0x00007ffff50f37f1 in
  • #6 gst_structure_free
    at gststructure.c line 386
  • #7 _gst_query_free
    at gstquery.c line 195
  • #8 gst_pad_get_allowed_caps
    at ../gst/gstcaps.h line 230
  • #9 gst_pad_get_allowed_caps
    at gstpad.c line 2625
  • #10 gst_h264_parse_negotiate
    at gsth264parse.c line 351
  • #11 gst_h264_parse_set_caps
    at gsth264parse.c line 1972
  • #12 gst_base_parse_sink_event_default
    at gstbaseparse.c line 997
  • #13 gst_h264_parse_event
    at gsth264parse.c line 2132
  • #14 gst_validate_pad_monitor_downstream_event_check
    at gst-validate-pad-monitor.c line 1369
  • #15 gst_validate_pad_monitor_sink_event_func
    at gst-validate-pad-monitor.c line 1569
  • #16 gst_pad_send_event_unchecked
    at gstpad.c line 5141
  • #17 gst_pad_push_event_unchecked
    at gstpad.c line 4839
  • #18 push_sticky
    at gstpad.c line 3443
  • #19 events_foreach
    at gstpad.c line 570
  • #20 gst_pad_push_event
    at gstpad.c line 3499
  • #21 gst_pad_push_event
    at gstpad.c line 4958
  • #22 gst_multi_queue_loop
    at gstmultiqueue.c line 1166
  • #23 gst_multi_queue_loop
    at gstmultiqueue.c line 1392
  • #24 gst_task_func
    at gsttask.c line 317
  • #25 0x00007ffff5145b58 in
  • #26 0x00007ffff51451d5 in
  • #27 start_thread
  • #28 clone

Comment 1 Lubosz Sarnecki 2014-07-21 22:48:03 UTC
This is actually related to the h264 decoder (or parser),
as can be seen also in the backtrace.

Timelines with vp8 or theora work.

It's a race condition. Sometimes it segfaults, sometimes it sigabrts. 
I was even able to run the video one time.
Comment 2 Lubosz Sarnecki 2014-07-22 08:48:03 UTC
The problem seems to be a series of recent decodebin patches on gst-plugins-base.
I bisected.

424ff91394bd9b6c458f53b199d0080ffa1653be is the first bad commit
commit 424ff91394bd9b6c458f53b199d0080ffa1653be
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Thu Jul 10 12:03:46 2014 +0200

    decodebin: Consider the caps after the capsfilter after parsers for autoplugging
    
    Otherwise we might try to continue autoplugging e.g. for a specific
    stream-format although the parser could convert to something else, thus giving
    us potentially less options for decoders.


Please not that the crash only occurs for h264 encoded files.

$ ges-launch-1.0 h264.mp4 0 5
Comment 3 Lubosz Sarnecki 2014-07-23 15:01:27 UTC
I was able to reproduce the crash on 2 arch linux systems and one Windows 8.1 system. In all cases switching to the patch before 424ff91394bd9b6c458f53b199d0080ffa1653be solves the crash.
Comment 4 Lubosz Sarnecki 2014-07-28 13:10:12 UTC
Fixed in current master