diff options
author | James Almer <jamrial@gmail.com> | 2020-05-10 10:49:15 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2020-05-11 19:40:40 -0300 |
commit | 8e12f09a25d7fa2c9e2b63dd6407aece412750a5 (patch) | |
tree | d035b06ac9eed45d479acf5504f427358adbbd4b | |
parent | 7a92147f87129851c1cc2c15f4ba714b8cf23f71 (diff) | |
download | ffmpeg-8e12f09a25d7fa2c9e2b63dd6407aece412750a5.tar.gz |
avformat/ivfenc: add an AVOutputFormat.init() function
Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r-- | libavformat/ivfenc.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libavformat/ivfenc.c b/libavformat/ivfenc.c index 45e5b238dc..0ce4a85171 100644 --- a/libavformat/ivfenc.c +++ b/libavformat/ivfenc.c @@ -26,10 +26,9 @@ typedef struct IVFEncContext { uint64_t last_pts, sum_delta_pts; } IVFEncContext; -static int ivf_write_header(AVFormatContext *s) +static int ivf_init(AVFormatContext *s) { AVCodecParameters *par; - AVIOContext *pb = s->pb; if (s->nb_streams != 1) { av_log(s, AV_LOG_ERROR, "Format supports only exactly one video stream\n"); @@ -43,6 +42,15 @@ static int ivf_write_header(AVFormatContext *s) av_log(s, AV_LOG_ERROR, "Currently only VP8, VP9 and AV1 are supported!\n"); return AVERROR(EINVAL); } + + return 0; +} + +static int ivf_write_header(AVFormatContext *s) +{ + AVCodecParameters *par = s->streams[0]->codecpar; + AVIOContext *pb = s->pb; + avio_write(pb, "DKIF", 4); avio_wl16(pb, 0); // version avio_wl16(pb, 32); // header length @@ -119,6 +127,7 @@ AVOutputFormat ff_ivf_muxer = { .extensions = "ivf", .audio_codec = AV_CODEC_ID_NONE, .video_codec = AV_CODEC_ID_VP8, + .init = ivf_init, .write_header = ivf_write_header, .write_packet = ivf_write_packet, .write_trailer = ivf_write_trailer, |