fix: swap _v/_h dispatch fn selection — naming refers to filter direction not edge direction
This commit is contained in:
+13
-7
@@ -298,21 +298,27 @@ static int dispatch_deblock_pass(
|
||||
uint8_t *, size_t, size_t,
|
||||
const daedalus_h264_deblock_meta *);
|
||||
|
||||
/* daedalus-fourier kernel naming convention:
|
||||
* _v = "v_loop_filter" — filter applied VERTICALLY across a
|
||||
* HORIZONTAL edge. Use for our orient=1 (H edge).
|
||||
* _h = "h_loop_filter" — filter applied HORIZONTALLY across a
|
||||
* VERTICAL edge. Use for our orient=0 (V edge).
|
||||
* The names refer to the FILTER DIRECTION, not the edge direction. */
|
||||
deblock_dispatch_fn fn;
|
||||
if (target_plane == 0) {
|
||||
if (target_orient == 0)
|
||||
fn = target_bS_intra ? daedalus_dispatch_h264_deblock_luma_v_intra
|
||||
: daedalus_dispatch_h264_deblock_luma_v;
|
||||
else
|
||||
if (target_orient == 0) /* V edge → h_loop_filter */
|
||||
fn = target_bS_intra ? daedalus_dispatch_h264_deblock_luma_h_intra
|
||||
: daedalus_dispatch_h264_deblock_luma_h;
|
||||
else /* H edge → v_loop_filter */
|
||||
fn = target_bS_intra ? daedalus_dispatch_h264_deblock_luma_v_intra
|
||||
: daedalus_dispatch_h264_deblock_luma_v;
|
||||
} else {
|
||||
if (target_orient == 0)
|
||||
fn = target_bS_intra ? daedalus_dispatch_h264_deblock_chroma_v_intra
|
||||
: daedalus_dispatch_h264_deblock_chroma_v;
|
||||
else
|
||||
fn = target_bS_intra ? daedalus_dispatch_h264_deblock_chroma_h_intra
|
||||
: daedalus_dispatch_h264_deblock_chroma_h;
|
||||
else
|
||||
fn = target_bS_intra ? daedalus_dispatch_h264_deblock_chroma_v_intra
|
||||
: daedalus_dispatch_h264_deblock_chroma_v;
|
||||
}
|
||||
|
||||
return fn(dec->dctx, sub, scratch, stride, n, meta_scratch);
|
||||
|
||||
Reference in New Issue
Block a user