[Bug 681634] New: [0.11] videodecoder: occasional criticals when seeking in reverse playback mode: gst_segment_clip: assertion `segment->format == format' failed

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Aug 10 15:59:45 PDT 2012


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

           Summary: [0.11] videodecoder: occasional criticals when seeking
                    in reverse playback mode: gst_segment_clip: assertion
                    `segment->format == format' failed
    Classification: Platform
           Product: GStreamer
           Version: 0.11.x
        OS/Version: Linux
            Status: NEW
          Severity: normal
          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/.libs/lt-playback-test 0
file:///006648_AVC_AAC.mp4

1) start normal forward playback of an H.264/AAC MP4
2) seek to middle
3) open 'seek options' box
4) change rate/speed from 1.000 to -1.000
    (playback in reverse should take place)
5) drag seek slider back and forth a little



(lt-playback-test:31426): GStreamer-CRITICAL **: gst_segment_clip: assertion
`segment->format == format' failed

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0x7fffe5d4c700 (LWP 31431)]
g_logv (log_domain=0x7ffff7956a18 "GStreamer", log_level=G_LOG_LEVEL_CRITICAL,
format=0x7ffff53e86e2 "%s: assertion `%s' failed",
args1=args1 at entry=0x7fffe5d4ac78) at
/tmp/buildd/glib2.0-2.32.3/./glib/gmessages.h:101
101    /tmp/buildd/glib2.0-2.32.3/./glib/gmessages.h: No such file or
directory.
(gdb) bt
#0  g_logv (log_domain=0x7ffff7956a18 "GStreamer",
log_level=G_LOG_LEVEL_CRITICAL, format=0x7ffff53e86e2 "%s: assertion `%s'
failed", args1=args1 at entry=0x7fffe5d4ac78) at
/tmp/buildd/glib2.0-2.32.3/./glib/gmessages.h:101
#1  0x00007ffff53a74d2 in g_log (log_domain=<optimized out>,
log_level=log_level at entry=G_LOG_LEVEL_CRITICAL,
format=format at entry=0x7ffff53e86e2 "%s: assertion `%s' failed") at
/tmp/buildd/glib2.0-2.32.3/./glib/gmessages.c:792
#2  0x00007ffff53a74f9 in g_return_if_fail_warning (log_domain=<optimized out>,
pretty_function=pretty_function at entry=0x7ffff796c060 "gst_segment_clip",
expression=expression at entry=0x7ffff796bfaf "segment->format == format")
    at /tmp/buildd/glib2.0-2.32.3/./glib/gmessages.c:801
#3  0x00007ffff792831c in gst_segment_clip (segment=segment at entry=0xc1f990,
format=format at entry=GST_FORMAT_TIME, start=start at entry=49440000000,
stop=stop at entry=49480000000, clip_start=clip_start at entry=0x7fffe5d4ae70, 
    clip_stop=clip_stop at entry=0x7fffe5d4ae78) at gstsegment.c:554
#4  0x00007ffff7bb62c1 in gst_video_decoder_clip_and_push_buf
(decoder=decoder at entry=0xc1f7f0, buf=buf at entry=0x7fffdc26d350) at
gstvideodecoder.c:2305
#5  0x00007ffff7bbd066 in gst_video_decoder_finish_frame (decoder=0xc1f7f0,
frame=frame at entry=0x7fffdc3ba790) at gstvideodecoder.c:2273
#6  0x00007fffe4201831 in gst_ffmpegviddec_video_frame
(ffmpegdec=ffmpegdec at entry=0xc1f7f0, data=<optimized out>,
data at entry=0x7fffdc354090 "", size=26610, frame=frame at entry=0x7fffdc2d0080,
ret=ret at entry=0x7fffe5d4b33c)
    at gstffmpegviddec.c:1147
