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 755042 - dashdemux: sidx parsing crashes at end of stream
dashdemux: sidx parsing crashes at end of stream
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal critical
: 1.5.91
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-09-15 07:51 UTC by Sebastian Dröge (slomo)
Modified: 2015-09-15 19:55 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
dashdemux: fix return when trying to advance in subfragmented stream (1.46 KB, patch)
2015-09-15 13:20 UTC, Thiago Sousa Santos
committed Details | Review
adaptivedemux: Only overwrite last return if it was OK (1.97 KB, patch)
2015-09-15 13:20 UTC, Thiago Sousa Santos
committed Details | Review

Description Sebastian Dröge (slomo) 2015-09-15 07:51:24 UTC
http://dash.edgesuite.net/dash264/TestCases/3b/fraunhofer/aac-lc_stereo_with_video/ElephantsDream/elephants_dream_480p_aaclc_stereo_sidx.mpd

Seeking near EOS gives the following, Thiago was looking into that yesterday.


** (lt-playback-test:6279): CRITICAL **: gst_adapter_take_buffer: assertion 'nbytes > 0' failed

Program received signal SIGTRAP, Trace/breakpoint trap.

Thread 140736704804608 (LWP 6305)

  • #0 g_logv
    at /tmp/buildd/glib2.0-2.44.1/./glib/gmessages.c line 1046
  • #1 g_log
    at /tmp/buildd/glib2.0-2.44.1/./glib/gmessages.c line 1079
  • #2 g_return_if_fail_warning
    at /tmp/buildd/glib2.0-2.44.1/./glib/gmessages.c line 1088
  • #3 gst_adapter_take_buffer
    at gstadapter.c line 1018
  • #4 gst_dash_demux_data_received
    at gstdashdemux.c line 1538
  • #5 _src_chain
    at gstadaptivedemux.c line 1622
  • #6 gst_pad_push_data
    at gstpad.c line 4085
  • #7 gst_pad_push_data
    at gstpad.c line 4337
  • #8 gst_pad_push
    at gstpad.c line 4453
  • #9 gst_base_src_loop
    at gstbasesrc.c line 2845
  • #10 gst_task_func
    at gsttask.c line 331
  • #11 g_thread_pool_thread_proxy
    at /tmp/buildd/glib2.0-2.44.1/./glib/gthreadpool.c line 307
  • #12 g_thread_proxy
    at /tmp/buildd/glib2.0-2.44.1/./glib/gthread.c line 764
  • #13 start_thread
    at pthread_create.c line 309
  • #14 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

(gdb) print available
$1 = 1440
(gdb) print dash_stream->sidx_current_remaining 
$2 = 0
Comment 1 Thiago Sousa Santos 2015-09-15 13:20:07 UTC
Created attachment 311364 [details] [review]
dashdemux: fix return when trying to advance in subfragmented stream

Even if it doesn't actually advance the subfragment in the default way
for streams that have subfragments, it can help the base class to return
EOS when there is no more fragments instead of signaling it that it should
continue downloading.
Comment 2 Thiago Sousa Santos 2015-09-15 13:20:13 UTC
Created attachment 311365 [details] [review]
adaptivedemux: Only overwrite last return if it was OK

Prevents overwriting other conditions that would be more important,
such as EOS.
Comment 3 Thiago Sousa Santos 2015-09-15 19:52:47 UTC
commit 0ed501ab035b7b00124bf8bfbac431413667e9c5
Author: Thiago Santos <thiagoss@osg.samsung.com>
Date:   Tue Sep 15 10:00:43 2015 -0300

    adaptivedemux: Only overwrite last return if it was OK
    
    Prevents overwriting other conditions that would be more important,
    such as EOS.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=755042

commit bd710e5e1b3df5c4b4cc9f48fc64478dc33a8ae6
Author: Thiago Santos <thiagoss@osg.samsung.com>
Date:   Tue Sep 15 09:58:20 2015 -0300

    dashdemux: fix return when trying to advance in subfragmented stream
    
    Even if it doesn't actually advance the subfragment in the default way
    for streams that have subfragments, it can help the base class to return
    EOS when there is no more fragments instead of signaling it that it should
    continue downloading.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=755042