[FFmpeg-devel] [PATCH] lavf/segment: fix logic for segmenting audio-only inputs

Stefano Sabatini stefasab at gmail.com
Sun Jul 1 18:53:19 CEST 2012


Also add a comment for clarifying the logic.

Fix trac ticket #1290.
---
 libavformat/segment.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/libavformat/segment.c b/libavformat/segment.c
index e1fcc3e..2b7c96c 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -206,7 +206,8 @@ static int seg_write_packet(AVFormatContext *s, AVPacket *pkt)
     int64_t end_pts = seg->recording_time * seg->number;
     int ret;
 
-    if ((seg->has_video && st->codec->codec_type == AVMEDIA_TYPE_VIDEO) &&
+    /* if the segment has video, *only* start a new segment with a key video frame */
+    if (((seg->has_video && st->codec->codec_type == AVMEDIA_TYPE_VIDEO) || !seg->has_video) &&
         av_compare_ts(pkt->pts, st->time_base,
                       end_pts, AV_TIME_BASE_Q) >= 0 &&
         pkt->flags & AV_PKT_FLAG_KEY) {
-- 
1.7.5.4



More information about the ffmpeg-devel mailing list