#7  0x00007fffe4201c3b in gst_ffmpegviddec_frame
(ffmpegdec=ffmpegdec at entry=0xc1f7f0, data=data at entry=0x7fffdc354090 "",
size=<optimized out>, got_data=got_data at entry=0x7fffe5d4b338,
frame=frame at entry=0x7fffdc2d0080, 
    ret=ret at entry=0x7fffe5d4b33c) at gstffmpegviddec.c:1204
#8  0x00007fffe42021fe in gst_ffmpegviddec_handle_frame (decoder=0xc1f7f0,
frame=0x7fffdc2d0080) at gstffmpegviddec.c:1320
#9  0x00007ffff7bb6154 in gst_video_decoder_decode_frame
(decoder=decoder at entry=0xc1f7f0, frame=frame at entry=0x7fffdc2d0080) at
gstvideodecoder.c:2514
#10 0x00007ffff7bbaa15 in gst_video_decoder_flush_decode (dec=0xc1f7f0) at
gstvideodecoder.c:1694
#11 gst_video_decoder_flush_parse (dec=dec at entry=0xc1f7f0,
at_eos=at_eos at entry=0) at gstvideodecoder.c:1774
#12 0x00007ffff7bbb2db in gst_video_decoder_chain_reverse (buf=0x7fffdc25c3d0,
dec=0xc1f7f0) at gstvideodecoder.c:1831
#13 gst_video_decoder_chain (pad=<optimized out>, parent=<optimized out>,
buf=0x7fffdc25c3d0) at gstvideodecoder.c:1901
#14 0x00007ffff7908348 in gst_pad_chain_data_unchecked (data=0x7fffdc25c3d0,
type=<optimized out>, pad=0xb7ed70) at gstpad.c:3611
#15 gst_pad_push_data (pad=0xb7e910, type=type at entry=4112, data=<optimized
out>) at gstpad.c:3824
#16 0x00007ffff790ebe6 in gst_pad_push (pad=<optimized out>, buffer=<optimized
out>) at gstpad.c:3927
#17 0x00007ffff491459a in gst_base_transform_chain (pad=<optimized out>,
parent=<optimized out>, buffer=<optimized out>) at gstbasetransform.c:2190
#18 0x00007ffff7908348 in gst_pad_chain_data_unchecked (data=0x7fffdc25c3d0,
type=<optimized out>, pad=0xb7e6e0) at gstpad.c:3611
#19 gst_pad_push_data (pad=0xb7e4b0, type=type at entry=4112, data=<optimized
out>, data at entry=0x7fffdc25c3d0) at gstpad.c:3824
#20 0x00007ffff790ebe6 in gst_pad_push (pad=<optimized out>,
buffer=buffer at entry=0x7fffdc25c3d0) at gstpad.c:3927
#21 0x00007ffff48f721f in gst_base_parse_push_frame
(parse=parse at entry=0xb85740, frame=frame at entry=0x7fffe5d4b990) at
gstbaseparse.c:2073
#22 0x00007ffff48f7c39 in gst_base_parse_chain (pad=<optimized out>,
parent=0xb85740, buffer=0x7fffdc25c3d0) at gstbaseparse.c:2532
#23 0x00007ffff7908348 in gst_pad_chain_data_unchecked (data=0x7fffdc25c3d0,
type=<optimized out>, pad=0xb7e280) at gstpad.c:3611
#24 gst_pad_push_data (pad=0xb7e050, type=type at entry=4112, data=<optimized
out>, data at entry=0x7fffdc25c3d0) at gstpad.c:3824
#25 0x00007ffff790ebe6 in gst_pad_push (pad=<optimized out>,
buffer=buffer at entry=0x7fffdc25c3d0) at gstpad.c:3927
#26 0x00007fffe75fcdcd in gst_single_queue_push_one (object=0x7fffdc25c3d0,
sq=0xb80800, mq=0xaef310) at gstmultiqueue.c:1057
#27 gst_multi_queue_loop (pad=<optimized out>) at gstmultiqueue.c:1303
#28 0x00007ffff7936111 in gst_task_func (task=0xaa37e0) at gsttask.c:316
#29 0x00007ffff53c35f2 in g_thread_pool_thread_proxy (data=<optimized out>) at
/tmp/buildd/glib2.0-2.32.3/./glib/gthreadpool.c:309
#30 0x00007ffff53c2df5 in g_thread_proxy (data=0xb7a850) at
/tmp/buildd/glib2.0-2.32.3/./glib/gthread.c:801
#31 0x00007ffff4ebeb50 in start_thread (arg=<optimized out>) at
pthread_create.c:304
#32 0x00007ffff4c096dd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#33 0x0000000000000000 in ?? ()
(gdb) frame 3
#3  0x00007ffff792831c in gst_segment_clip (segment=segment at entry=0xc1f990,
format=format at entry=GST_FORMAT_TIME, start=start at entry=49440000000,
stop=stop at entry=49480000000, clip_start=clip_start at entry=0x7fffe5d4ae70, 
    clip_stop=clip_stop at entry=0x7fffe5d4ae78) at gstsegment.c:554
