libx265: Support SAR
authorDerek Buitenhuis <derek.buitenhuis@gmail.com>
Fri, 21 Feb 2014 17:05:50 +0000 (12:05 -0500)
committerDerek Buitenhuis <derek.buitenhuis@gmail.com>
Mon, 24 Feb 2014 16:07:33 +0000 (11:07 -0500)
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
libavcodec/libx265.c

index 2babac3..2846c34 100644 (file)
@@ -77,6 +77,7 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx)
     libx265Context *ctx = avctx->priv_data;
     x265_nal *nal;
     uint8_t *buf;
+    int sar_num, sar_den;
     int nnal;
     int ret;
     int i;
@@ -113,6 +114,15 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx)
     ctx->params->sourceWidth     = avctx->width;
     ctx->params->sourceHeight    = avctx->height;
 
+    av_reduce(&sar_num, &sar_den,
+              avctx->sample_aspect_ratio.num,
+              avctx->sample_aspect_ratio.den, 4096);
+    ctx->params->bEnableVuiParametersPresentFlag = 1;
+    ctx->params->bEnableAspectRatioIdc           = 1;
+    ctx->params->aspectRatioIdc                  = 255;
+    ctx->params->sarWidth                        = sar_num;
+    ctx->params->sarHeight                       = sar_den;
+
     if (x265_max_bit_depth == 8)
         ctx->params->internalBitDepth = 8;
     else if (x265_max_bit_depth == 12)