Browse Source

smoothstreamingenc: Properly return errors from ism_flush to the caller

Signed-off-by: Martin Storsjö <martin@martin.st>
tags/n1.1
Martin Storsjö 12 years ago
parent
commit
5fa43f76aa
1 changed files with 5 additions and 2 deletions
  1. +5
    -2
      libavformat/smoothstreamingenc.c

+ 5
- 2
libavformat/smoothstreamingenc.c View File

@@ -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++;
}



Loading…
Cancel
Save