diff --git a/ChangeLog b/ChangeLog index a28175006d..831a7c59fa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-02-14 Edward Hervey + + * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_open): + If the duration returned by ffmpeg is 0, it doesn't mean the file has + no duration, but that it doesn't know the end. + Fixed accordingly for segment_stop. + 2006-02-13 Edward Hervey * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_release_buffer), diff --git a/ext/ffmpeg/gstffmpegdemux.c b/ext/ffmpeg/gstffmpegdemux.c index e31d542a21..b38b4a6add 100644 --- a/ext/ffmpeg/gstffmpegdemux.c +++ b/ext/ffmpeg/gstffmpegdemux.c @@ -803,7 +803,10 @@ gst_ffmpegdemux_open (GstFFMpegDemux * demux) /* remember initial start position and shift start/stop */ demux->timeoffset = demux->context->start_time * (GST_SECOND / AV_TIME_BASE ); demux->segment_start = 0; - demux->segment_stop = demux->context->duration * (GST_SECOND / AV_TIME_BASE ); + if (demux->context->duration > 0) + demux->segment_stop = demux->context->duration * (GST_SECOND / AV_TIME_BASE ); + else + demux->segment_stop = GST_CLOCK_TIME_NONE; /* Send newsegment on all src pads */ for (res = 0; res < demux->context->nb_streams; res++) {