summaryrefslogtreecommitdiff
path: root/libavformat/flacenc.c
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2018-04-16 12:44:35 -0300
committerJames Almer <jamrial@gmail.com>2018-04-16 13:46:10 -0300
commit6838359448faeceb4830e7a1cf3ca6e36fb7e4a7 (patch)
tree35ea69e360a9984457c2e5de286f9c29ddb19855 /libavformat/flacenc.c
parent00d8598eba2e8dce31af250d6ecaec37254475aa (diff)
avformat/flacenc: add flac_init()
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat/flacenc.c')
-rw-r--r--libavformat/flacenc.c30
1 files changed, 20 insertions, 10 deletions
diff --git a/libavformat/flacenc.c b/libavformat/flacenc.c
index 3179f259e5..617bccdc84 100644
--- a/libavformat/flacenc.c
+++ b/libavformat/flacenc.c
@@ -199,11 +199,11 @@ static int flac_finish_header(struct AVFormatContext *s)
return 0;
}
-static int flac_write_header(struct AVFormatContext *s)
+static int flac_init(struct AVFormatContext *s)
{
AVCodecParameters *par;
FlacMuxerContext *c = s->priv_data;
- int ret, i;
+ int i;
c->audio_stream_idx = -1;
for (i = 0; i < s->nb_streams; i++) {
@@ -238,14 +238,6 @@ static int flac_write_header(struct AVFormatContext *s)
return AVERROR(EINVAL);
}
- if (!c->write_header)
- return 0;
-
- ret = ff_flac_write_header(s->pb, par->extradata,
- par->extradata_size, 0);
- if (ret)
- return ret;
-
/* add the channel layout tag */
if (par->channel_layout &&
!(par->channel_layout & ~0x3ffffULL) &&
@@ -263,6 +255,23 @@ static int flac_write_header(struct AVFormatContext *s)
}
}
+ return 0;
+}
+
+static int flac_write_header(struct AVFormatContext *s)
+{
+ FlacMuxerContext *c = s->priv_data;
+ AVCodecParameters *par = s->streams[c->audio_stream_idx]->codecpar;
+ int ret;
+
+ if (!c->write_header)
+ return 0;
+
+ ret = ff_flac_write_header(s->pb, par->extradata,
+ par->extradata_size, 0);
+ if (ret < 0)
+ return ret;
+
if (!c->waiting_pics)
ret = flac_finish_header(s);
@@ -412,6 +421,7 @@ AVOutputFormat ff_flac_muxer = {
.extensions = "flac",
.audio_codec = AV_CODEC_ID_FLAC,
.video_codec = AV_CODEC_ID_PNG,
+ .init = flac_init,
.write_header = flac_write_header,
.write_packet = flac_write_packet,
.write_trailer = flac_write_trailer,