Lines Matching defs:frame

521               av_log(avctx, AV_LOG_ERROR, "Current frame rate is unsupported\n");
1420 //do not reuse enc_ctrl from previous frame
1424 if (cur->frame->format == AV_PIX_FMT_QSV) {
1425 av_frame_unref(cur->frame);
1435 QSVFrame *frame, **last;
1439 frame = q->work_frames;
1441 while (frame) {
1442 if (!frame->used) {
1443 *f = frame;
1444 frame->used = 1;
1448 last = &frame->next;
1449 frame = frame->next;
1452 frame = av_mallocz(sizeof(*frame));
1453 if (!frame)
1455 frame->frame = av_frame_alloc();
1456 if (!frame->frame) {
1457 av_freep(&frame);
1460 frame->enc_ctrl.Payload = frame->payloads;
1461 frame->enc_ctrl.ExtParam = frame->extparam;
1462 *last = frame;
1464 *f = frame;
1465 frame->used = 1;
1470 static int submit_frame(QSVEncContext *q, const AVFrame *frame,
1480 if (frame->format == AV_PIX_FMT_QSV) {
1481 ret = av_frame_ref(qf->frame, frame);
1485 qf->surface = *(mfxFrameSurface1*)qf->frame->data[3];
1497 if ((frame->height & 31 || frame->linesize[0] & (q->width_align - 1)) ||
1498 (frame->data[1] - frame->data[0] != frame->linesize[0] * FFALIGN(qf->frame->height, q->height_align))) {
1499 qf->frame->height = FFALIGN(frame->height, q->height_align);
1500 qf->frame->width = FFALIGN(frame->width, q->width_align);
1502 qf->frame->format = frame->format;
1504 if (!qf->frame->data[0]) {
1505 ret = av_frame_get_buffer(qf->frame, q->width_align);
1510 qf->frame->height = frame->height;
1511 qf->frame->width = frame->width;
1513 ret = av_frame_copy(qf->frame, frame);
1515 av_frame_unref(qf->frame);
1519 av_frame_unref(qf->frame);
1520 ret = av_frame_ref(qf->frame, frame);
1528 !frame->interlaced_frame ? MFX_PICSTRUCT_PROGRESSIVE :
1529 frame->top_field_first ? MFX_PICSTRUCT_FIELD_TFF :
1531 if (frame->repeat_pict == 1)
1533 else if (frame->repeat_pict == 2)
1535 else if (frame->repeat_pict == 4)
1538 ret = ff_qsv_map_frame_to_surface(qf->frame, &qf->surface);
1540 av_log(q->avctx, AV_LOG_ERROR, "map frame to surface failed.\n");
1544 qf->surface.Data.TimeStamp = av_rescale_q(frame->pts, q->avctx->time_base, (AVRational){1, 90000});
1563 static int set_roi_encode_ctrl(AVCodecContext *avctx, const AVFrame *frame,
1576 if (frame)
1577 sd = av_frame_get_side_data(frame, AV_FRAME_DATA_REGIONS_OF_INTEREST);
1625 const AVFrame *frame)
1634 entry = av_dict_get(frame->metadata, "qsv_config_qp", NULL, 0);
1661 const AVFrame *frame)
1665 if (!frame)
1668 needReset = update_qp(avctx, q, frame);
1702 const AVFrame *frame)
1713 if (frame) {
1714 ret = submit_frame(q, frame, &qsv_frame);
1716 av_log(avctx, AV_LOG_ERROR, "Error submitting the frame for encoding.\n");
1724 if (frame->pict_type == AV_PICTURE_TYPE_I) {
1760 q->set_encode_ctrl_cb(avctx, frame, &qsv_frame->enc_ctrl);
1766 ret = set_roi_encode_ctrl(avctx, frame, enc_ctrl);
1790 if (ret == MFX_WRN_INCOMPATIBLE_VIDEO_PARAM && frame && frame->interlaced_frame)
1815 AVPacket *pkt, const AVFrame *frame, int *got_packet)
1819 ret = update_parameters(avctx, q, frame);
1823 ret = encode_frame(avctx, q, frame);
1828 (!frame && av_fifo_can_read(q->async_fifo))) {
1896 av_frame_free(&cur->frame);