diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2016-12-01 16:07:35 +0100 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2016-12-02 19:37:00 +0100 |
commit | c06d4f2cedb76f2a38732ff45d12b584d2900c19 (patch) | |
tree | f74684e1b55f08eb48c2c3a6e1dd977473fb98e7 /libavformat/ffmenc.c | |
parent | b7d94c19cd0e9379b8c32c79fa0b73ae00de0f93 (diff) | |
download | ffmpeg-c06d4f2cedb76f2a38732ff45d12b584d2900c19.tar.gz |
avformat/ffmenc: Drop ffm_write_header_codec_private_ctx()
This accesses the private encoder context, it should not be used by
the current ffserver it may affect old ffserver versions but i believe
there is consens that accessing the private encoder context from the muxer
is completely wrong.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavformat/ffmenc.c')
-rw-r--r-- | libavformat/ffmenc.c | 35 |
1 files changed, 2 insertions, 33 deletions
diff --git a/libavformat/ffmenc.c b/libavformat/ffmenc.c index c89b9b34bb..221f0a2cfd 100644 --- a/libavformat/ffmenc.c +++ b/libavformat/ffmenc.c @@ -95,35 +95,6 @@ static void write_header_chunk(AVIOContext *pb, AVIOContext *dpb, unsigned id) av_free(dyn_buf); } -static int ffm_write_header_codec_private_ctx(AVFormatContext *s, AVCodecContext *ctx, int type) -{ - AVIOContext *pb = s->pb; - AVIOContext *tmp; - char *buf = NULL; - int ret; - const AVCodec *enc = ctx->codec ? ctx->codec : avcodec_find_encoder(ctx->codec_id); - - if (!enc) { - av_log(s, AV_LOG_WARNING, "Stream codec is not found. Codec private options are not stored.\n"); - return 0; - } - if (ctx->priv_data && enc->priv_class && enc->priv_data_size) { - if ((ret = av_opt_serialize(ctx->priv_data, AV_OPT_FLAG_ENCODING_PARAM | type, - AV_OPT_SERIALIZE_SKIP_DEFAULTS, &buf, '=', ',')) < 0) - return ret; - if (buf && strlen(buf)) { - if (avio_open_dyn_buf(&tmp) < 0) { - av_free(buf); - return AVERROR(ENOMEM); - } - avio_put_str(tmp, buf); - write_header_chunk(pb, tmp, MKBETAG('C', 'P', 'R', 'V')); - } - av_free(buf); - } - return 0; -} - static int ffm_write_header_codec_ctx(AVIOContext *pb, AVCodecContext *ctx, unsigned tag, int type) { AVIOContext *tmp; @@ -280,8 +251,7 @@ static int ffm_write_header(AVFormatContext *s) if ((ret = ffm_write_recommended_config(s->pb, codec, MKBETAG('S', '2', 'V', 'I'), st->recommended_encoder_configuration)) < 0) return ret; - } else if ((ret = ffm_write_header_codec_ctx(s->pb, codec, MKBETAG('S', '2', 'V', 'I'), AV_OPT_FLAG_VIDEO_PARAM)) < 0 || - (ret = ffm_write_header_codec_private_ctx(s, codec, AV_OPT_FLAG_VIDEO_PARAM)) < 0) + } else if ((ret = ffm_write_header_codec_ctx(s->pb, codec, MKBETAG('S', '2', 'V', 'I'), AV_OPT_FLAG_VIDEO_PARAM)) < 0) return ret; break; case AVMEDIA_TYPE_AUDIO: @@ -291,8 +261,7 @@ static int ffm_write_header(AVFormatContext *s) if ((ret = ffm_write_recommended_config(s->pb, codec, MKBETAG('S', '2', 'A', 'U'), st->recommended_encoder_configuration)) < 0) return ret; - } else if ((ret = ffm_write_header_codec_ctx(s->pb, codec, MKBETAG('S', '2', 'A', 'U'), AV_OPT_FLAG_AUDIO_PARAM)) < 0 || - (ret = ffm_write_header_codec_private_ctx(s, codec, AV_OPT_FLAG_AUDIO_PARAM)) < 0) + } else if ((ret = ffm_write_header_codec_ctx(s->pb, codec, MKBETAG('S', '2', 'A', 'U'), AV_OPT_FLAG_AUDIO_PARAM)) < 0) return ret; break; default: |