This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 10407de11049e216dfbeb46f868b378dfb1c1198
Author:     Lynne <[email protected]>
AuthorDate: Tue Feb 10 06:09:52 2026 +0100
Commit:     Lynne <[email protected]>
CommitDate: Thu Feb 19 19:42:32 2026 +0100

    vulkan/rangecoder: clean up unused functions and redundant fields
---
 libavcodec/vulkan/ffv1_dec.comp.glsl       | 11 +++++++----
 libavcodec/vulkan/ffv1_dec_setup.comp.glsl |  8 ++++----
 libavcodec/vulkan/ffv1_enc.comp.glsl       | 14 ++++++++------
 libavcodec/vulkan/ffv1_enc_setup.comp.glsl | 10 +++++-----
 libavcodec/vulkan/rangecoder.glsl          | 23 +++++------------------
 5 files changed, 29 insertions(+), 37 deletions(-)

diff --git a/libavcodec/vulkan/ffv1_dec.comp.glsl 
b/libavcodec/vulkan/ffv1_dec.comp.glsl
index 2c089dd64d..cee1fb477a 100644
--- a/libavcodec/vulkan/ffv1_dec.comp.glsl
+++ b/libavcodec/vulkan/ffv1_dec.comp.glsl
@@ -35,13 +35,15 @@ layout (set = 1, binding = 2, scalar) writeonly buffer 
slice_status_buf {
 };
 layout (set = 1, binding = 4) uniform uimage2D dec[];
 
+uint64_t slice_start;
+
 #ifndef GOLOMB
 
 layout (set = 1, binding = 3, scalar) buffer slice_state_buf {
     uint8_t slice_rc_state[];
 };
 
