• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/minidlna/ffmpeg-2.3.4/libavfilter/

Lines Matching defs:yadif

30 #include "yadif.h"
225 YADIFContext *yadif = ctx->priv;
229 for (i = 0; i < yadif->csp->nb_components; i++) {
234 w = FF_CEIL_RSHIFT(w, yadif->csp->log2_chroma_w);
235 h = FF_CEIL_RSHIFT(h, yadif->csp->log2_chroma_h);
251 YADIFContext *yadif = ctx->priv;
255 if (yadif->parity == -1) {
256 tff = yadif->cur->interlaced_frame ?
257 yadif->cur->top_field_first : 1;
259 tff = yadif->parity ^ 1;
263 yadif->out = ff_get_video_buffer(link, link->w, link->h);
264 if (!yadif->out)
267 av_frame_copy_props(yadif->out, yadif->cur);
268 yadif->out->interlaced_frame = 0;
271 filter(ctx, yadif->out, tff ^ !is_second, tff);
274 int64_t cur_pts = yadif->cur->pts;
275 int64_t next_pts = yadif->next->pts;
278 yadif->out->pts = cur_pts + next_pts;
280 yadif->out->pts = AV_NOPTS_VALUE;
283 ret = ff_filter_frame(ctx->outputs[0], yadif->out);
285 yadif->frame_pending = (yadif->mode&1) && !is_second;
289 static int checkstride(YADIFContext *yadif, const AVFrame *a, const AVFrame *b)
292 for (i = 0; i < yadif->csp->nb_components; i++)
315 YADIFContext *yadif = ctx->priv;
319 if (yadif->frame_pending)
322 if (yadif->prev)
323 av_frame_free(&yadif->prev);
324 yadif->prev = yadif->cur;
325 yadif->cur = yadif->next;
326 yadif->next = frame;
328 if (!yadif->cur &&
329 !(yadif->cur = av_frame_clone(yadif->next)))
332 if (checkstride(yadif, yadif->next, yadif->cur)) {
334 fixstride(link, yadif->next);
336 if (checkstride(yadif, yadif->next, yadif->cur))
337 fixstride(link, yadif->cur);
338 if (yadif->prev && checkstride(yadif, yadif->next, yadif->prev))
339 fixstride(link, yadif->prev);
340 if (checkstride(yadif, yadif->next, yadif->cur) || (yadif->prev && checkstride(yadif, yadif->next, yadif->prev))) {
345 if ((yadif->deint && !yadif->cur->interlaced_frame) || ctx->is_disabled) {
346 yadif->out = av_frame_clone(yadif->cur);
347 if (!yadif->out)
350 av_frame_free(&yadif->prev);
351 if (yadif->out->pts != AV_NOPTS_VALUE)
352 yadif->out->pts *= 2;
353 return ff_filter_frame(ctx->outputs[0], yadif->out);
356 if (!yadif->prev)
359 yadif->out = ff_get_video_buffer(ctx->outputs[0], link->w, link->h);
360 if (!yadif->out)
363 av_frame_copy_props(yadif->out, yadif->cur);
364 yadif->out->interlaced_frame = 0;
366 if (yadif->out->pts != AV_NOPTS_VALUE)
367 yadif->out->pts *= 2;
375 YADIFContext *yadif = ctx->priv;
377 if (yadif->frame_pending) {
385 if (yadif->eof)
390 if (ret == AVERROR_EOF && yadif->cur) {
391 AVFrame *next = av_frame_clone(yadif->next);
396 next->pts = yadif->next->pts * 2 - yadif->cur->pts;
399 yadif->eof = 1;
403 } while (!yadif->prev);
410 YADIFContext *yadif = ctx->priv;
412 av_frame_free(&yadif->prev);
413 av_frame_free(&yadif->cur );
414 av_frame_free(&yadif->next);
518 AVFILTER_DEFINE_CLASS(yadif);
540 .name = "yadif",