Browse Source

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@gmail.com>
tags/n2.7
Steve Borho James Almer 10 years ago
parent
commit
b012bd5068
1 changed files with 3 additions and 3 deletions
  1. +3
    -3
      libavcodec/libx265.c

+ 3
- 3
libavcodec/libx265.c View File

@@ -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)


Loading…
Cancel
Save