[FFmpeg-devel,4/4] lavc/qsvenc_h264: remove the privite option trellis

Submitted by Zhong Li on March 27, 2019, 12:51 p.m.

Details

Message ID 20190327125147.21358-4-zhong.li@intel.com
State New
Headers show

Commit Message

Zhong Li March 27, 2019, 12:51 p.m.
There are many problems of current qsv trellis option:
1. Duplicated with AVCodecContext definition
2. MFX_TRELLIS_XXX is introduced by MSDK API 1.17
   Currently Without MSDK API checking thus may cause compilation issue.
3. user is inclined to enable trellis when set "-trellis 1", but
   actually it is to disable since MFX_TRELLIS_OFF is equal to 1.
4. It is too complex for user to enable trellis for every frame(I/P/B).

Just simply remove the private option, and switch to the AVCodecContext
definition. Compatibility should not a big problem (expect can't exact map)
since the option name is same as AVCodecContext.

Signed-off-by: Zhong Li <zhong.li@intel.com>
---
 libavcodec/qsvenc.h      | 1 -
 libavcodec/qsvenc_h264.c | 6 ------
 2 files changed, 7 deletions(-)

Comments

Moritz Barsnick March 27, 2019, 2:51 p.m.
On Wed, Mar 27, 2019 at 20:51:47 +0800, Zhong Li wrote:
> Just simply remove the private option, and switch to the AVCodecContext
> definition. Compatibility should not a big problem (expect can't exact map)
> since the option name is same as AVCodecContext.

You should probably bump libavcodec's micro version if the option
mapping changes.

Moritz
Carl Eugen Hoyos March 27, 2019, 3:49 p.m.
2019-03-27 15:51 GMT+01:00, Moritz Barsnick <barsnick@gmx.net>:
> On Wed, Mar 27, 2019 at 20:51:47 +0800, Zhong Li wrote:
>> Just simply remove the private option, and switch to the AVCodecContext
>> definition. Compatibility should not a big problem (expect can't exact
>> map)
>> since the option name is same as AVCodecContext.
>
> You should probably bump libavcodec's micro version if the option
> mapping changes.

+1

Carl Eugen

Patch hide | download patch | download mbox

diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h
index 3030e4413f..6e50baa783 100644
--- a/libavcodec/qsvenc.h
+++ b/libavcodec/qsvenc.h
@@ -160,7 +160,6 @@  typedef struct QSVEncContext {
 
     int single_sei_nal_unit;
     int max_dec_frame_buffering;
-    int trellis;
 
     int bitrate_limit;
     int mbbrc;
diff --git a/libavcodec/qsvenc_h264.c b/libavcodec/qsvenc_h264.c
index 4fea69fb2c..2bf3419d27 100644
--- a/libavcodec/qsvenc_h264.c
+++ b/libavcodec/qsvenc_h264.c
@@ -132,12 +132,6 @@  static const AVOption options[] = {
     { "int_ref_qp_delta",   "QP difference for the refresh MBs",                 OFFSET(qsv.int_ref_qp_delta),        AV_OPT_TYPE_INT, { .i64 = INT16_MIN }, INT16_MIN,  INT16_MAX, VE },
     { "recovery_point_sei", "Insert recovery point SEI messages",                OFFSET(qsv.recovery_point_sei),      AV_OPT_TYPE_INT, { .i64 = -1 },               -1,          1, VE },
 
-    { "trellis",             "Trellis quantization",                             OFFSET(qsv.trellis),                 AV_OPT_TYPE_FLAGS, { .i64 = 0 }, 0, UINT_MAX, VE, "trellis" },
-        { "off", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TRELLIS_OFF }, .flags = VE, "trellis" },
-        { "I",   NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TRELLIS_I },   .flags = VE, "trellis" },
-        { "P",   NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TRELLIS_P },   .flags = VE, "trellis" },
-        { "B",   NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TRELLIS_B },   .flags = VE, "trellis" },
-
     { "profile", NULL, OFFSET(qsv.profile), AV_OPT_TYPE_INT, { .i64 = MFX_PROFILE_UNKNOWN }, 0, INT_MAX, VE, "profile" },
     { "unknown" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_PROFILE_UNKNOWN      }, INT_MIN, INT_MAX,     VE, "profile" },
     { "baseline", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_PROFILE_AVC_BASELINE }, INT_MIN, INT_MAX,     VE, "profile" },