aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/ac3enc.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-05-24 16:43:31 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2025-05-21 12:02:25 +0200
commit2df9c8da72d59ff1be58ded85674d58d2ed69bdb (patch)
tree2c2989af77f8cbe3cfebbd893b50a83f0756eaef /libavcodec/ac3enc.c
parent4484e9b37307116647a2bd5b202cbff90c8e3cfc (diff)
downloadffmpeg-2df9c8da72d59ff1be58ded85674d58d2ed69bdb.tar.gz
avcodec/e?ac3enc: Inform compiler about PutBitContext being blank
This turned out to be very beneficial: For GCC 13, the codesize of ac3_output_frame_header went down from 4522B to 1247B and from 10762B to 9298B for eac3_output_frame_header. For Clang 17, the numbers went down from 3923B to 2477B and from 8338B to 6548B (always with -O3). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec/ac3enc.c')
-rw-r--r--libavcodec/ac3enc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index 3649289865..a1783577c5 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -1638,6 +1638,8 @@ static void ac3_output_frame_header(AC3EncodeContext *s, PutBitContext *pb)
{
AC3EncOptions *opt = &s->options;
+ put_bits_assume_flushed(pb);
+
put_bits(pb, 16, 0x0b77); /* frame header */
put_bits(pb, 16, 0); /* crc1: will be filled later */
put_bits(pb, 2, s->bit_alloc.sr_code);