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]
