diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-06-04 12:54:15 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-06-04 12:54:15 +0200 |
commit | c7e54628e30acbe896f92c8b8d89ae63901834ff (patch) | |
tree | 67307ec7145d058d3267cbb47e4eccb6b23b6ba9 | |
parent | a40c338a00a4e1c7f2cce189db0f406f85d5792a (diff) | |
parent | 95b7fa1729b93bbb3f4fb85a5c0cb53cf970c3c7 (diff) | |
download | ffmpeg-c7e54628e30acbe896f92c8b8d89ae63901834ff.tar.gz |
Merge commit '95b7fa1729b93bbb3f4fb85a5c0cb53cf970c3c7'
* commit '95b7fa1729b93bbb3f4fb85a5c0cb53cf970c3c7':
oggenc: Support flushing the muxer
Conflicts:
libavformat/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/oggenc.c | 21 | ||||
-rw-r--r-- | libavformat/version.h | 2 |
2 files changed, 20 insertions, 3 deletions
diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c index bec3917a21..6c50fc3521 100644 --- a/libavformat/oggenc.c +++ b/libavformat/oggenc.c @@ -554,7 +554,7 @@ static int ogg_write_header(AVFormatContext *s) return 0; } -static int ogg_write_packet(AVFormatContext *s, AVPacket *pkt) +static int ogg_write_packet_internal(AVFormatContext *s, AVPacket *pkt) { AVStream *st = s->streams[pkt->stream_index]; OGGStreamContext *oggstream = st->priv_data; @@ -592,6 +592,23 @@ static int ogg_write_packet(AVFormatContext *s, AVPacket *pkt) return 0; } +static int ogg_write_packet(AVFormatContext *s, AVPacket *pkt) +{ + int i; + + if (pkt) + return ogg_write_packet_internal(s, pkt); + + for (i = 0; i < s->nb_streams; i++) { + OGGStreamContext *oggstream = s->streams[i]->priv_data; + if (oggstream->page.segments_count) + ogg_buffer_page(s, oggstream); + } + + ogg_write_pages(s, 2); + return 0; +} + static int ogg_write_trailer(AVFormatContext *s) { int i; @@ -647,7 +664,7 @@ AVOutputFormat ff_ogg_muxer = { .write_header = ogg_write_header, .write_packet = ogg_write_packet, .write_trailer = ogg_write_trailer, - .flags = AVFMT_TS_NEGATIVE, + .flags = AVFMT_TS_NEGATIVE | AVFMT_ALLOW_FLUSH, .priv_class = &ogg_muxer_class, }; #endif diff --git a/libavformat/version.h b/libavformat/version.h index 6f7aa7d31e..47b22b5156 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -31,7 +31,7 @@ #define LIBAVFORMAT_VERSION_MAJOR 55 #define LIBAVFORMAT_VERSION_MINOR 42 -#define LIBAVFORMAT_VERSION_MICRO 100 +#define LIBAVFORMAT_VERSION_MICRO 101 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \ |