Lines Matching defs:frame
459 static int cuvid_output_frame(AVCodecContext *avctx, AVFrame *frame)
512 ret = av_hwframe_get_buffer(ctx->hwframe, frame, 0);
518 ret = ff_decode_frame_props(avctx, frame);
532 .dstDevice = (CUdeviceptr)frame->data[i],
534 .dstPitch = frame->linesize[i],
536 .WidthInBytes = FFMIN(pitch, frame->linesize[i]),
583 ret = ff_get_buffer(avctx, frame, 0);
590 ret = av_hwframe_transfer_data(frame, tmp_frame, 0);
602 frame->key_frame = ctx->key_frame[parsed_frame.dispinfo.picture_index];
605 frame->width = avctx->width;
606 frame->height = avctx->height;
608 frame->pts = av_rescale_q(parsed_frame.dispinfo.timestamp, (AVRational){1, 10000000}, avctx->pkt_timebase);
610 frame->pts = parsed_frame.dispinfo.timestamp;
614 ctx->prev_pts = frame->pts;
615 frame->pts += (avctx->pkt_timebase.den * avctx->framerate.den) / (avctx->pkt_timebase.num * avctx->framerate.num);
617 int pts_diff = (frame->pts - ctx->prev_pts) / 2;
618 ctx->prev_pts = frame->pts;
619 frame->pts += pts_diff;
626 frame->pkt_pos = -1;
627 frame->pkt_duration = 0;
628 frame->pkt_size = -1;
630 frame->interlaced_frame = !parsed_frame.is_deinterlacing && !parsed_frame.dispinfo.progressive_frame;
632 if (frame->interlaced_frame)
633 frame->top_field_first = parsed_frame.dispinfo.top_field_first;
642 av_frame_unref(frame);