[FFmpeg-devel] [PATCH 4/8] avpriv_find_start_code(): add doxygen comment and rename a parameter

Scott Theisen scott.the.elm at gmail.com
Tue Feb 1 23:20:52 EET 2022


---
 libavcodec/internal.h | 15 ++++++++++++++-
 libavcodec/utils.c    | 10 +++++-----
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index 72ca1553f6..07098e1522 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -285,9 +285,22 @@ int ff_thread_can_start_frame(AVCodecContext *avctx);
 
 int avpriv_h264_has_num_reorder_frames(AVCodecContext *avctx);
 
+/**
+ * Find the first start code in the buffer p.  A start code is a sequence of 4
+ * bytes, with memory address increasing left to right and in hexadecimal, with
+ * the value 00 00 01 XX, where XX represents any value.
+ *
+ * @param[in] p     A pointer to the start of the memory buffer to scan.
+ * @param[in] end   A pointer to the past the end memory address for the buffer
+ *                  given by p.  p must be <= end.
+ *
+ * @param[out] start_code The found start code if it exists, otherwise an invalid start code.
+ * @return A pointer to the memory address following the found start code, or end
+ *         if no start code was found.
+ */
 const uint8_t *avpriv_find_start_code(const uint8_t *p,
                                       const uint8_t *end,
-                                      uint32_t *state);
+                                      uint32_t *start_code);
 
 int avpriv_codec_get_cap_skip_frame_fill_param(const AVCodec *codec);
 
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index cf88e0a759..54c9dd056d 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -942,7 +942,7 @@ void ff_thread_report_progress2(AVCodecContext *avctx, int field, int thread, in
 
 const uint8_t *avpriv_find_start_code(const uint8_t *av_restrict p,
                                       const uint8_t *end,
-                                      uint32_t *av_restrict state)
+                                      uint32_t *av_restrict start_code)
 {
     int i;
 
@@ -950,10 +950,10 @@ const uint8_t *avpriv_find_start_code(const uint8_t *av_restrict p,
     if (p >= end)
         return end;
 
-    *state = ~0;
+    *start_code = ~0;
     for (i = 0; i < 3; i++) {
-        uint32_t tmp = *state << 8;
-        *state = tmp + *(p++);
+        uint32_t tmp = *start_code << 8;
+        *start_code = tmp + *(p++);
         if (tmp == 0x100 || p == end)
             return p;
     }
@@ -987,7 +987,7 @@ const uint8_t *avpriv_find_start_code(const uint8_t *av_restrict p,
     // this will cause the last 4 bytes before end to be read,
     // i.e. no out of bounds memory access occurs
 
-    *state = AV_RB32(p - 4);
+    *start_code = AV_RB32(p - 4);
     // read the previous 4 bytes, i.e. bytes {p - 4, p - 3, p - 2, p - 1}
 
     return p;
-- 
2.32.0



More information about the ffmpeg-devel mailing list