diff mbox series

[FFmpeg-devel,1/2] avformat/ivfenc: add an AVCodec.init() function

Message ID 20200510211947.3247-1-jamrial@gmail.com
State Accepted
Commit 8e12f09a25d7fa2c9e2b63dd6407aece412750a5
Headers show
Series [FFmpeg-devel,1/2] avformat/ivfenc: add an AVCodec.init() function | expand

Checks

Context Check Description
andriy/default pending
andriy/make success Make finished
andriy/make_fate success Make fate finished

Commit Message

James Almer May 10, 2020, 9:19 p.m. UTC
Signed-off-by: James Almer <jamrial@gmail.com>
---
 libavformat/ivfenc.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

Comments

Andreas Rheinhardt May 10, 2020, 9:29 p.m. UTC | #1
James Almer:
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
AVCodec? What AVCodec?

- Andreas
James Almer May 10, 2020, 9:39 p.m. UTC | #2
On 5/10/2020 6:29 PM, Andreas Rheinhardt wrote:
> James Almer:
>> Signed-off-by: James Almer <jamrial@gmail.com>
>> ---
> AVCodec? What AVCodec?

Right, changed locally to AVOutputFormat. Sorry about that.
diff mbox series

Patch

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,