[FFmpeg-cvslog] libavcodec/x265: detect csps in libx265_encode_init_csp()
Steve Borho
git at videolan.org
Mon May 18 20:29:20 CEST 2015
ffmpeg | branch: master | Steve Borho <steve at borho.org> | Fri May 15 22:05:12 2015 -0500| [b012bd50685e1b952da20662af8d89f73ecdc49b] | committer: James Almer
libavcodec/x265: detect csps in libx265_encode_init_csp()
Without this change, if you link with an 8bit libx265 and try to specify
a 10bit input color space via:
ffmpeg -i in.mov -c:v libx265 -pix_fmt yuv420p10le out.mp4
It will error with:
Incompatible pixel format 'yuv420p10le' for codec 'libx265',
auto-selecting format 'yuv420p'
With this fix, it will learn if a 10bit libx265 is available at startup,
and thus allow 10bit input color spaces.
Reviewed-by: Derek Buitenhuis <derek.buitenhuis at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b012bd50685e1b952da20662af8d89f73ecdc49b
---
libavcodec/libx265.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c
index 7423e13..e9240f9 100644
--- a/libavcodec/libx265.c
+++ b/libavcodec/libx265.c
@@ -342,10 +342,10 @@ static const enum AVPixelFormat x265_csp_twelve[] = {
static av_cold void libx265_encode_init_csp(AVCodec *codec)
{
- if (x265_max_bit_depth == 8)
- codec->pix_fmts = x265_csp_eight;
- else if (x265_max_bit_depth == 12)
+ if (x265_api_get(10))
codec->pix_fmts = x265_csp_twelve;
+ else if (x265_api_get(8))
+ codec->pix_fmts = x265_csp_eight;
}
#define OFFSET(x) offsetof(libx265Context, x)
More information about the ffmpeg-cvslog
mailing list