#include "libavutil/bswap.h"
#include "libavutil/crc.h"
#include "libavutil/dict.h"
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "libavutil/avassert.h"
#include "libavcodec/mpegvideo.h"
#include "avformat.h"
#include "internal.h"
#include "mpegts.h"
#include "adts.h"
Go to the source code of this file.
#define DEFAULT_PES_HEADER_FREQ 16 |
Definition at line 84 of file mpegtsenc.c.
#define DEFAULT_PES_PAYLOAD_SIZE ((DEFAULT_PES_HEADER_FREQ - 1) * 184 + 170) |
Definition at line 85 of file mpegtsenc.c.
#define DEFAULT_PROVIDER_NAME "FFmpeg" |
Definition at line 200 of file mpegtsenc.c.
Referenced by mpegts_write_header().
#define DEFAULT_SERVICE_NAME "Service01" |
Definition at line 201 of file mpegtsenc.c.
Referenced by mpegts_write_header().
#define PAT_RETRANS_TIME 100 |
Definition at line 205 of file mpegtsenc.c.
Referenced by mpegts_write_header().
#define PCR_RETRANS_TIME 20 |
Definition at line 206 of file mpegtsenc.c.
Referenced by mpegts_write_header().
#define PCR_TIME_BASE 27000000 |
Definition at line 34 of file mpegtsenc.c.
Referenced by get_pcr(), and mpegts_write_header().
#define SDT_RETRANS_TIME 500 |
Definition at line 204 of file mpegtsenc.c.
Referenced by mpegts_write_header().
typedef struct MpegTSSection MpegTSSection |
typedef struct MpegTSService MpegTSService |
typedef struct MpegTSWrite MpegTSWrite |
typedef struct MpegTSWriteStream MpegTSWriteStream |
Definition at line 763 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
static int64_t get_pcr | ( | const MpegTSWrite * | ts, |
AVIOContext * | pb | ||
) | [static] |
Definition at line 452 of file mpegtsenc.c.
Referenced by mpegts_insert_pcr_only(), mpegts_prefix_m2ts_header(), and mpegts_write_pes().
static uint8_t* get_ts_payload_start | ( | uint8_t * | pkt | ) | [static] |
Definition at line 771 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
static MpegTSService* mpegts_add_service | ( | MpegTSWrite * | ts, |
int | sid, | ||
const char * | provider_name, | ||
const char * | name | ||
) | [static] |
Definition at line 433 of file mpegtsenc.c.
Referenced by mpegts_write_header().
static void mpegts_insert_null_packet | ( | AVFormatContext * | s | ) | [static] |
Definition at line 691 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
static void mpegts_insert_pcr_only | ( | AVFormatContext * | s, |
AVStream * | st | ||
) | [static] |
Definition at line 707 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
static void mpegts_prefix_m2ts_header | ( | AVFormatContext * | s | ) | [static] |
Definition at line 458 of file mpegtsenc.c.
Referenced by mpegts_insert_null_packet(), mpegts_insert_pcr_only(), mpegts_write_pes(), and section_write_packet().
static int mpegts_write_end | ( | AVFormatContext * | s | ) | [static] |
Definition at line 1082 of file mpegtsenc.c.
static int mpegts_write_header | ( | AVFormatContext * | s | ) | [static] |
Definition at line 477 of file mpegtsenc.c.
static int mpegts_write_packet | ( | AVFormatContext * | s, |
AVPacket * | pkt | ||
) | [static] |
Definition at line 971 of file mpegtsenc.c.
static void mpegts_write_pat | ( | AVFormatContext * | s | ) | [static] |
Definition at line 221 of file mpegtsenc.c.
Referenced by retransmit_si_info().
static void mpegts_write_pes | ( | AVFormatContext * | s, |
AVStream * | st, | ||
const uint8_t * | payload, | ||
int | payload_size, | ||
int64_t | pts, | ||
int64_t | dts, | ||
int | key | ||
) | [static] |
Definition at line 784 of file mpegtsenc.c.
Referenced by mpegts_write_end(), and mpegts_write_packet().
static void mpegts_write_pmt | ( | AVFormatContext * | s, |
MpegTSService * | service | ||
) | [static] |
Definition at line 238 of file mpegtsenc.c.
Referenced by retransmit_si_info().
static void mpegts_write_sdt | ( | AVFormatContext * | s | ) | [static] |
Definition at line 395 of file mpegtsenc.c.
Referenced by retransmit_si_info().
static void mpegts_write_section | ( | MpegTSSection * | s, |
uint8_t * | buf, | ||
int | len | ||
) | [static] |
Definition at line 115 of file mpegtsenc.c.
Referenced by mpegts_write_section1().
static int mpegts_write_section1 | ( | MpegTSSection * | s, |
int | tid, | ||
int | id, | ||
int | version, | ||
int | sec_num, | ||
int | last_sec_num, | ||
uint8_t * | buf, | ||
int | len | ||
) | [static] |
Definition at line 170 of file mpegtsenc.c.
Referenced by mpegts_write_pat(), mpegts_write_pmt(), and mpegts_write_sdt().
Definition at line 161 of file mpegtsenc.c.
Referenced by mpegts_write_pat(), mpegts_write_pmt(), mpegts_write_sdt(), and mpegts_write_section1().
Definition at line 379 of file mpegtsenc.c.
Referenced by mpegts_write_sdt().
static void retransmit_si_info | ( | AVFormatContext * | s | ) | [static] |
Definition at line 658 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
static void section_write_packet | ( | MpegTSSection * | s, |
const uint8_t * | packet | ||
) | [static] |
Definition at line 470 of file mpegtsenc.c.
Referenced by mpegts_write_header().
static void set_af_flag | ( | uint8_t * | pkt, |
int | flag | ||
) | [static] |
Definition at line 747 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
static int write_pcr_bits | ( | uint8_t * | buf, |
int64_t | pcr | ||
) | [static] |
Definition at line 676 of file mpegtsenc.c.
Referenced by mpegts_insert_pcr_only(), and mpegts_write_pes().
Definition at line 732 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
{ .name = "mpegts", .long_name = NULL_IF_CONFIG_SMALL("MPEG-2 transport stream format"), .mime_type = "video/x-mpegts", .extensions = "ts,m2t,m2ts,mts", .priv_data_size = sizeof(MpegTSWrite), .audio_codec = CODEC_ID_MP2, .video_codec = CODEC_ID_MPEG2VIDEO, .write_header = mpegts_write_header, .write_packet = mpegts_write_packet, .write_trailer = mpegts_write_end, .priv_class = &mpegts_muxer_class, }
Definition at line 1115 of file mpegtsenc.c.
const AVClass mpegts_muxer_class [static] |
{ .class_name = "MPEGTS muxer", .item_name = av_default_item_name, .option = options, .version = LIBAVUTIL_VERSION_INT, }
Definition at line 107 of file mpegtsenc.c.
{ { "mpegts_transport_stream_id", "Set transport_stream_id field.", 0x42, AV_OPT_TYPE_INT, {.dbl = 0x0001 }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM}, { "mpegts_original_network_id", "Set original_network_id field.", 0x42, AV_OPT_TYPE_INT, {.dbl = 0x0001 }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM}, { "mpegts_service_id", "Set service_id field.", 0x42, AV_OPT_TYPE_INT, {.dbl = 0x0001 }, 0x0001, 0xffff, AV_OPT_FLAG_ENCODING_PARAM}, { "mpegts_pmt_start_pid", "Set the first pid of the PMT.", 0x42, AV_OPT_TYPE_INT, {.dbl = 0x1000 }, 0x0010, 0x1f00, AV_OPT_FLAG_ENCODING_PARAM}, { "mpegts_start_pid", "Set the first pid.", 0x42, AV_OPT_TYPE_INT, {.dbl = 0x0100 }, 0x0100, 0x0f00, AV_OPT_FLAG_ENCODING_PARAM}, {"mpegts_m2ts_mode", "Enable m2ts mode.", 0x42, AV_OPT_TYPE_INT, {.dbl = -1 }, -1,1, AV_OPT_FLAG_ENCODING_PARAM}, { "muxrate", NULL, 0x42, AV_OPT_TYPE_INT, {1}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM}, { "pes_payload_size", "Minimum PES packet payload in bytes", 0x42, AV_OPT_TYPE_INT, {DEFAULT_PES_PAYLOAD_SIZE}, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM}, { NULL }, }
Definition at line 87 of file mpegtsenc.c.