[FFmpeg-devel] [PATCH 1/2] avfilter: vf_minterpolate: rename chroma log vars

Paul B Mahol onemda at gmail.com
Mon Aug 29 18:02:30 EEST 2016


On Sun, Aug 28, 2016 at 10:51 PM, Paul B Mahol <onemda at gmail.com> wrote:

>
>
> On Sun, Aug 28, 2016 at 10:47 PM, Michael Niedermayer <
> michael at niedermayer.cc> wrote:
>
>> On Sun, Aug 28, 2016 at 06:24:14PM +0000, Davinder Singh wrote:
>> > hi,
>> >
>> > this rename confusing chroma variables to one used in
>> AVPixFmtDescriptor.
>> > more consistent.
>> > also removed some useless vars from context.
>> >
>> > thanks
>> > DSM_
>>
>> [...]
>>
>> > @@ -900,6 +894,8 @@ static void bidirectional_obmc(MIContext *mi_ctx,
>> int alpha)
>> >              }
>> >  }
>> >
>> > +
>> > +
>> >  static void set_frame_data(MIContext *mi_ctx, int alpha, AVFrame
>> *avf_out)
>> >  {
>> >      int x, y, plane;
>>
>> stray change
>>
>>
>> > @@ -936,8 +932,8 @@ static void set_frame_data(MIContext *mi_ctx, int
>> alpha, AVFrame *avf_out)
>> >                  for (i = 0; i < pixel->nb; i++) {
>> >                      Frame *frame = &mi_ctx->frames[pixel->refs[i]];
>> >                      if (chroma) {
>> > -                        x_mv = (x >> mi_ctx->chroma_h_shift) +
>> (pixel->mvs[i][0] >> mi_ctx->chroma_h_shift);
>> > -                        y_mv = (y >> mi_ctx->chroma_v_shift) +
>> (pixel->mvs[i][1] >> mi_ctx->chroma_v_shift);
>> > +                        x_mv = (x >> mi_ctx->log2_chroma_w) +
>> (pixel->mvs[i][0] >> mi_ctx->log2_chroma_w);
>> > +                        y_mv = (y >> mi_ctx->log2_chroma_h) +
>> (pixel->mvs[i][1] >> mi_ctx->log2_chroma_h);
>> >                      } else {
>> >                          x_mv = x + pixel->mvs[i][0];
>> >                          y_mv = y + pixel->mvs[i][1];
>> > @@ -949,7 +945,7 @@ static void set_frame_data(MIContext *mi_ctx, int
>> alpha, AVFrame *avf_out)
>> >                  val = ROUNDED_DIV(val, weight_sum);
>> >
>> >                  if (chroma)
>> > -                    avf_out->data[plane][(x >> mi_ctx->chroma_h_shift)
>> + (y >> mi_ctx->chroma_v_shift) * avf_out->linesize[plane]] = val;
>> > +                    avf_out->data[plane][(x >> mi_ctx->log2_chroma_w)
>> + (y >> mi_ctx->log2_chroma_h) * avf_out->linesize[plane]] = val;
>> >                  else
>> >                      avf_out->data[plane][x + y *
>> avf_out->linesize[plane]] = val;
>> >              }
>> > @@ -1092,8 +1088,8 @@ static void interpolate(AVFilterLink *inlink,
>> AVFrame *avf_out)
>> >                  int height = avf_out->height;
>> >
>> >                  if (plane == 1 || plane == 2) {
>> > -                    width = mi_ctx->chroma_width;
>> > -                    height = mi_ctx->chroma_height;
>> > +                    width = width >> mi_ctx->log2_chroma_w;
>> > +                    height = height >> mi_ctx->log2_chroma_h;
>>
>> this is rounded differntly if wdith / height is odd,
>> is that intended ?
>>
>
> It should use AV_CEIL_RSHIFT
>

And using avcodec* stuff is in lavfi is not needed.


More information about the ffmpeg-devel mailing list