diff mbox series

[FFmpeg-devel,1/2] avformat/mpegtsenc: simplify code by using OFFSET() and ENC macros

Message ID 1589985074-25815-1-git-send-email-lance.lmwang@gmail.com
State Accepted
Commit f1035b99fa1f3165a215cf9293948d63ce02af40
Headers show
Series [FFmpeg-devel,1/2] avformat/mpegtsenc: simplify code by using OFFSET() and ENC macros | expand

Checks

Context Check Description
andriy/default pending
andriy/make success Make finished
andriy/make_fate success Make fate finished

Commit Message

Lance Wang May 20, 2020, 2:31 p.m. UTC
From: Limin Wang <lance.lmwang@gmail.com>

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
---
 libavformat/mpegtsenc.c | 92 +++++++++++++++++++++++++------------------------
 1 file changed, 47 insertions(+), 45 deletions(-)

Comments

Lance Wang May 27, 2020, 1:25 a.m. UTC | #1
On Wed, May 20, 2020 at 10:31:13PM +0800, lance.lmwang@gmail.com wrote:
> From: Limin Wang <lance.lmwang@gmail.com>
> 
> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
> ---
>  libavformat/mpegtsenc.c | 92 +++++++++++++++++++++++++------------------------
>  1 file changed, 47 insertions(+), 45 deletions(-)
> 
> diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
> index bf1a7ee..9909d25 100644
> --- a/libavformat/mpegtsenc.c
> +++ b/libavformat/mpegtsenc.c
> @@ -1962,94 +1962,96 @@ static int mpegts_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt
>      return ret;
>  }
>  
> +#define OFFSET(x) offsetof(MpegTSWrite, x)
> +#define ENC AV_OPT_FLAG_ENCODING_PARAM
>  static const AVOption options[] = {
>      { "mpegts_transport_stream_id", "Set transport_stream_id field.",
> -      offsetof(MpegTSWrite, transport_stream_id), AV_OPT_TYPE_INT,
> -      { .i64 = 0x0001 }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(transport_stream_id), AV_OPT_TYPE_INT,
> +      { .i64 = 0x0001 }, 0x0001, 0xffff, ENC },
>      { "mpegts_original_network_id", "Set original_network_id field.",
> -      offsetof(MpegTSWrite, original_network_id), AV_OPT_TYPE_INT,
> -      { .i64 = DVB_PRIVATE_NETWORK_START }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(original_network_id), AV_OPT_TYPE_INT,
> +      { .i64 = DVB_PRIVATE_NETWORK_START }, 0x0001, 0xffff, ENC },
>      { "mpegts_service_id", "Set service_id field.",
> -      offsetof(MpegTSWrite, service_id), AV_OPT_TYPE_INT,
> -      { .i64 = 0x0001 }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(service_id), AV_OPT_TYPE_INT,
> +      { .i64 = 0x0001 }, 0x0001, 0xffff, ENC },
>      { "mpegts_service_type", "Set service_type field.",
> -      offsetof(MpegTSWrite, service_type), AV_OPT_TYPE_INT,
> -      { .i64 = 0x01 }, 0x01, 0xff, AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> +      OFFSET(service_type), AV_OPT_TYPE_INT,
> +      { .i64 = 0x01 }, 0x01, 0xff, ENC, "mpegts_service_type" },
>      { "digital_tv", "Digital Television.",
>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_DIGITAL_TV }, 0x01, 0xff,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> +      ENC, "mpegts_service_type" },
>      { "digital_radio", "Digital Radio.",
>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_DIGITAL_RADIO }, 0x01, 0xff,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> +      ENC, "mpegts_service_type" },
>      { "teletext", "Teletext.",
>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_TELETEXT }, 0x01, 0xff,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> +      ENC, "mpegts_service_type" },
>      { "advanced_codec_digital_radio", "Advanced Codec Digital Radio.",
>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_RADIO }, 0x01, 0xff,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> +      ENC, "mpegts_service_type" },
>      { "mpeg2_digital_hdtv", "MPEG2 Digital HDTV.",
>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_MPEG2_DIGITAL_HDTV }, 0x01, 0xff,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> +      ENC, "mpegts_service_type" },
>      { "advanced_codec_digital_sdtv", "Advanced Codec Digital SDTV.",
>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_SDTV }, 0x01, 0xff,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> +      ENC, "mpegts_service_type" },
>      { "advanced_codec_digital_hdtv", "Advanced Codec Digital HDTV.",
>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_HDTV }, 0x01, 0xff,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> +      ENC, "mpegts_service_type" },
>      { "hevc_digital_hdtv", "HEVC Digital Television Service.",
>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_HEVC_DIGITAL_HDTV }, 0x01, 0xff,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> +      ENC, "mpegts_service_type" },
>      { "mpegts_pmt_start_pid", "Set the first pid of the PMT.",
> -      offsetof(MpegTSWrite, pmt_start_pid), AV_OPT_TYPE_INT,
> -      { .i64 = 0x1000 }, FIRST_OTHER_PID, LAST_OTHER_PID, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(pmt_start_pid), AV_OPT_TYPE_INT,
> +      { .i64 = 0x1000 }, FIRST_OTHER_PID, LAST_OTHER_PID, ENC },
>      { "mpegts_start_pid", "Set the first pid.",
> -      offsetof(MpegTSWrite, start_pid), AV_OPT_TYPE_INT,
> -      { .i64 = 0x0100 }, FIRST_OTHER_PID, LAST_OTHER_PID, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(start_pid), AV_OPT_TYPE_INT,
> +      { .i64 = 0x0100 }, FIRST_OTHER_PID, LAST_OTHER_PID, ENC },
>      { "mpegts_m2ts_mode", "Enable m2ts mode.",
> -      offsetof(MpegTSWrite, m2ts_mode), AV_OPT_TYPE_BOOL,
> -      { .i64 = -1 }, -1, 1, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(m2ts_mode), AV_OPT_TYPE_BOOL,
> +      { .i64 = -1 }, -1, 1, ENC },
>      { "muxrate", NULL,
> -      offsetof(MpegTSWrite, mux_rate), AV_OPT_TYPE_INT,
> -      { .i64 = 1 }, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(mux_rate), AV_OPT_TYPE_INT,
> +      { .i64 = 1 }, 0, INT_MAX, ENC },
>      { "pes_payload_size", "Minimum PES packet payload in bytes",
> -      offsetof(MpegTSWrite, pes_payload_size), AV_OPT_TYPE_INT,
> -      { .i64 = DEFAULT_PES_PAYLOAD_SIZE }, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(pes_payload_size), AV_OPT_TYPE_INT,
> +      { .i64 = DEFAULT_PES_PAYLOAD_SIZE }, 0, INT_MAX, ENC },
>      { "mpegts_flags", "MPEG-TS muxing flags",
> -      offsetof(MpegTSWrite, flags), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, 0, INT_MAX,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
> +      OFFSET(flags), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, 0, INT_MAX,
> +      ENC, "mpegts_flags" },
>      { "resend_headers", "Reemit PAT/PMT before writing the next packet",
>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_REEMIT_PAT_PMT }, 0, INT_MAX,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
> +      ENC, "mpegts_flags" },
>      { "latm", "Use LATM packetization for AAC",
>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_AAC_LATM }, 0, INT_MAX,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
> +      ENC, "mpegts_flags" },
>      { "pat_pmt_at_frames", "Reemit PAT and PMT at each video frame",
>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_PAT_PMT_AT_FRAMES}, 0, INT_MAX,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
> +      ENC, "mpegts_flags" },
>      { "system_b", "Conform to System B (DVB) instead of System A (ATSC)",
>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_SYSTEM_B }, 0, INT_MAX,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
> +      ENC, "mpegts_flags" },
>      { "initial_discontinuity", "Mark initial packets as discontinuous",
>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_DISCONT }, 0, INT_MAX,
> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
> +      ENC, "mpegts_flags" },
>      { "mpegts_copyts", "don't offset dts/pts",
> -      offsetof(MpegTSWrite, copyts), AV_OPT_TYPE_BOOL,
> -      { .i64 = -1 }, -1, 1, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(copyts), AV_OPT_TYPE_BOOL,
> +      { .i64 = -1 }, -1, 1, ENC },
>      { "tables_version", "set PAT, PMT and SDT version",
> -      offsetof(MpegTSWrite, tables_version), AV_OPT_TYPE_INT,
> -      { .i64 = 0 }, 0, 31, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(tables_version), AV_OPT_TYPE_INT,
> +      { .i64 = 0 }, 0, 31, ENC },
>      { "omit_video_pes_length", "Omit the PES packet length for video packets",
> -      offsetof(MpegTSWrite, omit_video_pes_length), AV_OPT_TYPE_BOOL,
> -      { .i64 = 1 }, 0, 1, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(omit_video_pes_length), AV_OPT_TYPE_BOOL,
> +      { .i64 = 1 }, 0, 1, ENC },
>      { "pcr_period", "PCR retransmission time in milliseconds",
> -      offsetof(MpegTSWrite, pcr_period_ms), AV_OPT_TYPE_INT,
> -      { .i64 = -1 }, -1, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(pcr_period_ms), AV_OPT_TYPE_INT,
> +      { .i64 = -1 }, -1, INT_MAX, ENC },
>      { "pat_period", "PAT/PMT retransmission time limit in seconds",
> -      offsetof(MpegTSWrite, pat_period_us), AV_OPT_TYPE_DURATION,
> -      { .i64 = PAT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(pat_period_us), AV_OPT_TYPE_DURATION,
> +      { .i64 = PAT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, ENC },
>      { "sdt_period", "SDT retransmission time limit in seconds",
> -      offsetof(MpegTSWrite, sdt_period_us), AV_OPT_TYPE_DURATION,
> -      { .i64 = SDT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, AV_OPT_FLAG_ENCODING_PARAM },
> +      OFFSET(sdt_period_us), AV_OPT_TYPE_DURATION,
> +      { .i64 = SDT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, ENC },
>      { NULL },
>  };
>  
> -- 
> 1.8.3.1
> 

ping, it's cosmetic change, if nobody comments, I'll apply it tomorrow.
Marton Balint May 27, 2020, 7:06 a.m. UTC | #2
On Wed, 27 May 2020, lance.lmwang@gmail.com wrote:

> On Wed, May 20, 2020 at 10:31:13PM +0800, lance.lmwang@gmail.com wrote:
>> From: Limin Wang <lance.lmwang@gmail.com>
>> 
>> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
>> ---
>>  libavformat/mpegtsenc.c | 92 +++++++++++++++++++++++++------------------------
>>  1 file changed, 47 insertions(+), 45 deletions(-)
>> 
>> diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
>> index bf1a7ee..9909d25 100644
>> --- a/libavformat/mpegtsenc.c
>> +++ b/libavformat/mpegtsenc.c
>> @@ -1962,94 +1962,96 @@ static int mpegts_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt
>>      return ret;
>>  }
>> 
>> +#define OFFSET(x) offsetof(MpegTSWrite, x)
>> +#define ENC AV_OPT_FLAG_ENCODING_PARAM
>>  static const AVOption options[] = {
>>      { "mpegts_transport_stream_id", "Set transport_stream_id field.",
>> -      offsetof(MpegTSWrite, transport_stream_id), AV_OPT_TYPE_INT,
>> -      { .i64 = 0x0001 }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(transport_stream_id), AV_OPT_TYPE_INT,
>> +      { .i64 = 0x0001 }, 0x0001, 0xffff, ENC },
>>      { "mpegts_original_network_id", "Set original_network_id field.",
>> -      offsetof(MpegTSWrite, original_network_id), AV_OPT_TYPE_INT,
>> -      { .i64 = DVB_PRIVATE_NETWORK_START }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(original_network_id), AV_OPT_TYPE_INT,
>> +      { .i64 = DVB_PRIVATE_NETWORK_START }, 0x0001, 0xffff, ENC },
>>      { "mpegts_service_id", "Set service_id field.",
>> -      offsetof(MpegTSWrite, service_id), AV_OPT_TYPE_INT,
>> -      { .i64 = 0x0001 }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(service_id), AV_OPT_TYPE_INT,
>> +      { .i64 = 0x0001 }, 0x0001, 0xffff, ENC },
>>      { "mpegts_service_type", "Set service_type field.",
>> -      offsetof(MpegTSWrite, service_type), AV_OPT_TYPE_INT,
>> -      { .i64 = 0x01 }, 0x01, 0xff, AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
>> +      OFFSET(service_type), AV_OPT_TYPE_INT,
>> +      { .i64 = 0x01 }, 0x01, 0xff, ENC, "mpegts_service_type" },
>>      { "digital_tv", "Digital Television.",
>>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_DIGITAL_TV }, 0x01, 0xff,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
>> +      ENC, "mpegts_service_type" },
>>      { "digital_radio", "Digital Radio.",
>>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_DIGITAL_RADIO }, 0x01, 0xff,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
>> +      ENC, "mpegts_service_type" },
>>      { "teletext", "Teletext.",
>>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_TELETEXT }, 0x01, 0xff,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
>> +      ENC, "mpegts_service_type" },
>>      { "advanced_codec_digital_radio", "Advanced Codec Digital Radio.",
>>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_RADIO }, 0x01, 0xff,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
>> +      ENC, "mpegts_service_type" },
>>      { "mpeg2_digital_hdtv", "MPEG2 Digital HDTV.",
>>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_MPEG2_DIGITAL_HDTV }, 0x01, 0xff,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
>> +      ENC, "mpegts_service_type" },
>>      { "advanced_codec_digital_sdtv", "Advanced Codec Digital SDTV.",
>>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_SDTV }, 0x01, 0xff,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
>> +      ENC, "mpegts_service_type" },
>>      { "advanced_codec_digital_hdtv", "Advanced Codec Digital HDTV.",
>>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_HDTV }, 0x01, 0xff,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
>> +      ENC, "mpegts_service_type" },
>>      { "hevc_digital_hdtv", "HEVC Digital Television Service.",
>>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_HEVC_DIGITAL_HDTV }, 0x01, 0xff,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
>> +      ENC, "mpegts_service_type" },
>>      { "mpegts_pmt_start_pid", "Set the first pid of the PMT.",
>> -      offsetof(MpegTSWrite, pmt_start_pid), AV_OPT_TYPE_INT,
>> -      { .i64 = 0x1000 }, FIRST_OTHER_PID, LAST_OTHER_PID, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(pmt_start_pid), AV_OPT_TYPE_INT,
>> +      { .i64 = 0x1000 }, FIRST_OTHER_PID, LAST_OTHER_PID, ENC },
>>      { "mpegts_start_pid", "Set the first pid.",
>> -      offsetof(MpegTSWrite, start_pid), AV_OPT_TYPE_INT,
>> -      { .i64 = 0x0100 }, FIRST_OTHER_PID, LAST_OTHER_PID, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(start_pid), AV_OPT_TYPE_INT,
>> +      { .i64 = 0x0100 }, FIRST_OTHER_PID, LAST_OTHER_PID, ENC },
>>      { "mpegts_m2ts_mode", "Enable m2ts mode.",
>> -      offsetof(MpegTSWrite, m2ts_mode), AV_OPT_TYPE_BOOL,
>> -      { .i64 = -1 }, -1, 1, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(m2ts_mode), AV_OPT_TYPE_BOOL,
>> +      { .i64 = -1 }, -1, 1, ENC },
>>      { "muxrate", NULL,
>> -      offsetof(MpegTSWrite, mux_rate), AV_OPT_TYPE_INT,
>> -      { .i64 = 1 }, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(mux_rate), AV_OPT_TYPE_INT,
>> +      { .i64 = 1 }, 0, INT_MAX, ENC },
>>      { "pes_payload_size", "Minimum PES packet payload in bytes",
>> -      offsetof(MpegTSWrite, pes_payload_size), AV_OPT_TYPE_INT,
>> -      { .i64 = DEFAULT_PES_PAYLOAD_SIZE }, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(pes_payload_size), AV_OPT_TYPE_INT,
>> +      { .i64 = DEFAULT_PES_PAYLOAD_SIZE }, 0, INT_MAX, ENC },
>>      { "mpegts_flags", "MPEG-TS muxing flags",
>> -      offsetof(MpegTSWrite, flags), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, 0, INT_MAX,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
>> +      OFFSET(flags), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, 0, INT_MAX,
>> +      ENC, "mpegts_flags" },
>>      { "resend_headers", "Reemit PAT/PMT before writing the next packet",
>>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_REEMIT_PAT_PMT }, 0, INT_MAX,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
>> +      ENC, "mpegts_flags" },
>>      { "latm", "Use LATM packetization for AAC",
>>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_AAC_LATM }, 0, INT_MAX,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
>> +      ENC, "mpegts_flags" },
>>      { "pat_pmt_at_frames", "Reemit PAT and PMT at each video frame",
>>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_PAT_PMT_AT_FRAMES}, 0, INT_MAX,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
>> +      ENC, "mpegts_flags" },
>>      { "system_b", "Conform to System B (DVB) instead of System A (ATSC)",
>>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_SYSTEM_B }, 0, INT_MAX,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
>> +      ENC, "mpegts_flags" },
>>      { "initial_discontinuity", "Mark initial packets as discontinuous",
>>        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_DISCONT }, 0, INT_MAX,
>> -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
>> +      ENC, "mpegts_flags" },
>>      { "mpegts_copyts", "don't offset dts/pts",
>> -      offsetof(MpegTSWrite, copyts), AV_OPT_TYPE_BOOL,
>> -      { .i64 = -1 }, -1, 1, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(copyts), AV_OPT_TYPE_BOOL,
>> +      { .i64 = -1 }, -1, 1, ENC },
>>      { "tables_version", "set PAT, PMT and SDT version",
>> -      offsetof(MpegTSWrite, tables_version), AV_OPT_TYPE_INT,
>> -      { .i64 = 0 }, 0, 31, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(tables_version), AV_OPT_TYPE_INT,
>> +      { .i64 = 0 }, 0, 31, ENC },
>>      { "omit_video_pes_length", "Omit the PES packet length for video packets",
>> -      offsetof(MpegTSWrite, omit_video_pes_length), AV_OPT_TYPE_BOOL,
>> -      { .i64 = 1 }, 0, 1, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(omit_video_pes_length), AV_OPT_TYPE_BOOL,
>> +      { .i64 = 1 }, 0, 1, ENC },
>>      { "pcr_period", "PCR retransmission time in milliseconds",
>> -      offsetof(MpegTSWrite, pcr_period_ms), AV_OPT_TYPE_INT,
>> -      { .i64 = -1 }, -1, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(pcr_period_ms), AV_OPT_TYPE_INT,
>> +      { .i64 = -1 }, -1, INT_MAX, ENC },
>>      { "pat_period", "PAT/PMT retransmission time limit in seconds",
>> -      offsetof(MpegTSWrite, pat_period_us), AV_OPT_TYPE_DURATION,
>> -      { .i64 = PAT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(pat_period_us), AV_OPT_TYPE_DURATION,
>> +      { .i64 = PAT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, ENC },
>>      { "sdt_period", "SDT retransmission time limit in seconds",
>> -      offsetof(MpegTSWrite, sdt_period_us), AV_OPT_TYPE_DURATION,
>> -      { .i64 = SDT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, AV_OPT_FLAG_ENCODING_PARAM },
>> +      OFFSET(sdt_period_us), AV_OPT_TYPE_DURATION,
>> +      { .i64 = SDT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, ENC },
>>      { NULL },
>>  };
>> 
>> -- 
>> 1.8.3.1
>> 
>
> ping, it's cosmetic change, if nobody comments, I'll apply it tomorrow.

LGTM for the series, thanks.

Marton
Lance Wang May 27, 2020, 10:27 a.m. UTC | #3
On Wed, May 27, 2020 at 09:06:34AM +0200, Marton Balint wrote:
> 
> 
> On Wed, 27 May 2020, lance.lmwang@gmail.com wrote:
> 
> > On Wed, May 20, 2020 at 10:31:13PM +0800, lance.lmwang@gmail.com wrote:
> > > From: Limin Wang <lance.lmwang@gmail.com>
> > > 
> > > Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
> > > ---
> > >  libavformat/mpegtsenc.c | 92 +++++++++++++++++++++++++------------------------
> > >  1 file changed, 47 insertions(+), 45 deletions(-)
> > > 
> > > diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
> > > index bf1a7ee..9909d25 100644
> > > --- a/libavformat/mpegtsenc.c
> > > +++ b/libavformat/mpegtsenc.c
> > > @@ -1962,94 +1962,96 @@ static int mpegts_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt
> > >      return ret;
> > >  }
> > > 
> > > +#define OFFSET(x) offsetof(MpegTSWrite, x)
> > > +#define ENC AV_OPT_FLAG_ENCODING_PARAM
> > >  static const AVOption options[] = {
> > >      { "mpegts_transport_stream_id", "Set transport_stream_id field.",
> > > -      offsetof(MpegTSWrite, transport_stream_id), AV_OPT_TYPE_INT,
> > > -      { .i64 = 0x0001 }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(transport_stream_id), AV_OPT_TYPE_INT,
> > > +      { .i64 = 0x0001 }, 0x0001, 0xffff, ENC },
> > >      { "mpegts_original_network_id", "Set original_network_id field.",
> > > -      offsetof(MpegTSWrite, original_network_id), AV_OPT_TYPE_INT,
> > > -      { .i64 = DVB_PRIVATE_NETWORK_START }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(original_network_id), AV_OPT_TYPE_INT,
> > > +      { .i64 = DVB_PRIVATE_NETWORK_START }, 0x0001, 0xffff, ENC },
> > >      { "mpegts_service_id", "Set service_id field.",
> > > -      offsetof(MpegTSWrite, service_id), AV_OPT_TYPE_INT,
> > > -      { .i64 = 0x0001 }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(service_id), AV_OPT_TYPE_INT,
> > > +      { .i64 = 0x0001 }, 0x0001, 0xffff, ENC },
> > >      { "mpegts_service_type", "Set service_type field.",
> > > -      offsetof(MpegTSWrite, service_type), AV_OPT_TYPE_INT,
> > > -      { .i64 = 0x01 }, 0x01, 0xff, AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> > > +      OFFSET(service_type), AV_OPT_TYPE_INT,
> > > +      { .i64 = 0x01 }, 0x01, 0xff, ENC, "mpegts_service_type" },
> > >      { "digital_tv", "Digital Television.",
> > >        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_DIGITAL_TV }, 0x01, 0xff,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> > > +      ENC, "mpegts_service_type" },
> > >      { "digital_radio", "Digital Radio.",
> > >        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_DIGITAL_RADIO }, 0x01, 0xff,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> > > +      ENC, "mpegts_service_type" },
> > >      { "teletext", "Teletext.",
> > >        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_TELETEXT }, 0x01, 0xff,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> > > +      ENC, "mpegts_service_type" },
> > >      { "advanced_codec_digital_radio", "Advanced Codec Digital Radio.",
> > >        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_RADIO }, 0x01, 0xff,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> > > +      ENC, "mpegts_service_type" },
> > >      { "mpeg2_digital_hdtv", "MPEG2 Digital HDTV.",
> > >        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_MPEG2_DIGITAL_HDTV }, 0x01, 0xff,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> > > +      ENC, "mpegts_service_type" },
> > >      { "advanced_codec_digital_sdtv", "Advanced Codec Digital SDTV.",
> > >        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_SDTV }, 0x01, 0xff,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> > > +      ENC, "mpegts_service_type" },
> > >      { "advanced_codec_digital_hdtv", "Advanced Codec Digital HDTV.",
> > >        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_HDTV }, 0x01, 0xff,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> > > +      ENC, "mpegts_service_type" },
> > >      { "hevc_digital_hdtv", "HEVC Digital Television Service.",
> > >        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_HEVC_DIGITAL_HDTV }, 0x01, 0xff,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
> > > +      ENC, "mpegts_service_type" },
> > >      { "mpegts_pmt_start_pid", "Set the first pid of the PMT.",
> > > -      offsetof(MpegTSWrite, pmt_start_pid), AV_OPT_TYPE_INT,
> > > -      { .i64 = 0x1000 }, FIRST_OTHER_PID, LAST_OTHER_PID, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(pmt_start_pid), AV_OPT_TYPE_INT,
> > > +      { .i64 = 0x1000 }, FIRST_OTHER_PID, LAST_OTHER_PID, ENC },
> > >      { "mpegts_start_pid", "Set the first pid.",
> > > -      offsetof(MpegTSWrite, start_pid), AV_OPT_TYPE_INT,
> > > -      { .i64 = 0x0100 }, FIRST_OTHER_PID, LAST_OTHER_PID, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(start_pid), AV_OPT_TYPE_INT,
> > > +      { .i64 = 0x0100 }, FIRST_OTHER_PID, LAST_OTHER_PID, ENC },
> > >      { "mpegts_m2ts_mode", "Enable m2ts mode.",
> > > -      offsetof(MpegTSWrite, m2ts_mode), AV_OPT_TYPE_BOOL,
> > > -      { .i64 = -1 }, -1, 1, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(m2ts_mode), AV_OPT_TYPE_BOOL,
> > > +      { .i64 = -1 }, -1, 1, ENC },
> > >      { "muxrate", NULL,
> > > -      offsetof(MpegTSWrite, mux_rate), AV_OPT_TYPE_INT,
> > > -      { .i64 = 1 }, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(mux_rate), AV_OPT_TYPE_INT,
> > > +      { .i64 = 1 }, 0, INT_MAX, ENC },
> > >      { "pes_payload_size", "Minimum PES packet payload in bytes",
> > > -      offsetof(MpegTSWrite, pes_payload_size), AV_OPT_TYPE_INT,
> > > -      { .i64 = DEFAULT_PES_PAYLOAD_SIZE }, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(pes_payload_size), AV_OPT_TYPE_INT,
> > > +      { .i64 = DEFAULT_PES_PAYLOAD_SIZE }, 0, INT_MAX, ENC },
> > >      { "mpegts_flags", "MPEG-TS muxing flags",
> > > -      offsetof(MpegTSWrite, flags), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, 0, INT_MAX,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
> > > +      OFFSET(flags), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, 0, INT_MAX,
> > > +      ENC, "mpegts_flags" },
> > >      { "resend_headers", "Reemit PAT/PMT before writing the next packet",
> > >        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_REEMIT_PAT_PMT }, 0, INT_MAX,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
> > > +      ENC, "mpegts_flags" },
> > >      { "latm", "Use LATM packetization for AAC",
> > >        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_AAC_LATM }, 0, INT_MAX,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
> > > +      ENC, "mpegts_flags" },
> > >      { "pat_pmt_at_frames", "Reemit PAT and PMT at each video frame",
> > >        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_PAT_PMT_AT_FRAMES}, 0, INT_MAX,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
> > > +      ENC, "mpegts_flags" },
> > >      { "system_b", "Conform to System B (DVB) instead of System A (ATSC)",
> > >        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_SYSTEM_B }, 0, INT_MAX,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
> > > +      ENC, "mpegts_flags" },
> > >      { "initial_discontinuity", "Mark initial packets as discontinuous",
> > >        0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_DISCONT }, 0, INT_MAX,
> > > -      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
> > > +      ENC, "mpegts_flags" },
> > >      { "mpegts_copyts", "don't offset dts/pts",
> > > -      offsetof(MpegTSWrite, copyts), AV_OPT_TYPE_BOOL,
> > > -      { .i64 = -1 }, -1, 1, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(copyts), AV_OPT_TYPE_BOOL,
> > > +      { .i64 = -1 }, -1, 1, ENC },
> > >      { "tables_version", "set PAT, PMT and SDT version",
> > > -      offsetof(MpegTSWrite, tables_version), AV_OPT_TYPE_INT,
> > > -      { .i64 = 0 }, 0, 31, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(tables_version), AV_OPT_TYPE_INT,
> > > +      { .i64 = 0 }, 0, 31, ENC },
> > >      { "omit_video_pes_length", "Omit the PES packet length for video packets",
> > > -      offsetof(MpegTSWrite, omit_video_pes_length), AV_OPT_TYPE_BOOL,
> > > -      { .i64 = 1 }, 0, 1, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(omit_video_pes_length), AV_OPT_TYPE_BOOL,
> > > +      { .i64 = 1 }, 0, 1, ENC },
> > >      { "pcr_period", "PCR retransmission time in milliseconds",
> > > -      offsetof(MpegTSWrite, pcr_period_ms), AV_OPT_TYPE_INT,
> > > -      { .i64 = -1 }, -1, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(pcr_period_ms), AV_OPT_TYPE_INT,
> > > +      { .i64 = -1 }, -1, INT_MAX, ENC },
> > >      { "pat_period", "PAT/PMT retransmission time limit in seconds",
> > > -      offsetof(MpegTSWrite, pat_period_us), AV_OPT_TYPE_DURATION,
> > > -      { .i64 = PAT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(pat_period_us), AV_OPT_TYPE_DURATION,
> > > +      { .i64 = PAT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, ENC },
> > >      { "sdt_period", "SDT retransmission time limit in seconds",
> > > -      offsetof(MpegTSWrite, sdt_period_us), AV_OPT_TYPE_DURATION,
> > > -      { .i64 = SDT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, AV_OPT_FLAG_ENCODING_PARAM },
> > > +      OFFSET(sdt_period_us), AV_OPT_TYPE_DURATION,
> > > +      { .i64 = SDT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, ENC },
> > >      { NULL },
> > >  };
> > > 
> > > -- 
> > > 1.8.3.1
> > > 
> > 
> > ping, it's cosmetic change, if nobody comments, I'll apply it tomorrow.
> 
> LGTM for the series, thanks.

thank for review, will apply the patchset.

> 
> Marton
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff mbox series

Patch

diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index bf1a7ee..9909d25 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
@@ -1962,94 +1962,96 @@  static int mpegts_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt
     return ret;
 }
 
+#define OFFSET(x) offsetof(MpegTSWrite, x)
+#define ENC AV_OPT_FLAG_ENCODING_PARAM
 static const AVOption options[] = {
     { "mpegts_transport_stream_id", "Set transport_stream_id field.",
-      offsetof(MpegTSWrite, transport_stream_id), AV_OPT_TYPE_INT,
-      { .i64 = 0x0001 }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(transport_stream_id), AV_OPT_TYPE_INT,
+      { .i64 = 0x0001 }, 0x0001, 0xffff, ENC },
     { "mpegts_original_network_id", "Set original_network_id field.",
-      offsetof(MpegTSWrite, original_network_id), AV_OPT_TYPE_INT,
-      { .i64 = DVB_PRIVATE_NETWORK_START }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(original_network_id), AV_OPT_TYPE_INT,
+      { .i64 = DVB_PRIVATE_NETWORK_START }, 0x0001, 0xffff, ENC },
     { "mpegts_service_id", "Set service_id field.",
-      offsetof(MpegTSWrite, service_id), AV_OPT_TYPE_INT,
-      { .i64 = 0x0001 }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(service_id), AV_OPT_TYPE_INT,
+      { .i64 = 0x0001 }, 0x0001, 0xffff, ENC },
     { "mpegts_service_type", "Set service_type field.",
-      offsetof(MpegTSWrite, service_type), AV_OPT_TYPE_INT,
-      { .i64 = 0x01 }, 0x01, 0xff, AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
+      OFFSET(service_type), AV_OPT_TYPE_INT,
+      { .i64 = 0x01 }, 0x01, 0xff, ENC, "mpegts_service_type" },
     { "digital_tv", "Digital Television.",
       0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_DIGITAL_TV }, 0x01, 0xff,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
+      ENC, "mpegts_service_type" },
     { "digital_radio", "Digital Radio.",
       0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_DIGITAL_RADIO }, 0x01, 0xff,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
+      ENC, "mpegts_service_type" },
     { "teletext", "Teletext.",
       0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_TELETEXT }, 0x01, 0xff,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
