[FFmpeg-cvslog] avcodec/e?ac3enc: Inform compiler about PutBitContext being blank
Andreas Rheinhardt
git at videolan.org
Wed May 21 13:47:45 EEST 2025
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Fri May 24 16:43:31 2024 +0200| [2df9c8da72d59ff1be58ded85674d58d2ed69bdb] | committer: Andreas Rheinhardt
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 at outlook.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2df9c8da72d59ff1be58ded85674d58d2ed69bdb
---
libavcodec/ac3enc.c | 2 ++
libavcodec/eac3enc.c | 2 ++
2 files changed, 4 insertions(+)
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);
diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c
index 3590b821a3..10b1ab337c 100644
--- a/libavcodec/eac3enc.c
+++ b/libavcodec/eac3enc.c
@@ -135,6 +135,8 @@ static void eac3_output_frame_header(AC3EncodeContext *s, PutBitContext *pb)
int blk, ch;
AC3EncOptions *opt = &s->options;
+ put_bits_assume_flushed(pb);
+
put_bits(pb, 16, 0x0b77); /* sync word */
/* BSI header */
More information about the ffmpeg-cvslog
mailing list