mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-04-14 00:58:38 +02:00
vaapi_encode: Warn if input has cropping information
Cropping is not supported by VAAPI encode.
This commit is contained in:
parent
ef2f89bbcc
commit
909bcedc58
@ -913,6 +913,21 @@ static int vaapi_encode_clear_old(AVCodecContext *avctx)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int vaapi_encode_check_frame(AVCodecContext *avctx,
|
||||||
|
const AVFrame *frame)
|
||||||
|
{
|
||||||
|
VAAPIEncodeContext *ctx = avctx->priv_data;
|
||||||
|
|
||||||
|
if ((frame->crop_top || frame->crop_bottom ||
|
||||||
|
frame->crop_left || frame->crop_right) && !ctx->crop_warned) {
|
||||||
|
av_log(avctx, AV_LOG_WARNING, "Cropping information on input "
|
||||||
|
"frames ignored due to lack of API support.\n");
|
||||||
|
ctx->crop_warned = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int ff_vaapi_encode_send_frame(AVCodecContext *avctx, const AVFrame *frame)
|
int ff_vaapi_encode_send_frame(AVCodecContext *avctx, const AVFrame *frame)
|
||||||
{
|
{
|
||||||
VAAPIEncodeContext *ctx = avctx->priv_data;
|
VAAPIEncodeContext *ctx = avctx->priv_data;
|
||||||
@ -923,6 +938,10 @@ int ff_vaapi_encode_send_frame(AVCodecContext *avctx, const AVFrame *frame)
|
|||||||
av_log(avctx, AV_LOG_DEBUG, "Input frame: %ux%u (%"PRId64").\n",
|
av_log(avctx, AV_LOG_DEBUG, "Input frame: %ux%u (%"PRId64").\n",
|
||||||
frame->width, frame->height, frame->pts);
|
frame->width, frame->height, frame->pts);
|
||||||
|
|
||||||
|
err = vaapi_encode_check_frame(avctx, frame);
|
||||||
|
if (err < 0)
|
||||||
|
return err;
|
||||||
|
|
||||||
pic = vaapi_encode_alloc(avctx);
|
pic = vaapi_encode_alloc(avctx);
|
||||||
if (!pic)
|
if (!pic)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
@ -314,6 +314,10 @@ typedef struct VAAPIEncodeContext {
|
|||||||
int idr_counter;
|
int idr_counter;
|
||||||
int gop_counter;
|
int gop_counter;
|
||||||
int end_of_stream;
|
int end_of_stream;
|
||||||
|
|
||||||
|
// The encoder does not support cropping information, so warn about
|
||||||
|
// it the first time we encounter any nonzero crop fields.
|
||||||
|
int crop_warned;
|
||||||
} VAAPIEncodeContext;
|
} VAAPIEncodeContext;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user