554      g_return_val_if_fail (segment->format == format, FALSE);
(gdb) print *segment
$1 = {flags = GST_SEGMENT_FLAG_NONE, rate = 1, applied_rate = 1, format =
GST_FORMAT_UNDEFINED, base = 0, offset = 0, start = 0, stop =
18446744073709551615, time = 0, position = 0, duration = 18446744073709551615,
_gst_reserved = {
    0x0, 0x0, 0x0, 0x0}}
(gdb) up
#4  0x00007ffff7bb62c1 in gst_video_decoder_clip_and_push_buf
(decoder=decoder at entry=0xc1f7f0, buf=buf at entry=0x7fffdc26d350) at
gstvideodecoder.c:2305
2305      if (gst_segment_clip (segment, GST_FORMAT_TIME, start, stop, &cstart,
&cstop)) {
(gdb) print *decoder
$2 = {element = {object = {object = {g_type_instance = {g_class = 0xc1ead0},
ref_count = 2, qdata = 0x0}, lock = {p = 0xc1f1e0, i = {12710368, 0}}, name =
0xbd1a40 "avdec_h264-0", parent = 0xafa2e0, flags = 0, control_bindings = 0x0, 
      control_rate = 100000000, last_sync = 18446744073709551615, _gst_reserved
= 0x0}, state_lock = {p = 0x9c2750, i = {0, 0}}, state_cond = {p = 0xc1f260, i
= {0, 0}}, state_cookie = 6, target_state = GST_STATE_PAUSED, 
    current_state = GST_STATE_PAUSED, next_state = GST_STATE_VOID_PENDING,
pending_state = GST_STATE_VOID_PENDING, last_return = GST_STATE_CHANGE_SUCCESS,
bus = 0x9be2a0, clock = 0xd2c430, base_time = 15424061000, 
    start_time = 2147064000, numpads = 2, pads = 0x756120, numsrcpads = 1,
srcpads = 0x75ed40, numsinkpads = 1, sinkpads = 0x763080, pads_cookie = 2,
_gst_reserved = {0x0, 0x0, 0x0, 0x0}}, sinkpad = 0xb7ed70, srcpad = 0xb7efa0, 
  stream_lock = {p = 0x9c28a0, i = {0, 0}}, input_segment = {flags =
GST_SEGMENT_FLAG_NONE, rate = -1, applied_rate = 1, format = GST_FORMAT_TIME,
base = 0, offset = 0, start = 0, stop = 50737860266, time = 0, position = 0, 
    duration = 18446744073709551615, _gst_reserved = {0x0, 0x0, 0x0, 0x0}},
output_segment = {flags = GST_SEGMENT_FLAG_NONE, rate = 1, applied_rate = 1,
format = GST_FORMAT_UNDEFINED, base = 0, offset = 0, start = 0, 
    stop = 18446744073709551615, time = 0, position = 0, duration =
18446744073709551615, _gst_reserved = {0x0, 0x0, 0x0, 0x0}}, priv = 0xc1fb30,
padding = {0x0 <repeats 20 times>}}
(gdb)

-- 
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