summaryrefslogtreecommitdiff
path: root/libavcodec/libx265.c
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2016-07-06 18:56:19 +0200
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2016-07-06 18:56:19 +0200
commit3e4357eb822c8bcaf9743dde008f5774d1356e74 (patch)
tree8d2a1e4e774fa27eda8633de2dc1584bbf427be7 /libavcodec/libx265.c
parent88d9c30cf57ec7328f16a241f10c84415e9aef4e (diff)
lavc/libx265: Support gray encoding.
Gray encoding crashes with libx265 <= 84, so check the library version.
Diffstat (limited to 'libavcodec/libx265.c')
-rw-r--r--libavcodec/libx265.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c
index 11088b2205..d25be70ffd 100644
--- a/libavcodec/libx265.c
+++ b/libavcodec/libx265.c
@@ -165,6 +165,15 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx)
case AV_PIX_FMT_YUV444P12:
ctx->params->internalCsp = X265_CSP_I444;
break;
+ case AV_PIX_FMT_GRAY8:
+ if (ctx->api->api_build_number < 85) {
+ av_log(avctx, AV_LOG_ERROR,
+ "libx265 version is %d, must be at least 85 for gray encoding.\n",
+ ctx->api->api_build_number);
+ return AVERROR_INVALIDDATA;
+ }
+ ctx->params->internalCsp = X265_CSP_I400;
+ break;
}
if (ctx->crf >= 0) {
@@ -325,6 +334,7 @@ static const enum AVPixelFormat x265_csp_eight[] = {
AV_PIX_FMT_YUV422P,
AV_PIX_FMT_YUV444P,
AV_PIX_FMT_GBRP,
+ AV_PIX_FMT_GRAY8,
AV_PIX_FMT_NONE
};
@@ -337,6 +347,7 @@ static const enum AVPixelFormat x265_csp_ten[] = {
AV_PIX_FMT_YUV422P10,
AV_PIX_FMT_YUV444P10,
AV_PIX_FMT_GBRP10,
+ AV_PIX_FMT_GRAY8,
AV_PIX_FMT_NONE
};
@@ -353,6 +364,7 @@ static const enum AVPixelFormat x265_csp_twelve[] = {
AV_PIX_FMT_YUV422P12,
AV_PIX_FMT_YUV444P12,
AV_PIX_FMT_GBRP12,
+ AV_PIX_FMT_GRAY8,
AV_PIX_FMT_NONE
};