You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-04 22:03:09 +02:00
avcodec/ffv1enc: Factor set_micro_version() out of ff_ffv1_write_extradata()
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 <michael@niedermayer.cc>
This commit is contained in:
@ -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 = 5;
|
||||||
|
} 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)
|
av_cold int ff_ffv1_write_extradata(AVCodecContext *avctx)
|
||||||
{
|
{
|
||||||
FFV1Context *f = avctx->priv_data;
|
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);
|
ff_build_rac_states(&c, 0.05 * (1LL << 32), 256 - 8);
|
||||||
|
|
||||||
put_symbol(&c, state, f->version, 0);
|
put_symbol(&c, state, f->version, 0);
|
||||||
f->combined_version = f->version << 16;
|
if (f->version > 2)
|
||||||
if (f->version > 2) {
|
|
||||||
if (f->version == 3) {
|
|
||||||
f->micro_version = 4;
|
|
||||||
} else if (f->version == 4)
|
|
||||||
f->micro_version = 5;
|
|
||||||
f->combined_version += f->micro_version;
|
|
||||||
put_symbol(&c, state, f->micro_version, 0);
|
put_symbol(&c, state, f->micro_version, 0);
|
||||||
}
|
|
||||||
|
|
||||||
put_symbol(&c, state, f->ac, 0);
|
put_symbol(&c, state, f->ac, 0);
|
||||||
if (f->ac == AC_RANGE_CUSTOM_TAB)
|
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;
|
s->num_v_slices = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_micro_version(s);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user