[FFmpeg-cvslog] libx264: feed x264_param_apply_profile from AVCodecContext. profile in absence of other information

Lyubomir Marinov git at videolan.org
Mon Sep 17 21:40:26 CEST 2012


ffmpeg | branch: master | Lyubomir Marinov <lyubomir.marinov at jitsi.org> | Sun Sep 16 22:53:49 2012 +0300| [63951aec2b9d0f92f55c4229b9151d99026b82b6] | committer: Michael Niedermayer

libx264: feed x264_param_apply_profile from AVCodecContext.profile in absence of other information

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=63951aec2b9d0f92f55c4229b9151d99026b82b6
---

 libavcodec/libx264.c |   24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index 4435a2a..39a7d7d 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -457,6 +457,30 @@ static av_cold int X264_init(AVCodecContext *avctx)
     if (x4->fastfirstpass)
         x264_param_apply_fastfirstpass(&x4->params);
 
+    /* Allow specifying the x264 profile through AVCodecContext. */
+    if (!x4->profile)
+        switch (avctx->profile) {
+        case FF_PROFILE_H264_BASELINE:
+            x4->profile = av_strdup("baseline");
+            break;
+        case FF_PROFILE_H264_HIGH:
+            x4->profile = av_strdup("high");
+            break;
+        case FF_PROFILE_H264_HIGH_10:
+            x4->profile = av_strdup("high10");
+            break;
+        case FF_PROFILE_H264_HIGH_422:
+            x4->profile = av_strdup("high422");
+            break;
+        case FF_PROFILE_H264_HIGH_444:
+            x4->profile = av_strdup("high444");
+            break;
+        case FF_PROFILE_H264_MAIN:
+            x4->profile = av_strdup("main");
+            break;
+        default:
+            break;
+        }
     if (x4->profile)
         if (x264_param_apply_profile(&x4->params, x4->profile) < 0) {
             int i;



More information about the ffmpeg-cvslog mailing list