-#define READ(idx) get_rac_noadapt(idx)
+#define READ(idx) get_rac_state(idx)
 int get_isymbol(void)
 {
     if (READ(0))
@@ -160,9 +162,9 @@ void golomb_init(inout SliceContext sc)
     if (version == 3 && micro_version > 1 || version > 3)
         get_rac_internal(rc.range * 129 >> 8);
 
-    uint64_t ac_byte_count = rc.bytestream - rc.bytestream_start - 1;
-    init_get_bits(gb, u8buf(rc.bytestream_start + ac_byte_count),
-                  int(rc.bytestream_end - rc.bytestream_start - 
ac_byte_count));
+    uint64_t ac_byte_count = rc.bytestream - slice_start - 1;
+    init_get_bits(gb, u8buf(slice_start + ac_byte_count),
+                  int(rc.bytestream_end - slice_start - ac_byte_count));
 }
 
 void decode_line(ivec2 sp, int w,
@@ -340,6 +342,7 @@ void decode_slice(inout SliceContext sc, const uint 
slice_idx)
 void main(void)
 {
     uint slice_idx = gl_WorkGroupID.y*gl_NumWorkGroups.x + gl_WorkGroupID.x;
+    slice_start = uint64_t(slice_data) + slice_offsets[slice_idx].x;
 
     rc = slice_ctx[slice_idx].c;
 
diff --git a/libavcodec/vulkan/ffv1_dec_setup.comp.glsl 
b/libavcodec/vulkan/ffv1_dec_setup.comp.glsl
index 56abad0971..e3cf45c8ed 100644
--- a/libavcodec/vulkan/ffv1_dec_setup.comp.glsl
+++ b/libavcodec/vulkan/ffv1_dec_setup.comp.glsl
@@ -42,17 +42,17 @@ const int nb_hdr_sym = 4 + codec_planes + 3;
 
 uint get_usymbol(void)
 {
-    if (get_rac_direct(rc_state[0]))
+    if (get_rac(rc_state[0]))
         return 0;
 
     int e = 0;
-    while (get_rac_direct(rc_state[1 + min(e, 9)])) // 1..10
+    while (get_rac(rc_state[1 + min(e, 9)])) // 1..10
         e++;
 
     uint a = 1;
     for (int i = e - 1; i >= 0; i--) {
         a <<= 1;
-        a |= uint(get_rac_direct(rc_state[22 + min(i, 9)]));  // 22..31
+        a |= uint(get_rac(rc_state[22 + min(i, 9)]));  // 22..31
     }
 
     return a;
@@ -95,7 +95,7 @@ bool decode_slice_header(inout SliceContext sc)
     }
 
     if (version >= 4) {
-        sc.slice_reset_contexts = get_rac_direct(rc_state[0]);
+        sc.slice_reset_contexts = get_rac(rc_state[0]);
         sc.slice_coding_mode = get_usymbol();
         if (sc.slice_coding_mode != 1 && colorspace == 1) {
             sc.slice_rct_coef.x = int(get_usymbol());
diff --git a/libavcodec/vulkan/ffv1_enc.comp.glsl 
b/libavcodec/vulkan/ffv1_enc.comp.glsl
index 48f2e33591..c2a1d7125d 100644
--- a/libavcodec/vulkan/ffv1_enc.comp.glsl
+++ b/libavcodec/vulkan/ffv1_enc.comp.glsl
@@ -36,13 +36,15 @@ layout (set = 1, binding = 1, scalar) writeonly buffer 
slice_results_buf {
 };
 layout (set = 1, binding = 3) uniform uimage2D src[];
 
+uint64_t slice_start;
+
 #ifndef GOLOMB
 
 layout (set = 1, binding = 2, scalar) buffer slice_state_buf {
     uint8_t slice_rc_state[];
 };
 
-#define WRITE(off, val) put_rac_direct(slice_rc_state[state_off + off], val)
+#define WRITE(off, val) put_rac(slice_rc_state[state_off + off], val)
 void put_symbol(uint state_off, int v)
 {
     bool is_nil = (v == 0);
@@ -124,9 +126,8 @@ PutBitContext pb;
 
 void init_golomb(inout SliceContext sc)
 {
-    hdr_len = rac_terminate();
-    init_put_bits(pb,
-                  OFFBUF(u8buf, rc.bytestream_start, hdr_len),
+    hdr_len = rac_terminate(slice_start);
+    init_put_bits(pb, OFFBUF(u8buf, slice_start, hdr_len),
                   slice_size_max - hdr_len);
 }
 
@@ -324,10 +325,10 @@ void finalize_slice(inout SliceContext sc, const uint 
slice_idx)
 #ifdef GOLOMB
     uint32_t enc_len = hdr_len + flush_put_bits(pb);
 #else
-    uint32_t enc_len = rac_terminate();
+    uint32_t enc_len = rac_terminate(slice_start);
 #endif
 
-    u8buf bs = u8buf(rc.bytestream_start);
+    u8buf bs = u8buf(slice_start);
 
     /* Append slice length */
     u8vec4 enc_len_p = unpack8(enc_len);
@@ -363,6 +364,7 @@ void finalize_slice(inout SliceContext sc, const uint 
slice_idx)
 void main(void)
 {
     const uint slice_idx = gl_WorkGroupID.y*gl_NumWorkGroups.x + 
gl_WorkGroupID.x;
+    slice_start = uint64_t(slice_data) + slice_idx*slice_size_max;
 
     rc = slice_ctx[slice_idx].c;
     encode_slice(slice_ctx[slice_idx], slice_idx);
diff --git a/libavcodec/vulkan/ffv1_enc_setup.comp.glsl 
b/libavcodec/vulkan/ffv1_enc_setup.comp.glsl
index 7f8f72f7ec..c57ba4074b 100644
--- a/libavcodec/vulkan/ffv1_enc_setup.comp.glsl
+++ b/libavcodec/vulkan/ffv1_enc_setup.comp.glsl
@@ -55,18 +55,18 @@ void init_slice(inout SliceContext sc, uint slice_idx)
 void put_usymbol(uint v)
 {
     bool is_nil = (v == 0);
-    put_rac_direct(rc_state[0], is_nil);
+    put_rac(rc_state[0], is_nil);
     if (is_nil)
         return;
 
     const int e = findMSB(v);
 
     for (int i = 0; i < e; i++)
-        put_rac_direct(rc_state[1 + min(i, 9)], true);
-    put_rac_direct(rc_state[1 + min(e, 9)], false);
+        put_rac(rc_state[1 + min(i, 9)], true);
+    put_rac(rc_state[1 + min(e, 9)], false);
 
     for (int i = e - 1; i >= 0; i--)
-        put_rac_direct(rc_state[22 + min(i, 9)], bool(bitfieldExtract(v, i, 
1)));
+        put_rac(rc_state[22 + min(i, 9)], bool(bitfieldExtract(v, i, 1)));
 }
 
 shared uint hdr_sym[4 + 4 + 3];
@@ -95,7 +95,7 @@ void write_slice_header(inout SliceContext sc)
         put_usymbol(hdr_sym[i]);
 
     if (version >= 4) {
-        put_rac_direct(rc_state[0], sc.slice_reset_contexts);
+        put_rac(rc_state[0], sc.slice_reset_contexts);
         put_usymbol(sc.slice_coding_mode);
         if (sc.slice_coding_mode != 1 && colorspace == 1) {
             put_usymbol(sc.slice_rct_coef.y);
diff --git a/libavcodec/vulkan/rangecoder.glsl 
b/libavcodec/vulkan/rangecoder.glsl
index e4fb6557fa..549e0f0dda 100644
--- a/libavcodec/vulkan/rangecoder.glsl
+++ b/libavcodec/vulkan/rangecoder.glsl
@@ -31,7 +31,6 @@ layout (set = 0, binding = 0, scalar) readonly buffer 
rangecoder_buf {
 };
 
 struct RangeCoder {
-    uint64_t bytestream_start;
     uint64_t bytestream;
     uint64_t bytestream_end;
 
@@ -48,7 +47,6 @@ shared bool rc_dec[CONTEXT_SIZE];
 
 void rac_init(u8buf data, uint buf_size)
 {
-    rc.bytestream_start = uint64_t(data);
     rc.bytestream = uint64_t(data);
     rc.bytestream_end = uint64_t(data) + buf_size;
     rc.low = 0;
@@ -138,18 +136,12 @@ void put_rac_internal(const uint range1, bool bit)
         renorm_encoder();
 }
 
-void put_rac_direct(inout uint8_t state, bool bit)
+void put_rac(inout uint8_t state, bool bit)
 {
     put_rac_internal((rc.range * state) >> 8, bit);
     state = zero_one_state[(uint(bit) << 8) + state];
 }
 
-void put_rac(uint64_t state, bool bit)
-{
-    put_rac_direct(u8buf(state).v, bit);
-}
-
-/* Equiprobable bit */
 void put_rac_equi(bool bit)
 {
     put_rac_internal(rc.range >> 1, bit);
@@ -172,7 +164,7 @@ void put_rac_terminate(void)
 }
 
 /* Return the number of bytes written. */
-uint rac_terminate(void)
+uint rac_terminate(uint64_t bytestream_start)
 {
     put_rac_terminate();
     rc.range = uint16_t(0xFF);
@@ -188,7 +180,7 @@ uint rac_terminate(void)
         debugPrintfEXT("Error: range < 0x100");
 #endif
 
-    return uint(uint64_t(rc.bytestream) - uint64_t(rc.bytestream_start));
+    return uint(uint64_t(rc.bytestream) - bytestream_start);
 }
 
 void rac_init_dec(u8buf data, uint buf_size)
@@ -228,24 +220,19 @@ bool get_rac_internal(const uint range1)
     return bit;
 }
 
-bool get_rac_direct(inout uint8_t state)
+bool get_rac(inout uint8_t state)
 {
     bool bit = get_rac_internal(rc.range * state >> 8);
     state = zero_one_state[state + (bit ? 256 : 0)];
     return bit;
 }
 
-bool get_rac_noadapt(uint idx)
+bool get_rac_state(uint idx)
 {
     rc_dec[idx] = true;
     return (rc_data[idx] = get_rac_internal(rc.range * rc_state[idx] >> 8));
 }
 
-bool get_rac(uint64_t state)
-{
-    return get_rac_direct(u8buf(state).v);
-}
-
 bool get_rac_equi(void)
 {
     return get_rac_internal(rc.range >> 1);

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to