[FFmpeg-devel] [PATCH]lavc/libx265: Support gray encoding
Carl Eugen Hoyos
cehoyos at ag.or.at
Thu May 12 11:43:19 CEST 2016
Hi!
Attached patch implements gray encoding with libx265, does not fix or
workaround ticket #5536.
I am also attaching the patch I just sent to x265-devel that allows to
test the feature.
Please comment, Carl Eugen
-------------- next part --------------
# HG changeset patch
# User Carl Eugen Hoyos <cehoyos at ag.or.at>
# Date 1463045462 -7200
# Node ID 10763a24dfb97725b291a35787c207eb9931e1a0
# Parent a5362b9533f6a5b77740b4e8f97dba2555b6f929
encoder/sao: Do not assume three planes.
Fixes a crash when encoding gray input.
diff -r a5362b9533f6 -r 10763a24dfb9 source/encoder/sao.cpp
--- a/source/encoder/sao.cpp Wed May 04 21:08:09 2016 +0000
+++ b/source/encoder/sao.cpp Thu May 12 11:31:02 2016 +0200
@@ -1265,7 +1265,7 @@
if (!allowMerge[mergeIdx])
continue;
- for (int plane = 0; plane < 3; plane++)
+ for (int plane = 0; plane < planes; plane++)
{
int64_t estDist = 0;
SaoCtuParam* mergeSrcParam = &(saoParam->ctuParam[plane][addrMerge[mergeIdx]]);
exporting patch:
<fdopen>
-------------- next part --------------
diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c
index 11088b2..f8dd741 100644
--- a/libavcodec/libx265.c
+++ b/libavcodec/libx265.c
@@ -165,6 +165,9 @@ 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:
+ ctx->params->internalCsp = X265_CSP_I400;
+ break;
}
if (ctx->crf >= 0) {
@@ -325,6 +328,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 +341,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 +358,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
};
More information about the ffmpeg-devel
mailing list