+      ENC, "mpegts_service_type" },
     { "advanced_codec_digital_radio", "Advanced Codec Digital Radio.",
       0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_RADIO }, 0x01, 0xff,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
+      ENC, "mpegts_service_type" },
     { "mpeg2_digital_hdtv", "MPEG2 Digital HDTV.",
       0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_MPEG2_DIGITAL_HDTV }, 0x01, 0xff,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
+      ENC, "mpegts_service_type" },
     { "advanced_codec_digital_sdtv", "Advanced Codec Digital SDTV.",
       0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_SDTV }, 0x01, 0xff,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
+      ENC, "mpegts_service_type" },
     { "advanced_codec_digital_hdtv", "Advanced Codec Digital HDTV.",
       0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_HDTV }, 0x01, 0xff,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
+      ENC, "mpegts_service_type" },
     { "hevc_digital_hdtv", "HEVC Digital Television Service.",
       0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_SERVICE_TYPE_HEVC_DIGITAL_HDTV }, 0x01, 0xff,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_service_type" },
+      ENC, "mpegts_service_type" },
     { "mpegts_pmt_start_pid", "Set the first pid of the PMT.",
-      offsetof(MpegTSWrite, pmt_start_pid), AV_OPT_TYPE_INT,
-      { .i64 = 0x1000 }, FIRST_OTHER_PID, LAST_OTHER_PID, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(pmt_start_pid), AV_OPT_TYPE_INT,
+      { .i64 = 0x1000 }, FIRST_OTHER_PID, LAST_OTHER_PID, ENC },
     { "mpegts_start_pid", "Set the first pid.",
-      offsetof(MpegTSWrite, start_pid), AV_OPT_TYPE_INT,
-      { .i64 = 0x0100 }, FIRST_OTHER_PID, LAST_OTHER_PID, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(start_pid), AV_OPT_TYPE_INT,
+      { .i64 = 0x0100 }, FIRST_OTHER_PID, LAST_OTHER_PID, ENC },
     { "mpegts_m2ts_mode", "Enable m2ts mode.",
-      offsetof(MpegTSWrite, m2ts_mode), AV_OPT_TYPE_BOOL,
-      { .i64 = -1 }, -1, 1, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(m2ts_mode), AV_OPT_TYPE_BOOL,
+      { .i64 = -1 }, -1, 1, ENC },
     { "muxrate", NULL,
-      offsetof(MpegTSWrite, mux_rate), AV_OPT_TYPE_INT,
-      { .i64 = 1 }, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(mux_rate), AV_OPT_TYPE_INT,
+      { .i64 = 1 }, 0, INT_MAX, ENC },
     { "pes_payload_size", "Minimum PES packet payload in bytes",
-      offsetof(MpegTSWrite, pes_payload_size), AV_OPT_TYPE_INT,
-      { .i64 = DEFAULT_PES_PAYLOAD_SIZE }, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(pes_payload_size), AV_OPT_TYPE_INT,
+      { .i64 = DEFAULT_PES_PAYLOAD_SIZE }, 0, INT_MAX, ENC },
     { "mpegts_flags", "MPEG-TS muxing flags",
-      offsetof(MpegTSWrite, flags), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, 0, INT_MAX,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
+      OFFSET(flags), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, 0, INT_MAX,
+      ENC, "mpegts_flags" },
     { "resend_headers", "Reemit PAT/PMT before writing the next packet",
       0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_REEMIT_PAT_PMT }, 0, INT_MAX,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
