Browse Source

lavfi/tinterlace: use avfilter_unref_bufferp()

tags/n0.11
Stefano Sabatini 13 years ago
parent
commit
cf9f7e40cc
1 changed files with 5 additions and 8 deletions
  1. +5
    -8
      libavfilter/vf_tinterlace.c

+ 5
- 8
libavfilter/vf_tinterlace.c View File

@@ -82,8 +82,8 @@ static av_cold void uninit(AVFilterContext *ctx)
{ {
TInterlaceContext *tinterlace = ctx->priv; TInterlaceContext *tinterlace = ctx->priv;


if (tinterlace->cur ) avfilter_unref_buffer(tinterlace->cur );
if (tinterlace->next) avfilter_unref_buffer(tinterlace->next);
if (tinterlace->cur ) avfilter_unref_bufferp(&tinterlace->cur );
if (tinterlace->next) avfilter_unref_bufferp(&tinterlace->next);


av_freep(&tinterlace->black_data[0]); av_freep(&tinterlace->black_data[0]);
} }
@@ -204,15 +204,13 @@ static void end_frame(AVFilterLink *inlink)
next->data, next->linesize, next->data, next->linesize,
inlink->format, inlink->w, inlink->h, inlink->format, inlink->w, inlink->h,
FIELD_UPPER_AND_LOWER, 1, FIELD_LOWER); FIELD_UPPER_AND_LOWER, 1, FIELD_LOWER);
avfilter_unref_buffer(tinterlace->next);
tinterlace->next = NULL;
avfilter_unref_bufferp(&tinterlace->next);
break; break;


case 1: /* only output even frames, odd frames are dropped; height unchanged, half framerate */ case 1: /* only output even frames, odd frames are dropped; height unchanged, half framerate */
case 2: /* only output odd frames, even frames are dropped; height unchanged, half framerate */ case 2: /* only output odd frames, even frames are dropped; height unchanged, half framerate */
out = avfilter_ref_buffer(tinterlace->mode == 2 ? cur : next, AV_PERM_READ); out = avfilter_ref_buffer(tinterlace->mode == 2 ? cur : next, AV_PERM_READ);
avfilter_unref_buffer(tinterlace->next);
tinterlace->next = NULL;
avfilter_unref_bufferp(&tinterlace->next);
break; break;


case 3: /* expand each frame to double height, but pad alternate case 3: /* expand each frame to double height, but pad alternate
@@ -254,8 +252,7 @@ static void end_frame(AVFilterLink *inlink)
next->data, next->linesize, next->data, next->linesize,
inlink->format, inlink->w, inlink->h, inlink->format, inlink->w, inlink->h,
tff ? FIELD_LOWER : FIELD_UPPER, 1, tff ? FIELD_LOWER : FIELD_UPPER); tff ? FIELD_LOWER : FIELD_UPPER, 1, tff ? FIELD_LOWER : FIELD_UPPER);
avfilter_unref_buffer(tinterlace->next);
tinterlace->next = NULL;
avfilter_unref_bufferp(&tinterlace->next);
break; break;
} }




Loading…
Cancel
Save