[FFmpeg-cvslog] avcodec/mpeg12enc: Simplify writing bits

Andreas Rheinhardt git at videolan.org
Fri Mar 7 16:22:21 EET 2025


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Mon Mar  3 18:42:13 2025 +0100| [6e225123d8583fdce55037b85eaef5453f201959] | committer: Andreas Rheinhardt

avcodec/mpeg12enc: Simplify writing bits

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6e225123d8583fdce55037b85eaef5453f201959
---

 libavcodec/mpeg12enc.c | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c
index 3f23045afc..ca51430fce 100644
--- a/libavcodec/mpeg12enc.c
+++ b/libavcodec/mpeg12enc.c
@@ -594,10 +594,8 @@ void ff_mpeg1_encode_picture_header(MpegEncContext *s)
 
         if (fpa_type != 0) {
             put_header(s, USER_START_CODE);
-            put_bits(&s->pb, 8, 'J');   // S3D_video_format_signaling_identifier
-            put_bits(&s->pb, 8, 'P');
-            put_bits(&s->pb, 8, '3');
-            put_bits(&s->pb, 8, 'D');
+            // S3D_video_format_signaling_identifier
+            put_bits32(&s->pb, MKBETAG('J','P','3','D'));
             put_bits(&s->pb, 8, 0x03);  // S3D_video_format_length
 
             put_bits(&s->pb, 1, 1);     // reserved_bit
@@ -612,21 +610,15 @@ void ff_mpeg1_encode_picture_header(MpegEncContext *s)
             AV_FRAME_DATA_A53_CC);
         if (side_data) {
             if (side_data->size <= A53_MAX_CC_COUNT * 3 && side_data->size % 3 == 0) {
-                int i = 0;
-
                 put_header (s, USER_START_CODE);
 
-                put_bits(&s->pb, 8, 'G');                   // user_identifier
-                put_bits(&s->pb, 8, 'A');
-                put_bits(&s->pb, 8, '9');
-                put_bits(&s->pb, 8, '4');
+                put_bits32(&s->pb, MKBETAG('G','A','9','4')); // user_identifier
                 put_bits(&s->pb, 8, 3);                     // user_data_type_code
                 put_bits(&s->pb, 8,
                     (side_data->size / 3 & A53_MAX_CC_COUNT) | 0x40); // flags, cc_count
                 put_bits(&s->pb, 8, 0xff);                  // em_data
 
-                for (i = 0; i < side_data->size; i++)
-                    put_bits(&s->pb, 8, side_data->data[i]);
+                ff_copy_bits(&s->pb, side_data->data, side_data->size);
 
                 put_bits(&s->pb, 8, 0xff);                  // marker_bits
             } else {



More information about the ffmpeg-cvslog mailing list