On 20/01/14 18:30, Janne Grunau wrote: > This handles macroblock edges for the chroma components in the same way > as for the luma compoment for 4:4:4 streams. The Spec explicitly states > that the deblocking filter is not applied to edges at the boundary of > the picture. > > Signed-off-by: Janne Grunau <[email protected]> > --- > libavcodec/h264.c | 24 +++++++++++++----------- > 1 file changed, 13 insertions(+), 11 deletions(-) > > diff --git a/libavcodec/h264.c b/libavcodec/h264.c > index 4b10a68..5069e4a 100644 > --- a/libavcodec/h264.c > +++ b/libavcodec/h264.c > @@ -2361,17 +2361,19 @@ static av_always_inline void > xchg_mb_border(H264Context *h, uint8_t *src_y, > } > if (simple || !CONFIG_GRAY || !(h->flags & CODEC_FLAG_GRAY)) { > if (chroma444) { > - if (deblock_topleft) { > - XCHG(top_border_m1 + (24 << pixel_shift), src_cb - (7 << > pixel_shift), 1); > - XCHG(top_border_m1 + (40 << pixel_shift), src_cr - (7 << > pixel_shift), 1); > - } > - XCHG(top_border + (16 << pixel_shift), src_cb + (1 << > pixel_shift), xchg); > - XCHG(top_border + (24 << pixel_shift), src_cb + (9 << > pixel_shift), 1); > - XCHG(top_border + (32 << pixel_shift), src_cr + (1 << > pixel_shift), xchg); > - XCHG(top_border + (40 << pixel_shift), src_cr + (9 << > pixel_shift), 1); > - if (h->mb_x + 1 < h->mb_width) { > - XCHG(h->top_borders[top_idx][h->mb_x + 1] + (16 << > pixel_shift), src_cb + (17 << pixel_shift), 1); > - XCHG(h->top_borders[top_idx][h->mb_x + 1] + (32 << > pixel_shift), src_cr + (17 << pixel_shift), 1); > + if (deblock_top) { > + if (deblock_topleft) { > + XCHG(top_border_m1 + (24 << pixel_shift), src_cb - (7 << > pixel_shift), 1); > + XCHG(top_border_m1 + (40 << pixel_shift), src_cr - (7 << > pixel_shift), 1); > + } > + XCHG(top_border + (16 << pixel_shift), src_cb + (1 << > pixel_shift), xchg); > + XCHG(top_border + (24 << pixel_shift), src_cb + (9 << > pixel_shift), 1); > + XCHG(top_border + (32 << pixel_shift), src_cr + (1 << > pixel_shift), xchg); > + XCHG(top_border + (40 << pixel_shift), src_cr + (9 << > pixel_shift), 1); > + if (h->mb_x + 1 < h->mb_width) { > + XCHG(h->top_borders[top_idx][h->mb_x + 1] + (16 << > pixel_shift), src_cb + (17 << pixel_shift), 1); > + XCHG(h->top_borders[top_idx][h->mb_x + 1] + (32 << > pixel_shift), src_cr + (17 << pixel_shift), 1); > + } > } > } else { > if (deblock_top) { >
Seems fine. lu _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