+      ENC, "mpegts_flags" },
     { "latm", "Use LATM packetization for AAC",
       0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_AAC_LATM }, 0, INT_MAX,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
+      ENC, "mpegts_flags" },
     { "pat_pmt_at_frames", "Reemit PAT and PMT at each video frame",
       0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_PAT_PMT_AT_FRAMES}, 0, INT_MAX,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
+      ENC, "mpegts_flags" },
     { "system_b", "Conform to System B (DVB) instead of System A (ATSC)",
       0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_SYSTEM_B }, 0, INT_MAX,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
+      ENC, "mpegts_flags" },
     { "initial_discontinuity", "Mark initial packets as discontinuous",
       0, AV_OPT_TYPE_CONST, { .i64 = MPEGTS_FLAG_DISCONT }, 0, INT_MAX,
-      AV_OPT_FLAG_ENCODING_PARAM, "mpegts_flags" },
+      ENC, "mpegts_flags" },
     { "mpegts_copyts", "don't offset dts/pts",
-      offsetof(MpegTSWrite, copyts), AV_OPT_TYPE_BOOL,
-      { .i64 = -1 }, -1, 1, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(copyts), AV_OPT_TYPE_BOOL,
+      { .i64 = -1 }, -1, 1, ENC },
     { "tables_version", "set PAT, PMT and SDT version",
-      offsetof(MpegTSWrite, tables_version), AV_OPT_TYPE_INT,
-      { .i64 = 0 }, 0, 31, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(tables_version), AV_OPT_TYPE_INT,
+      { .i64 = 0 }, 0, 31, ENC },
     { "omit_video_pes_length", "Omit the PES packet length for video packets",
-      offsetof(MpegTSWrite, omit_video_pes_length), AV_OPT_TYPE_BOOL,
-      { .i64 = 1 }, 0, 1, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(omit_video_pes_length), AV_OPT_TYPE_BOOL,
+      { .i64 = 1 }, 0, 1, ENC },
     { "pcr_period", "PCR retransmission time in milliseconds",
-      offsetof(MpegTSWrite, pcr_period_ms), AV_OPT_TYPE_INT,
-      { .i64 = -1 }, -1, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(pcr_period_ms), AV_OPT_TYPE_INT,
+      { .i64 = -1 }, -1, INT_MAX, ENC },
     { "pat_period", "PAT/PMT retransmission time limit in seconds",
-      offsetof(MpegTSWrite, pat_period_us), AV_OPT_TYPE_DURATION,
-      { .i64 = PAT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(pat_period_us), AV_OPT_TYPE_DURATION,
+      { .i64 = PAT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, ENC },
     { "sdt_period", "SDT retransmission time limit in seconds",
-      offsetof(MpegTSWrite, sdt_period_us), AV_OPT_TYPE_DURATION,
-      { .i64 = SDT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, AV_OPT_FLAG_ENCODING_PARAM },
+      OFFSET(sdt_period_us), AV_OPT_TYPE_DURATION,
+      { .i64 = SDT_RETRANS_TIME * 1000LL }, 0, INT64_MAX, ENC },
     { NULL },
 };