avcodec/wmv2enc: Inline extradata size

This also enables the compiler to optimize the implicit
checks performed by the PutBit-API away (Clang does so).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2022-10-03 01:42:00 +02:00
parent ddbaf6227b
commit 83ae36287e
1 changed files with 4 additions and 2 deletions

View File

@ -29,6 +29,8 @@
#include "wmv2.h" #include "wmv2.h"
#include "wmv2enc.h" #include "wmv2enc.h"
#define WMV2_EXTRADATA_SIZE 4
typedef struct WMV2EncContext { typedef struct WMV2EncContext {
MSMPEG4EncContext msmpeg4; MSMPEG4EncContext msmpeg4;
WMV2Context common; WMV2Context common;
@ -49,7 +51,7 @@ static int encode_ext_header(WMV2EncContext *w)
PutBitContext pb; PutBitContext pb;
int code; int code;
init_put_bits(&pb, s->avctx->extradata, s->avctx->extradata_size); init_put_bits(&pb, s->avctx->extradata, WMV2_EXTRADATA_SIZE);
put_bits(&pb, 5, s->avctx->time_base.den / s->avctx->time_base.num); // yes 29.97 -> 29 put_bits(&pb, 5, s->avctx->time_base.den / s->avctx->time_base.num); // yes 29.97 -> 29
put_bits(&pb, 11, FFMIN(s->bit_rate / 1024, 2047)); put_bits(&pb, 11, FFMIN(s->bit_rate / 1024, 2047));
@ -80,7 +82,7 @@ static av_cold int wmv2_encode_init(AVCodecContext *avctx)
ff_wmv2_common_init(s); ff_wmv2_common_init(s);
avctx->extradata_size = 4; avctx->extradata_size = WMV2_EXTRADATA_SIZE;
avctx->extradata = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); avctx->extradata = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
if (!avctx->extradata) if (!avctx->extradata)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);