Commit c06d4f2c authored by Michael Niedermayer's avatar Michael Niedermayer

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: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent b7d94c19
...@@ -95,35 +95,6 @@ static void write_header_chunk(AVIOContext *pb, AVIOContext *dpb, unsigned id) ...@@ -95,35 +95,6 @@ static void write_header_chunk(AVIOContext *pb, AVIOContext *dpb, unsigned id)
av_free(dyn_buf); 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) static int ffm_write_header_codec_ctx(AVIOContext *pb, AVCodecContext *ctx, unsigned tag, int type)
{ {
AVIOContext *tmp; AVIOContext *tmp;
...@@ -280,8 +251,7 @@ static int ffm_write_header(AVFormatContext *s) ...@@ -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'), if ((ret = ffm_write_recommended_config(s->pb, codec, MKBETAG('S', '2', 'V', 'I'),
st->recommended_encoder_configuration)) < 0) st->recommended_encoder_configuration)) < 0)
return ret; return ret;
} else if ((ret = ffm_write_header_codec_ctx(s->pb, codec, MKBETAG('S', '2', 'V', 'I'), 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)
(ret = ffm_write_header_codec_private_ctx(s, codec, AV_OPT_FLAG_VIDEO_PARAM)) < 0)
return ret; return ret;
break; break;
case AVMEDIA_TYPE_AUDIO: case AVMEDIA_TYPE_AUDIO:
...@@ -291,8 +261,7 @@ static int ffm_write_header(AVFormatContext *s) ...@@ -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'), if ((ret = ffm_write_recommended_config(s->pb, codec, MKBETAG('S', '2', 'A', 'U'),
st->recommended_encoder_configuration)) < 0) st->recommended_encoder_configuration)) < 0)
return ret; return ret;
} else if ((ret = ffm_write_header_codec_ctx(s->pb, codec, MKBETAG('S', '2', 'A', 'U'), 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)
(ret = ffm_write_header_codec_private_ctx(s, codec, AV_OPT_FLAG_AUDIO_PARAM)) < 0)
return ret; return ret;
break; break;
default: default:
......
e63c16b5f0ad5015304fc4009fdb33ca *./tests/data/lavf/lavf.ffm 15a9929d1cb7129dcaffeccf3cb2fda9 *./tests/data/lavf/lavf.ffm
376832 ./tests/data/lavf/lavf.ffm 376832 ./tests/data/lavf/lavf.ffm
./tests/data/lavf/lavf.ffm CRC=0x000e23ae ./tests/data/lavf/lavf.ffm CRC=0x000e23ae
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment