and call it from ff_ffv1_encode_init() setting micro version from code writing the extradata is messy, this should be cleaner
Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc> --- libavcodec/ffv1enc.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c index ddada6bc404..f2628aa77a8 100644 --- a/libavcodec/ffv1enc.c +++ b/libavcodec/ffv1enc.c @@ -392,6 +392,22 @@ static void write_header(FFV1Context *f) } } +static void set_micro_version(FFV1Context *f) +{ + f->combined_version = f->version << 16; + if (f->version > 2) { + if (f->version == 3) { + f->micro_version = 4; + } else if (f->version == 4) { + f->micro_version = 4; + } else + av_assert0(0); + + f->combined_version += f->micro_version; + } else + av_assert0(f->micro_version == 0); +} + av_cold int ff_ffv1_write_extradata(AVCodecContext *avctx) { FFV1Context *f = avctx->priv_data; @@ -414,15 +430,8 @@ av_cold int ff_ffv1_write_extradata(AVCodecContext *avctx) ff_build_rac_states(&c, 0.05 * (1LL << 32), 256 - 8); put_symbol(&c, state, f->version, 0); - f->combined_version = f->version << 16; - if (f->version > 2) { - if (f->version == 3) { - f->micro_version = 4; - } else if (f->version == 4) - f->micro_version = 4; - f->combined_version += f->micro_version; + if (f->version > 2) put_symbol(&c, state, f->micro_version, 0); - } put_symbol(&c, state, f->ac, 0); if (f->ac == AC_RANGE_CUSTOM_TAB) @@ -742,6 +751,8 @@ av_cold int ff_ffv1_encode_init(AVCodecContext *avctx) s->num_v_slices = 1; } + set_micro_version(s); + return 0; } -- 2.48.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".