[FFmpeg-cvslog] avutil/aes_ctr: simplify incrementing the counter

James Almer git at videolan.org
Sun Apr 6 02:58:46 EEST 2025


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Tue Apr  1 12:11:56 2025 -0300| [3f30ae823e27e7a60c693b52ad44b10ac2ad2823] | committer: James Almer

avutil/aes_ctr: simplify incrementing the counter

Signed-off-by: James Almer <jamrial at gmail.com>

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

 libavutil/aes_ctr.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/libavutil/aes_ctr.c b/libavutil/aes_ctr.c
index d720aa6aaf..63dcb20d3a 100644
--- a/libavutil/aes_ctr.c
+++ b/libavutil/aes_ctr.c
@@ -32,7 +32,7 @@
 #define AES_BLOCK_SIZE (16)
 
 typedef struct AVAESCTR {
-    uint8_t counter[AES_BLOCK_SIZE];
+    DECLARE_ALIGNED(8, uint8_t, counter)[AES_BLOCK_SIZE];
     DECLARE_ALIGNED(8, uint8_t, encrypted_counter)[AES_BLOCK_SIZE];
     AVAES aes;
 } AVAESCTR;
@@ -82,16 +82,10 @@ void av_aes_ctr_free(struct AVAESCTR *a)
     av_free(a);
 }
 
-static void av_aes_ctr_increment_be64(uint8_t* counter)
+static inline void av_aes_ctr_increment_be64(uint8_t* counter)
 {
-    uint8_t* cur_pos;
-
-    for (cur_pos = counter + 7; cur_pos >= counter; cur_pos--) {
-        (*cur_pos)++;
-        if (*cur_pos != 0) {
-            break;
-        }
-    }
+    uint64_t c = AV_RB64A(counter) + 1;
+    AV_WB64A(counter, c);
 }
 
 void av_aes_ctr_increment_iv(struct AVAESCTR *a)



More information about the ffmpeg-cvslog mailing list