Browse code

Merge commit 'b843b343d8a3210ae37a2342b1904a5bd1e5fc6e'

* commit 'b843b343d8a3210ae37a2342b1904a5bd1e5fc6e':
qsvenc: cavlc option is only available for h264

Merged-by: James Almer <jamrial@gmail.com>

James Almer authored on 2017/11/30 09:04:33
Showing 3 changed files
... ...
@@ -532,14 +532,6 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
532 532
     if (avctx->codec_id != AV_CODEC_ID_HEVC) {
533 533
         q->extco.Header.BufferId      = MFX_EXTBUFF_CODING_OPTION;
534 534
         q->extco.Header.BufferSz      = sizeof(q->extco);
535
-#if FF_API_CODER_TYPE
536
-FF_DISABLE_DEPRECATION_WARNINGS
537
-        if (avctx->coder_type != 0)
538
-            q->cavlc = avctx->coder_type == FF_CODER_TYPE_VLC;
539
-FF_ENABLE_DEPRECATION_WARNINGS
540
-#endif
541
-        q->extco.CAVLC = q->cavlc ? MFX_CODINGOPTION_ON
542
-                                  : MFX_CODINGOPTION_UNKNOWN;
543 535
 
544 536
         q->extco.PicTimingSEI         = q->pic_timing_sei ?
545 537
                                         MFX_CODINGOPTION_ON : MFX_CODINGOPTION_UNKNOWN;
... ...
@@ -548,6 +540,15 @@ FF_ENABLE_DEPRECATION_WARNINGS
548 548
             q->extco.RateDistortionOpt = q->rdo > 0 ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF;
549 549
 
550 550
         if (avctx->codec_id == AV_CODEC_ID_H264) {
551
+#if FF_API_CODER_TYPE
552
+FF_DISABLE_DEPRECATION_WARNINGS
553
+            if (avctx->coder_type >= 0)
554
+                q->cavlc = avctx->coder_type == FF_CODER_TYPE_VLC;
555
+FF_ENABLE_DEPRECATION_WARNINGS
556
+#endif
557
+            q->extco.CAVLC = q->cavlc ? MFX_CODINGOPTION_ON
558
+                                      : MFX_CODINGOPTION_UNKNOWN;
559
+
551 560
             if (avctx->strict_std_compliance != FF_COMPLIANCE_NORMAL)
552 561
                 q->extco.NalHrdConformance = avctx->strict_std_compliance > FF_COMPLIANCE_NORMAL ?
553 562
                                              MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF;
... ...
@@ -70,7 +70,6 @@
70 70
 { "adaptive_i",     "Adaptive I-frame placement",             OFFSET(qsv.adaptive_i),     AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE },                         \
71 71
 { "adaptive_b",     "Adaptive B-frame placement",             OFFSET(qsv.adaptive_b),     AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE },                         \
72 72
 { "b_strategy",     "Strategy to choose between I/P/B-frames", OFFSET(qsv.b_strategy),    AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE },                         \
73
-{ "cavlc",          "Enable CAVLC",                           OFFSET(qsv.cavlc),          AV_OPT_TYPE_INT, { .i64 = 0 },   0,          1, VE },                         \
74 73
 
75 74
 typedef int SetEncodeCtrlCB (AVCodecContext *avctx,
76 75
                              const AVFrame *frame, mfxEncodeCtrl* enc_ctrl);
... ...
@@ -102,6 +102,7 @@ static av_cold int qsv_enc_close(AVCodecContext *avctx)
102 102
 static const AVOption options[] = {
103 103
     QSV_COMMON_OPTS
104 104
 
105
+    { "cavlc",          "Enable CAVLC",                           OFFSET(qsv.cavlc),          AV_OPT_TYPE_INT, { .i64 = 0 },   0,          1, VE },
105 106
     { "idr_interval", "Distance (in I-frames) between IDR frames", OFFSET(qsv.idr_interval), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE },
106 107
     { "pic_timing_sei",    "Insert picture timing SEI with pic_struct_syntax element", OFFSET(qsv.pic_timing_sei), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, VE },
107 108
     { "single_sei_nal_unit",    "Put all the SEI messages into one NALU",        OFFSET(qsv.single_sei_nal_unit),     AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE },
... ...
@@ -154,7 +155,9 @@ static const AVCodecDefault qsv_enc_defaults[] = {
154 154
     // same as the x264 default
155 155
     { "g",         "250"   },
156 156
     { "bf",        "3"     },
157
-    { "coder",     "ac"    },
157
+#if FF_API_CODER_TYPE
158
+    { "coder",     "-1"    },
159
+#endif
158 160
 
159 161
     { "flags",     "+cgop" },
160 162
 #if FF_API_PRIVATE_OPT