|
|
|
@ -161,7 +161,7 @@ static void xavs2_copy_frame(xavs2_picture_t *pic, const AVFrame *frame) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int xavs2_encode_frame(AVCodecContext *avctx, AVPacket *pkt, |
|
|
|
|
const AVFrame *frame, int *got_packet) |
|
|
|
|
const AVFrame *frame, int *got_packet) |
|
|
|
|
{ |
|
|
|
|
XAVS2EContext *cae = avctx->priv_data; |
|
|
|
|
xavs2_picture_t pic; |
|
|
|
@ -175,22 +175,22 @@ static int xavs2_encode_frame(AVCodecContext *avctx, AVPacket *pkt, |
|
|
|
|
} |
|
|
|
|
if (frame) { |
|
|
|
|
switch (frame->format) { |
|
|
|
|
case AV_PIX_FMT_YUV420P: |
|
|
|
|
if (pic.img.in_sample_size == pic.img.enc_sample_size) { |
|
|
|
|
xavs2_copy_frame(&pic, frame); |
|
|
|
|
} else { |
|
|
|
|
const int shift_in = atoi(cae->api->opt_get(cae->param, "SampleShift")); |
|
|
|
|
xavs2_copy_frame_with_shift(&pic, frame, shift_in); |
|
|
|
|
} |
|
|
|
|
case AV_PIX_FMT_YUV420P: |
|
|
|
|
if (pic.img.in_sample_size == pic.img.enc_sample_size) { |
|
|
|
|
xavs2_copy_frame(&pic, frame); |
|
|
|
|
} else { |
|
|
|
|
const int shift_in = atoi(cae->api->opt_get(cae->param, "SampleShift")); |
|
|
|
|
xavs2_copy_frame_with_shift(&pic, frame, shift_in); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case AV_PIX_FMT_YUV420P10: |
|
|
|
|
if (pic.img.in_sample_size == pic.img.enc_sample_size) { |
|
|
|
|
xavs2_copy_frame(&pic, frame); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
default: |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "Unsupported pixel format\n"); |
|
|
|
|
return AVERROR(EINVAL); |
|
|
|
|
case AV_PIX_FMT_YUV420P10: |
|
|
|
|
if (pic.img.in_sample_size == pic.img.enc_sample_size) { |
|
|
|
|
xavs2_copy_frame(&pic, frame); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
default: |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "Unsupported pixel format\n"); |
|
|
|
|
return AVERROR(EINVAL); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -271,7 +271,7 @@ static const AVClass libxavs2 = { |
|
|
|
|
|
|
|
|
|
static const AVCodecDefault xavs2_defaults[] = { |
|
|
|
|
{ "b", "0" }, |
|
|
|
|
{ "g", "48" }, |
|
|
|
|
{ "g", "48"}, |
|
|
|
|
{ "bf", "7" }, |
|
|
|
|
{ NULL }, |
|
|
|
|
}; |
|
|
|
|