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

Git pushed a commit to branch master
in repository ffmpeg.

commit ab2ba27c180b13250a52fd8a33cf910a51a50750
Author:     Lynne <[email protected]>
AuthorDate: Tue Feb 3 23:59:47 2026 +0100
Commit:     Lynne <[email protected]>
CommitDate: Thu Feb 19 19:42:28 2026 +0100

    ffv1enc_vulkan: remove golomb gb context from main slice context
---
 libavcodec/vulkan/ffv1_common.comp    |  8 --------
 libavcodec/vulkan/ffv1_common.glsl    |  4 ----
 libavcodec/vulkan/ffv1_enc.comp       | 26 ++++++++++++++++++++------
 libavcodec/vulkan/ffv1_enc_setup.comp | 14 --------------
 4 files changed, 20 insertions(+), 32 deletions(-)

diff --git a/libavcodec/vulkan/ffv1_common.comp 
b/libavcodec/vulkan/ffv1_common.comp
index 5f654e2b29..b4bfd61217 100644
--- a/libavcodec/vulkan/ffv1_common.comp
+++ b/libavcodec/vulkan/ffv1_common.comp
@@ -23,19 +23,11 @@
 struct SliceContext {
     RangeCoder c;
 
-#if !defined(DECODE)
-    PutBitContext pb; /* 8*8 bytes */
-#else
-    GetBitContext gb;
-#endif
-
     ivec2 slice_dim;
     ivec2 slice_pos;
     ivec2 slice_rct_coef;
     u8vec3 quant_table_idx;
 
-    uint hdr_len; // only used for golomb
-
     uint slice_coding_mode;
     bool slice_reset_contexts;
 };
diff --git a/libavcodec/vulkan/ffv1_common.glsl 
b/libavcodec/vulkan/ffv1_common.glsl
index 48261072a7..d77f2df96e 100644
--- a/libavcodec/vulkan/ffv1_common.glsl
+++ b/libavcodec/vulkan/ffv1_common.glsl
@@ -75,10 +75,6 @@ layout (push_constant, scalar) uniform pushConstants {
 struct SliceContext {
     RangeCoder c;
 
-#ifndef DECODE
-    PutBitContext pb; /* 8*8 bytes */
-#endif
-
     ivec2 slice_dim;
     ivec2 slice_pos;
     ivec2 slice_rct_coef;
diff --git a/libavcodec/vulkan/ffv1_enc.comp b/libavcodec/vulkan/ffv1_enc.comp
index f766b69a14..0a997b8a79 100644
--- a/libavcodec/vulkan/ffv1_enc.comp
+++ b/libavcodec/vulkan/ffv1_enc.comp
@@ -115,6 +115,17 @@ void encode_line(inout SliceContext sc, readonly uimage2D 
img, uint state_off,
 
 #else /* GOLOMB */
 
+uint hdr_len = 0;
+PutBitContext pb;
+
+void init_golomb(inout SliceContext sc)
+{
+    hdr_len = rac_terminate(sc.c);
+    init_put_bits(pb,
+                  OFFBUF(u8buf, sc.c.bytestream_start, hdr_len),
+                  slice_size_max - hdr_len);
+}
+
 void encode_line(inout SliceContext sc, readonly uimage2D img, uint state_off,
                  ivec2 sp, int y, int p, int comp, int bits,
                  uint8_t quant_table_idx, inout int run_index)
@@ -150,10 +161,10 @@ void encode_line(inout SliceContext sc, readonly uimage2D 
img, uint state_off,
                 while (run_count >= 1 << log2_run[run_index]) {
                     run_count -= 1 << log2_run[run_index];
                     run_index++;
-                    put_bits(sc.pb, 1, 1);
+                    put_bits(pb, 1, 1);
                 }
 
-                put_bits(sc.pb, 1 + log2_run[run_index], run_count);
+                put_bits(pb, 1 + log2_run[run_index], run_count);
                 if (run_index != 0)
                     run_index--;
                 run_count = 0;
@@ -168,7 +179,7 @@ void encode_line(inout SliceContext sc, readonly uimage2D 
img, uint state_off,
         if (!run_mode) {
             VlcState sb = VlcState(uint64_t(slice_state) + state_off + 
VLC_STATE_SIZE*d[0]);
             Symbol sym = get_vlc_symbol(sb, d[1], bits);
-            put_bits(sc.pb, sym.bits, sym.val);
+            put_bits(pb, sym.bits, sym.val);
         }
     }
 
@@ -176,11 +187,11 @@ void encode_line(inout SliceContext sc, readonly uimage2D 
img, uint state_off,
         while (run_count >= (1 << log2_run[run_index])) {
             run_count -= 1 << log2_run[run_index];
             run_index++;
-            put_bits(sc.pb, 1, 1);
+            put_bits(pb, 1, 1);
         }
 
         if (run_count > 0)
-            put_bits(sc.pb, 1, 1);
+            put_bits(pb, 1, 1);
     }
 }
 #endif
@@ -312,7 +323,7 @@ void finalize_slice(inout SliceContext sc, const uint 
slice_idx)
 #endif
 
 #ifdef GOLOMB
-    uint32_t enc_len = sc.hdr_len + flush_put_bits(sc.pb);
+    uint32_t enc_len = hdr_len + flush_put_bits(pb);
 #else
     uint32_t enc_len = rac_terminate(sc.c);
 #endif
@@ -353,6 +364,9 @@ 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;
+#ifdef GOLOMB
+    init_golomb(slice_ctx[slice_idx]);
+#endif
     encode_slice(slice_ctx[slice_idx], slice_idx);
     finalize_slice(slice_ctx[slice_idx], slice_idx);
 }
diff --git a/libavcodec/vulkan/ffv1_enc_setup.comp 
b/libavcodec/vulkan/ffv1_enc_setup.comp
index 5f8e6704b0..5338f94360 100644
--- a/libavcodec/vulkan/ffv1_enc_setup.comp
+++ b/libavcodec/vulkan/ffv1_enc_setup.comp
@@ -99,16 +99,6 @@ void write_frame_header(inout SliceContext sc)
     put_rac_equi(sc.c, bool(key_frame));
 }
 
-#ifdef GOLOMB
-void init_golomb(inout SliceContext sc)
-{
-    sc.hdr_len = rac_terminate(sc.c);
-    init_put_bits(sc.pb,
-                  OFFBUF(u8buf, sc.c.bytestream_start, sc.hdr_len),
-                  slice_size_max - sc.hdr_len);
-}
-#endif
-
 void main(void)
 {
     const uint slice_idx = gl_WorkGroupID.y*gl_NumWorkGroups.x + 
gl_WorkGroupID.x;
@@ -119,8 +109,4 @@ void main(void)
         write_frame_header(slice_ctx[slice_idx]);
 
     write_slice_header(slice_ctx[slice_idx]);
-
-#ifdef GOLOMB
-    init_golomb(slice_ctx[slice_idx]);
-#endif
 }

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

Reply via email to