aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2012-01-14 02:40:09 +0100
committerStefano Sabatini <stefasab@gmail.com>2012-07-03 23:23:36 +0200
commita1e092ccd36ef0239749c2267104e7e59ee7176e (patch)
tree5fb497d5e4dc21519e362ee0f7ae8094c93d1228 /libavformat
parent4e2899dd31a520ffb3c81c98eab75f56b1719934 (diff)
downloadffmpeg-a1e092ccd36ef0239749c2267104e7e59ee7176e.tar.gz
lavf/segment: fix logic for segmenting audio-only inputs
Also add a comment for clarifying the logic. Fix trac ticket #1290.
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/segment.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavformat/segment.c b/libavformat/segment.c
index 4902aff36a..32128269f8 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -203,7 +203,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, start a new segment *only* with a key video frame */
+ if ((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) {