On Mon, Oct 03, 2011 at 11:28:58PM -0700, Ronald S. Bultje wrote:
> It was wrong in colorspaces where horizontal and vertical chroma
> subsampling are not the same, e.g. 422.
> ---
>  libavcodec/mpegvideo.c |   15 +++++++++------
>  1 files changed, 9 insertions(+), 6 deletions(-)
> 
> diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
> index e418e95..baab3c8 100644
> --- a/libavcodec/mpegvideo.c
> +++ b/libavcodec/mpegvideo.c
> @@ -2313,12 +2313,15 @@ void ff_draw_horiz_band(MpegEncContext *s, int y, int 
> h){
>  
>          edge_h= FFMIN(h, s->v_edge_pos - y);
>  
> -        s->dsp.draw_edges(s->current_picture_ptr->f.data[0] +  y         
> *s->linesize  , s->linesize,
> -                          s->h_edge_pos        , edge_h        , EDGE_WIDTH  
>       , EDGE_WIDTH        , sides);
> -        s->dsp.draw_edges(s->current_picture_ptr->f.data[1] + 
> (y>>vshift)*s->uvlinesize, s->uvlinesize,
> -                          s->h_edge_pos>>hshift, edge_h>>hshift, 
> EDGE_WIDTH>>hshift, EDGE_WIDTH>>vshift, sides);
> -        s->dsp.draw_edges(s->current_picture_ptr->f.data[2] + 
> (y>>vshift)*s->uvlinesize, s->uvlinesize,
> -                          s->h_edge_pos>>hshift, edge_h>>hshift, 
> EDGE_WIDTH>>hshift, EDGE_WIDTH>>vshift, sides);
> +        s->dsp.draw_edges(s->current_picture_ptr->f.data[0] +  y         
> *s->linesize,
> +                          s->linesize,           s->h_edge_pos,         
> edge_h,
> +                          EDGE_WIDTH,            EDGE_WIDTH,            
> sides);
> +        s->dsp.draw_edges(s->current_picture_ptr->f.data[1] + 
> (y>>vshift)*s->uvlinesize,
> +                          s->uvlinesize,         s->h_edge_pos>>hshift, 
> edge_h>>vshift,
> +                          EDGE_WIDTH>>hshift,    EDGE_WIDTH>>vshift,    
> sides);
> +        s->dsp.draw_edges(s->current_picture_ptr->f.data[2] + 
> (y>>vshift)*s->uvlinesize,
> +                          s->uvlinesize,         s->h_edge_pos>>hshift, 
> edge_h>>vshift,
> +                          EDGE_WIDTH>>hshift,    EDGE_WIDTH>>vshift,    
> sides);
>      }
>  
>      h= FFMIN(h, s->avctx->height - y);

lgtm, although I would have broken the long lines in a separate patch.

Janne
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to