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,
|
uint8_t *, size_t, size_t,
|
||||||
const daedalus_h264_deblock_meta *);
|
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;
|
deblock_dispatch_fn fn;
|
||||||
if (target_plane == 0) {
|
if (target_plane == 0) {
|
||||||
if (target_orient == 0)
|
if (target_orient == 0) /* V edge → h_loop_filter */
|
||||||
fn = target_bS_intra ? daedalus_dispatch_h264_deblock_luma_v_intra
|
|
||||||
: daedalus_dispatch_h264_deblock_luma_v;
|
|
||||||
else
|
|
||||||
fn = target_bS_intra ? daedalus_dispatch_h264_deblock_luma_h_intra
|
fn = target_bS_intra ? daedalus_dispatch_h264_deblock_luma_h_intra
|
||||||
: daedalus_dispatch_h264_deblock_luma_h;
|
: 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 {
|
} else {
|
||||||
if (target_orient == 0)
|
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
|
fn = target_bS_intra ? daedalus_dispatch_h264_deblock_chroma_h_intra
|
||||||
: daedalus_dispatch_h264_deblock_chroma_h;
|
: 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);
|
return fn(dec->dctx, sub, scratch, stride, n, meta_scratch);
|
||||||
|
|||||||
Reference in New Issue
Block a user