summaryrefslogtreecommitdiff
path: root/libavformat/smoothstreamingenc.c
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2012-10-06 02:33:06 +0300
committerMartin Storsjö <martin@martin.st>2012-10-06 13:05:31 +0300
commit5fa43f76aa717789d864c402a44d801dac9480df (patch)
tree55c185f797c7c2a9c1ce90b8f470da8e27273159 /libavformat/smoothstreamingenc.c
parenteb2f391018facf1e31e88800f3109b382da3f59c (diff)
smoothstreamingenc: Properly return errors from ism_flush to the caller
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat/smoothstreamingenc.c')
-rw-r--r--libavformat/smoothstreamingenc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavformat/smoothstreamingenc.c b/libavformat/smoothstreamingenc.c
index 7ee640a931..d86e87fc05 100644
--- a/libavformat/smoothstreamingenc.c
+++ b/libavformat/smoothstreamingenc.c
@@ -551,7 +551,8 @@ static int ism_flush(AVFormatContext *s, int final)
}
}
- write_manifest(s, final);
+ if (ret >= 0)
+ ret = write_manifest(s, final);
return ret;
}
@@ -561,13 +562,15 @@ static int ism_write_packet(AVFormatContext *s, AVPacket *pkt)
AVStream *st = s->streams[pkt->stream_index];
OutputStream *os = &c->streams[pkt->stream_index];
int64_t end_pts = (c->nb_fragments + 1) * c->min_frag_duration;
+ int ret;
if ((!c->has_video || st->codec->codec_type == AVMEDIA_TYPE_VIDEO) &&
av_compare_ts(pkt->pts, st->time_base,
end_pts, AV_TIME_BASE_Q) >= 0 &&
pkt->flags & AV_PKT_FLAG_KEY && os->packets_written) {
- ism_flush(s, 0);
+ if ((ret = ism_flush(s, 0)) < 0)
+ return ret;
c->nb_fragments++;
}