[FFmpeg-cvslog] avcodec/proresenc_kostya: add 4444XQ profile
Paul B Mahol
git at videolan.org
Tue Jun 27 15:03:37 EEST 2017
ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Mon Jun 26 16:30:43 2017 +0200| [bbaca6e867999699c026f0de1267f7a5ae06684b] | committer: Paul B Mahol
avcodec/proresenc_kostya: add 4444XQ profile
Signed-off-by: Paul B Mahol <onemda at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bbaca6e867999699c026f0de1267f7a5ae06684b
---
doc/encoders.texi | 1 +
libavcodec/proresenc_kostya.c | 18 +++++++++++++++---
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/doc/encoders.texi b/doc/encoders.texi
index a8bee092cf..9f03c0c608 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -2381,6 +2381,7 @@ Select the ProRes profile to encode
@item standard
@item hq
@item 4444
+ at item 4444xq
@end table
@item quant_mat @var{integer}
diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c
index 09bb6110d3..149dc81b3c 100644
--- a/libavcodec/proresenc_kostya.c
+++ b/libavcodec/proresenc_kostya.c
@@ -46,6 +46,7 @@ enum {
PRORES_PROFILE_STANDARD,
PRORES_PROFILE_HQ,
PRORES_PROFILE_4444,
+ PRORES_PROFILE_4444XQ,
};
enum {
@@ -124,7 +125,7 @@ static const struct prores_profile {
int max_quant;
int br_tab[NUM_MB_LIMITS];
int quant;
-} prores_profile_info[5] = {
+} prores_profile_info[6] = {
{
.full_name = "proxy",
.tag = MKTAG('a', 'p', 'c', 'o'),
@@ -164,6 +165,14 @@ static const struct prores_profile {
.max_quant = 6,
.br_tab = { 2350, 1828, 1600, 1425 },
.quant = QUANT_MAT_HQ,
+ },
+ {
+ .full_name = "4444XQ",
+ .tag = MKTAG('a', 'p', '4', 'x'),
+ .min_quant = 1,
+ .max_quant = 6,
+ .br_tab = { 3525, 2742, 2400, 2137 },
+ .quant = QUANT_MAT_HQ,
}
};
@@ -1155,7 +1164,8 @@ FF_ENABLE_DEPRECATION_WARNINGS
: "HQ profile to keep best quality");
}
if (av_pix_fmt_desc_get(avctx->pix_fmt)->flags & AV_PIX_FMT_FLAG_ALPHA) {
- if (ctx->profile != PRORES_PROFILE_4444) {
+ if (ctx->profile != PRORES_PROFILE_4444 &&
+ ctx->profile != PRORES_PROFILE_4444XQ) {
// force alpha and warn
av_log(avctx, AV_LOG_WARNING, "Profile selected will not "
"encode alpha. Override with -profile if needed.\n");
@@ -1298,7 +1308,7 @@ static const AVOption options[] = {
AV_OPT_TYPE_INT, { .i64 = 8 }, 1, MAX_MBS_PER_SLICE, VE },
{ "profile", NULL, OFFSET(profile), AV_OPT_TYPE_INT,
{ .i64 = PRORES_PROFILE_AUTO },
- PRORES_PROFILE_AUTO, PRORES_PROFILE_4444, VE, "profile" },
+ PRORES_PROFILE_AUTO, PRORES_PROFILE_4444XQ, VE, "profile" },
{ "auto", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = PRORES_PROFILE_AUTO },
0, 0, VE, "profile" },
{ "proxy", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = PRORES_PROFILE_PROXY },
@@ -1311,6 +1321,8 @@ static const AVOption options[] = {
0, 0, VE, "profile" },
{ "4444", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = PRORES_PROFILE_4444 },
0, 0, VE, "profile" },
+ { "4444xq", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = PRORES_PROFILE_4444XQ },
+ 0, 0, VE, "profile" },
{ "vendor", "vendor ID", OFFSET(vendor),
AV_OPT_TYPE_STRING, { .str = "Lavc" }, CHAR_MIN, CHAR_MAX, VE },
{ "bits_per_mb", "desired bits per macroblock", OFFSET(bits_per_mb),
More information about the ffmpeg-cvslog
mailing list