(2) evil assert in gst_segment_to_running_time

Guetcho Guetchev getcho.getchev at gmail.com
Thu Nov 22 10:59:19 PST 2012


Hello guys,
Resending this e-mail (removed the html tags):
Sorry for the repetition. 

I have the following pipeline (Gstreamer 1.0.3) : 

appsrc --- speexenc --- flvmux --- appsink
appsrc --- x264enc---------|

At the sources:
My audio is audio-x/raw, format=16SLE, rate= 44100, channels=1, layout=interleaved.
My video is video-x/raw, format=I420, framerate=20, width=640, height=480
The flvmux is configured as: 
--- audio: audio-x/speex, rate=11025, channels=1
----video: video-x/h264, stream-format=avc
The appsink has these capabilities:
video/x-flv

When I run the pipeline I get this assert:

GStreamer-CRITICAL **: guint64 gst_segment_to_running_time(const GstSegment *, GstFormat, guint64): assertion `segment->format == format' failed


By some reason the segment->format member is GST_FORMAT_BYTE but not GST_FORMAT_TIME

In gst_collect_pads_event_default :
GST_EVENT_TYPE(event) is GST_EVENT_SEGMENT,
and after gst_event_copy_segment (event, &seg);
The seg.format is GST_FORMAT_BYTE, which means the event (a packed segment inside) has this segment type: GST_FORMAT_BYTE
Then later in the call stack: gst_segment_to_running_time
this is what happens: an assert statement, comparing the required format to be GST_FORMAT_TIME, but the segment.format is GST_FORMAT_UNDEFINED

My question is: is that a bug or this is caused by something I did (or I did not) do ?

Thanks in advance,
Getcho



More information about the gstreamer-devel mailing list