Merge commit 'f121dbd9f76031d7f6d56261be2f14937a19d2dd'
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 10 Jun 2014 21:43:52 +0000 (23:43 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 10 Jun 2014 21:55:57 +0000 (23:55 +0200)
* commit 'f121dbd9f76031d7f6d56261be2f14937a19d2dd':
  mpegts: Provide an option to override the pcr period

Conflicts:
doc/muxers.texi
libavformat/mpegtsenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
doc/muxers.texi
libavformat/mpegtsenc.c

diff --cc doc/muxers.texi
@@@ -634,46 -403,20 +634,49 @@@ Set the service_id (default 0x0001) als
  Set the first PID for PMT (default 0x1000, max 0x1f00).
  @item -mpegts_start_pid @var{number}
  Set the first PID for data packets (default 0x0100, max 0x0f00).
 +@item -mpegts_m2ts_mode @var{number}
 +Enable m2ts mode if set to 1. Default value is -1 which disables m2ts mode.
  @item -muxrate @var{number}
  Set a constant muxrate (default VBR).
+ @item -pcr_period @var{numer}
+ Override the default PCR retransmission time (default 20ms), ignored
+ if variable muxrate is selected.
 +@item -pes_payload_size @var{number}
 +Set minimum PES packet payload in bytes.
 +@item -mpegts_flags @var{flags}
 +Set flags (see below).
 +@item -mpegts_copyts @var{number}
 +Preserve original timestamps, if value is set to 1. Default value is -1, which
 +results in shifting timestamps so that they start from 0.
 +@item -tables_version @var{number}
 +Set PAT, PMT and SDT version (default 0, valid values are from 0 to 31, inclusively).
 +This option allows updating stream structure so that standard consumer may
 +detect the change. To do so, reopen output AVFormatContext (in case of API
 +usage) or restart ffmpeg instance, cyclically changing tables_version value:
 +@example
 +ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
 +ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
 +...
 +ffmpeg -i source3.ts -codec copy -f mpegts -tables_version 31 udp://1.1.1.1:1111
 +ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
 +ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
 +...
 +@end example
  @end table
  
 -The recognized metadata settings in mpegts muxer are @code{service_provider}
 -and @code{service_name}. If they are not set the default for
 -@code{service_provider} is "Libav" and the default for
 -@code{service_name} is "Service01".
 +Option mpegts_flags may take a set of such flags:
 +
 +@table @option
 +@item resend_headers
 +Reemit PAT/PMT before writing the next packet.
 +@item latm
 +Use LATM packetization for AAC.
 +@end table
 +
 +@subsection Example
  
  @example
 -avconv -i file.mpg -c copy \
 +ffmpeg -i file.mpg -c copy \
       -mpegts_original_network_id 0x1122 \
       -mpegts_transport_stream_id 0x3344 \
       -mpegts_service_id 0x5566 \
@@@ -1374,12 -1155,8 +1375,14 @@@ static const AVOption options[] = 
      // backward compatibility
      { "resend_headers", "Reemit PAT/PMT before writing the next packet",
        offsetof(MpegTSWrite, reemit_pat_pmt), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
 +    { "mpegts_copyts", "don't offset dts/pts",
 +      offsetof(MpegTSWrite, copyts), AV_OPT_TYPE_INT, {.i64=-1}, -1, 1, AV_OPT_FLAG_ENCODING_PARAM},
 +    { "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},
 +    { "omit_video_pes_length", "Omit the PES packet length for video packets",
 +      offsetof(MpegTSWrite, omit_video_pes_length), AV_OPT_TYPE_INT, {.i64=1}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM},
+     { "pcr_period", "PCR retransmission time",
+       offsetof(MpegTSWrite, pcr_period), AV_OPT_TYPE_INT, { .i64 = PCR_RETRANS_TIME }, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
      { NULL },
  };