[Bug 681630] New: [0.11] audiodecoder: abort when shutting down during reverse playback: GST_BUFFER_DURATION_IS_VALID (buf)

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Aug 10 15:20:01 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=681630
  GStreamer | gst-plugins-base | 0.11.x

           Summary: [0.11] audiodecoder: abort when shutting down during
                    reverse playback: GST_BUFFER_DURATION_IS_VALID (buf)
    Classification: Platform
           Product: GStreamer
           Version: 0.11.x
        OS/Version: Linux
            Status: NEW
          Severity: critical
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: t.i.m at zen.co.uk
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Steps to reproduce:

-base/tests/examples/playback$ ./playback-test 0
file:///HE_v2_AAC_44kHz_400kbps_ABR_Work_Ya_Body.m4a 

1) start playback
2) seek to middle of file
3) pause
4) open 'seek options'
5) go to speed/rate box entry and change 1.000 to -1.000 and hit Enter
6) press play (reverse playback starts up)
7) click STOP button

ERROR:gstaudiodecoder.c:1484:gst_audio_decoder_flush_decode: assertion failed:
(GST_BUFFER_DURATION_IS_VALID (buf))

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffe5d3c700 (LWP 8696)]
0x00007ffff4b63475 in *__GI_raise (sig=<optimized out>) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
64    ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007ffff4b63475 in *__GI_raise (sig=<optimized out>) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007ffff4b666f0 in *__GI_abort () at abort.c:92
#2  0x00007ffff53c1317 in g_assertion_message (domain=domain at entry=0x0,
file=file at entry=0x7fffee0c514c "gstaudiodecoder.c", line=line at entry=1484,
func=func at entry=0x7fffee0c66a0 "gst_audio_decoder_flush_decode",
message=<optimized out>)
    at /tmp/buildd/glib2.0-2.32.3/./glib/gtestutils.c:1861
#3  0x00007ffff53c1834 in g_assertion_message_expr (domain=0x0,
file=0x7fffee0c514c "gstaudiodecoder.c", line=1484, func=0x7fffee0c66a0
"gst_audio_decoder_flush_decode", expr=<optimized out>)
    at /tmp/buildd/glib2.0-2.32.3/./glib/gtestutils.c:1872
#4  0x00007fffee09c454 in gst_audio_decoder_flush_decode (dec=0xb73890) at
gstaudiodecoder.c:1484
#5  0x00007fffee09cd79 in gst_audio_decoder_chain_reverse (dec=0xb73890,
buf=0x0) at gstaudiodecoder.c:1541
#6  0x00007fffee09bb9e in gst_audio_decoder_drain (dec=0xb73890) at
gstaudiodecoder.c:1281
#7  0x00007fffee09bd1e in gst_audio_decoder_flush (dec=0xb73890, hard=0) at
gstaudiodecoder.c:1313
#8  0x00007fffee09d6bf in gst_audio_decoder_chain (pad=0xb74df0,
parent=0xb73890, buffer=0xb2fc00) at gstaudiodecoder.c:1596
#9  0x00007ffff7908308 in gst_pad_chain_data_unchecked (data=0xb2fc00,
type=<optimized out>, pad=0xb74df0) at gstpad.c:3587
#10 gst_pad_push_data (pad=0xb74530, type=type at entry=4112, data=<optimized
out>, data at entry=0xb2fc00) at gstpad.c:3800
#11 0x00007ffff790eac6 in gst_pad_push (pad=<optimized out>,
buffer=buffer at entry=0xb2fc00) at gstpad.c:3903
#12 0x00007ffff48f71bf in gst_base_parse_push_frame
(parse=parse at entry=0xafa400, frame=frame at entry=0x7fffe5d3b990) at
gstbaseparse.c:2073
#13 0x00007ffff48f7bd9 in gst_base_parse_chain (pad=<optimized out>,
parent=0xafa400, buffer=0xb2fc00) at gstbaseparse.c:2532
#14 0x00007ffff7908308 in gst_pad_chain_data_unchecked (data=0xb2fc00,
type=<optimized out>, pad=0xb74300) at gstpad.c:3587
#15 gst_pad_push_data (pad=0xb740d0, type=type at entry=4112, data=<optimized
out>, data at entry=0xb2fc00) at gstpad.c:3800
#16 0x00007ffff790eac6 in gst_pad_push (pad=<optimized out>,
buffer=buffer at entry=0xb2fc00) at gstpad.c:3903
#17 0x00007fffe75ecdcd in gst_single_queue_push_one (object=0xb2fc00,
sq=0x9f8300, mq=0xad0360) at gstmultiqueue.c:1057
#18 gst_multi_queue_loop (pad=<optimized out>) at gstmultiqueue.c:1303
#19 0x00007ffff7935ff1 in gst_task_func (task=0xaa37e0) at gsttask.c:316
#20 0x00007ffff53c35f2 in g_thread_pool_thread_proxy (data=<optimized out>) at
/tmp/buildd/glib2.0-2.32.3/./glib/gthreadpool.c:309
#21 0x00007ffff53c2df5 in g_thread_proxy (data=0x65e990) at
/tmp/buildd/glib2.0-2.32.3/./glib/gthread.c:801
#22 0x00007ffff4ebeb50 in start_thread (arg=<optimized out>) at
pthread_create.c:304
#23 0x00007ffff4c096dd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#24 0x0000000000000000 in ?? ()
(gdb) frame 4
#4  0x00007fffee09c454 in gst_audio_decoder_flush_decode (dec=0xb73890) at
gstaudiodecoder.c:1484
1484        g_assert (GST_BUFFER_DURATION_IS_VALID (buf));
(gdb) print *buf
$1 = {mini_object = {type = 6526224, refcount = 1, lockstate = 0, flags = 0,
copy = 0x7ffff78de530 <_gst_buffer_copy>, dispose = 0x7ffff78dcca0
<_gst_buffer_dispose>, free = 0x7ffff78dcaa0 <_gst_buffer_free>, n_qdata = 0,
qdata = 0x0}, 
  pool = 0x0, pts = 18446744073709551615, dts = 18446744073709551615, duration
= 18446744073709551615, offset = 18446744073709551615, offset_end =
18446744073709551615}


So buffer appears to be valid, but duration is not set.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list