diff options
author | Andreas Rheinhardt <[email protected]> | 2025-05-25 22:07:05 +0200 |
---|---|---|
committer | Andreas Rheinhardt <[email protected]> | 2025-06-21 22:08:52 +0200 |
commit | 61d34c2b8eac104230f1eb914ebe2a5d45965b66 (patch) | |
tree | 28788f46b9762fec5de496db5fc109c2cb968f3f | |
parent | 7643269ec20e9481c44eafdf12e69302647d650f (diff) |
avcodec/flvenc: Combine writing bits
Signed-off-by: Andreas Rheinhardt <[email protected]>
-rw-r--r-- | libavcodec/flvenc.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/libavcodec/flvenc.c b/libavcodec/flvenc.c index 8f07c3c778..184e688ebd 100644 --- a/libavcodec/flvenc.c +++ b/libavcodec/flvenc.c @@ -70,20 +70,23 @@ int ff_flv_encode_picture_header(MPVMainEncContext *const m) void ff_flv2_encode_ac_esc(PutBitContext *pb, int slevel, int level, int run, int last) { + unsigned code; + int bits; if (level < 64) { // 7-bit level - put_bits(pb, 1, 0); - put_bits(pb, 1, last); - put_bits(pb, 6, run); - - put_sbits(pb, 7, slevel); + bits = 1 + 1 + 6 + 7; + code = (0 << (1 + 6 + 7)) | + (last << (6 + 7)) | + (run << 7) | + (slevel & 0x7f); } else { /* 11-bit level */ - put_bits(pb, 1, 1); - put_bits(pb, 1, last); - put_bits(pb, 6, run); - - put_sbits(pb, 11, slevel); + bits = 1 + 1 + 6 + 11; + code = (1 << (1 + 6 + 11)) | + (last << (6 + 11)) | + (run << 11) | + (slevel & 0x7ff); } + put_bits(pb, bits, code); } const FFCodec ff_flv_encoder = { |