]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/libx264.c
Merge commit '324e50ee95929a9491b855c5e15451145bd5d1ec'
[ffmpeg] / libavcodec / libx264.c
index d81721c5f74f79a04f86cff233af8c7951363c35..9020a4049589709ed127438f0044f81139844562 100644 (file)
@@ -148,6 +148,7 @@ static int avfmt2_num_planes(int avfmt)
     case AV_PIX_FMT_YUV444P:
         return 3;
 
+    case AV_PIX_FMT_BGR0:
     case AV_PIX_FMT_BGR24:
     case AV_PIX_FMT_RGB24:
         return 1;
@@ -346,6 +347,8 @@ static int convert_pix_fmt(enum AVPixelFormat pix_fmt)
     case AV_PIX_FMT_YUV444P9:
     case AV_PIX_FMT_YUV444P10: return X264_CSP_I444;
 #ifdef X264_CSP_BGR
+    case AV_PIX_FMT_BGR0:
+        return X264_CSP_BGRA;
     case AV_PIX_FMT_BGR24:
         return X264_CSP_BGR;
 
@@ -703,7 +706,7 @@ static av_cold int X264_init(AVCodecContext *avctx)
         s = x264_encoder_headers(x4->enc, &nal, &nnal);
         avctx->extradata = p = av_malloc(s);
         if (!p)
-            goto nomem;
+            return AVERROR(ENOMEM);
 
         for (i = 0; i < nnal; i++) {
             /* Don't put the SEI in extradata. */
@@ -712,7 +715,7 @@ static av_cold int X264_init(AVCodecContext *avctx)
                 x4->sei_size = nal[i].i_payload;
                 x4->sei      = av_malloc(x4->sei_size);
                 if (!x4->sei)
-                    goto nomem;
+                    return AVERROR(ENOMEM);
                 memcpy(x4->sei, nal[i].p_payload, nal[i].i_payload);
                 continue;
             }
@@ -723,9 +726,6 @@ static av_cold int X264_init(AVCodecContext *avctx)
     }
 
     return 0;
-nomem:
-    X264_close(avctx);
-    return AVERROR(ENOMEM);
 }
 
 static const enum AVPixelFormat pix_fmts_8bit[] = {
@@ -753,6 +753,7 @@ static const enum AVPixelFormat pix_fmts_10bit[] = {
 };
 static const enum AVPixelFormat pix_fmts_8bit_rgb[] = {
 #ifdef X264_CSP_BGR
+    AV_PIX_FMT_BGR0,
     AV_PIX_FMT_BGR24,
     AV_PIX_FMT_RGB24,
 #endif