FFmpeg
|
#include "libavutil/avassert.h"
#include "libavutil/bswap.h"
#include "libavutil/crc.h"
#include "libavutil/dict.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mathematics.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "libavcodec/ac3_parser_internal.h"
#include "libavcodec/bytestream.h"
#include "libavcodec/defs.h"
#include "libavcodec/h264.h"
#include "libavcodec/hevc/hevc.h"
#include "libavcodec/vvc.h"
#include "libavcodec/startcode.h"
#include "avformat.h"
#include "avio_internal.h"
#include "internal.h"
#include "mpegts.h"
#include "mux.h"
Go to the source code of this file.
Data Structures | |
struct | MpegTSSection |
struct | MpegTSService |
struct | MpegTSWrite |
struct | MpegTSWriteStream |
Macros | |
#define | PCR_TIME_BASE 27000000 |
#define | DVB_PRIVATE_NETWORK_START 0xff01 |
#define | MPEGTS_FLAG_REEMIT_PAT_PMT 0x01 |
#define | MPEGTS_FLAG_AAC_LATM 0x02 |
#define | MPEGTS_FLAG_PAT_PMT_AT_FRAMES 0x04 |
#define | MPEGTS_FLAG_SYSTEM_B 0x08 |
#define | MPEGTS_FLAG_DISCONT 0x10 |
#define | MPEGTS_FLAG_NIT 0x20 |
#define | MPEGTS_FLAG_OMIT_RAI 0x40 |
#define | DEFAULT_PES_HEADER_FREQ 16 |
#define | DEFAULT_PES_PAYLOAD_SIZE ((DEFAULT_PES_HEADER_FREQ - 1) * 184 + 170) |
#define | SECTION_LENGTH 1020 |
#define | DEFAULT_PROVIDER_NAME "FFmpeg" |
#define | DEFAULT_SERVICE_NAME "Service" |
#define | SDT_RETRANS_TIME 500 |
#define | PAT_RETRANS_TIME 100 |
#define | PCR_RETRANS_TIME 20 |
#define | NIT_RETRANS_TIME 500 |
#define | H264_NAL_TYPE(state) (state & 0x1f) |
#define | HEVC_NAL_TYPE(state) ((state & 0x7e) >> 1) |
#define | VVC_NAL_TYPE(state) ((state >> 11) & 0x1f) |
#define | OFFSET(x) offsetof(MpegTSWrite, x) |
#define | ENC AV_OPT_FLAG_ENCODING_PARAM |
Enumerations | |
enum | { MPEGTS_SERVICE_TYPE_DIGITAL_TV = 0x01, MPEGTS_SERVICE_TYPE_DIGITAL_RADIO = 0x02, MPEGTS_SERVICE_TYPE_TELETEXT = 0x03, MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_RADIO = 0x0A, MPEGTS_SERVICE_TYPE_MPEG2_DIGITAL_HDTV = 0x11, MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_SDTV = 0x16, MPEGTS_SERVICE_TYPE_ADVANCED_CODEC_DIGITAL_HDTV = 0x19, MPEGTS_SERVICE_TYPE_HEVC_DIGITAL_HDTV = 0x1F } |
Functions | |
static void | mpegts_write_section (MpegTSSection *s, uint8_t *buf, int len) |
static void | put16 (uint8_t **q_ptr, int val) |
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 void | mpegts_write_pat (AVFormatContext *s) |
static void | putbuf (uint8_t **q_ptr, const uint8_t *buf, size_t len) |
static int | put_arib_caption_descriptor (AVFormatContext *s, uint8_t **q_ptr, AVCodecParameters *codecpar) |
static void | put_registration_descriptor (uint8_t **q_ptr, uint32_t tag) |
static int | get_dvb_stream_type (AVFormatContext *s, AVStream *st) |
static int | get_m2ts_stream_type (AVFormatContext *s, AVStream *st) |
static int | mpegts_write_pmt (AVFormatContext *s, MpegTSService *service) |
static void | mpegts_write_sdt (AVFormatContext *s) |
static void | mpegts_write_nit (AVFormatContext *s) |
static int | encode_str8 (uint8_t *buf, const char *str) |
static int64_t | get_pcr (const MpegTSWrite *ts) |
static void | write_packet (AVFormatContext *s, const uint8_t *packet) |
static void | section_write_packet (MpegTSSection *s, const uint8_t *packet) |
static MpegTSService * | mpegts_add_service (AVFormatContext *s, int sid, const AVDictionary *metadata, AVProgram *program) |
static void | enable_pcr_generation_for_stream (AVFormatContext *s, AVStream *pcr_st) |
static void | select_pcr_streams (AVFormatContext *s) |
static int | mpegts_init (AVFormatContext *s) |
static void | retransmit_si_info (AVFormatContext *s, int force_pat, int force_sdt, int force_nit, int64_t pcr) |
static int | write_pcr_bits (uint8_t *buf, int64_t pcr) |
static void | mpegts_insert_null_packet (AVFormatContext *s) |
static void | mpegts_insert_pcr_only (AVFormatContext *s, AVStream *st) |
static void | write_pts (uint8_t *q, int fourbits, int64_t pts) |
static void | set_af_flag (uint8_t *pkt, int flag) |
static void | extend_af (uint8_t *pkt, int size) |
static uint8_t * | get_ts_payload_start (uint8_t *pkt) |
static int | get_pes_stream_id (AVFormatContext *s, AVStream *st, int stream_id, int *async) |
static void | mpegts_write_pes (AVFormatContext *s, AVStream *st, const uint8_t *payload, int payload_size, int64_t pts, int64_t dts, int key, int stream_id) |
static int | check_h26x_startcode (AVFormatContext *s, const AVStream *st, const AVPacket *pkt, const char *codec) |
int | ff_check_h264_startcode (AVFormatContext *s, const AVStream *st, const AVPacket *pkt) |
Check presence of H264 startcode. More... | |
static int | opus_get_packet_samples (AVFormatContext *s, AVPacket *pkt) |
static uint8_t * | h26x_prefix_aud (const uint8_t *aud, const int aud_size, const uint8_t *extra_data, const int extra_size, AVPacket *pkt, int *size) |
static int | mpegts_write_packet_internal (AVFormatContext *s, AVPacket *pkt) |
static void | mpegts_write_flush (AVFormatContext *s) |
static int | mpegts_write_packet (AVFormatContext *s, AVPacket *pkt) |
static int | mpegts_write_end (AVFormatContext *s) |
static void | mpegts_deinit (AVFormatContext *s) |
static int | mpegts_check_bitstream (AVFormatContext *s, AVStream *st, const AVPacket *pkt) |
Variables | |
static const AVOption | options [] |
static const AVClass | mpegts_muxer_class |
const FFOutputFormat | ff_mpegts_muxer |
#define PCR_TIME_BASE 27000000 |
Definition at line 45 of file mpegtsenc.c.
#define DVB_PRIVATE_NETWORK_START 0xff01 |
Definition at line 49 of file mpegtsenc.c.
#define MPEGTS_FLAG_REEMIT_PAT_PMT 0x01 |
Definition at line 114 of file mpegtsenc.c.
#define MPEGTS_FLAG_AAC_LATM 0x02 |
Definition at line 115 of file mpegtsenc.c.
#define MPEGTS_FLAG_PAT_PMT_AT_FRAMES 0x04 |
Definition at line 116 of file mpegtsenc.c.
#define MPEGTS_FLAG_SYSTEM_B 0x08 |
Definition at line 117 of file mpegtsenc.c.
#define MPEGTS_FLAG_DISCONT 0x10 |
Definition at line 118 of file mpegtsenc.c.
#define MPEGTS_FLAG_NIT 0x20 |
Definition at line 119 of file mpegtsenc.c.
#define MPEGTS_FLAG_OMIT_RAI 0x40 |
Definition at line 120 of file mpegtsenc.c.
#define DEFAULT_PES_HEADER_FREQ 16 |
Definition at line 137 of file mpegtsenc.c.
#define DEFAULT_PES_PAYLOAD_SIZE ((DEFAULT_PES_HEADER_FREQ - 1) * 184 + 170) |
Definition at line 138 of file mpegtsenc.c.
#define SECTION_LENGTH 1020 |
Definition at line 142 of file mpegtsenc.c.
#define DEFAULT_PROVIDER_NAME "FFmpeg" |
Definition at line 238 of file mpegtsenc.c.
#define DEFAULT_SERVICE_NAME "Service" |
Definition at line 239 of file mpegtsenc.c.
#define SDT_RETRANS_TIME 500 |
Definition at line 242 of file mpegtsenc.c.
#define PAT_RETRANS_TIME 100 |
Definition at line 243 of file mpegtsenc.c.
#define PCR_RETRANS_TIME 20 |
Definition at line 244 of file mpegtsenc.c.
#define NIT_RETRANS_TIME 500 |
Definition at line 245 of file mpegtsenc.c.
Definition at line 1857 of file mpegtsenc.c.
Definition at line 1858 of file mpegtsenc.c.
Definition at line 1859 of file mpegtsenc.c.
#define OFFSET | ( | x | ) | offsetof(MpegTSWrite, x) |
Definition at line 2329 of file mpegtsenc.c.
#define ENC AV_OPT_FLAG_ENCODING_PARAM |
Definition at line 2330 of file mpegtsenc.c.
anonymous enum |
Definition at line 72 of file mpegtsenc.c.
|
static |
Definition at line 145 of file mpegtsenc.c.
Referenced by mpegts_write_section1().
|
inlinestatic |
Definition at line 199 of file mpegtsenc.c.
Referenced by mpegts_write_nit(), mpegts_write_pat(), mpegts_write_pmt(), mpegts_write_sdt(), mpegts_write_section1(), and put_arib_caption_descriptor().
|
static |
Definition at line 208 of file mpegtsenc.c.
Referenced by mpegts_write_nit(), mpegts_write_pat(), mpegts_write_pmt(), and mpegts_write_sdt().
|
static |
Definition at line 271 of file mpegtsenc.c.
Referenced by retransmit_si_info().
|
static |
Definition at line 292 of file mpegtsenc.c.
Referenced by mpegts_write_nit(), mpegts_write_pmt(), and mpegts_write_sdt().
|
static |
Definition at line 298 of file mpegtsenc.c.
Referenced by mpegts_write_pmt().
|
static |
Definition at line 342 of file mpegtsenc.c.
Referenced by mpegts_write_pmt().
|
static |
Definition at line 354 of file mpegtsenc.c.
Referenced by mpegts_write_pmt().
|
static |
Definition at line 458 of file mpegtsenc.c.
Referenced by mpegts_write_pmt().
|
static |
Definition at line 509 of file mpegtsenc.c.
Referenced by retransmit_si_info().
|
static |
Definition at line 848 of file mpegtsenc.c.
Referenced by retransmit_si_info().
|
static |
Definition at line 886 of file mpegtsenc.c.
Referenced by retransmit_si_info().
|
static |
Definition at line 931 of file mpegtsenc.c.
Referenced by mpegts_add_service(), and mpegts_init().
|
static |
Definition at line 963 of file mpegtsenc.c.
Referenced by mpegts_insert_pcr_only(), mpegts_write_pes(), and write_packet().
|
static |
Definition at line 969 of file mpegtsenc.c.
Referenced by mpegts_insert_null_packet(), mpegts_insert_pcr_only(), mpegts_write_pes(), and section_write_packet().
|
static |
Definition at line 983 of file mpegtsenc.c.
Referenced by mpegts_add_service(), and mpegts_init().
|
static |
Definition at line 989 of file mpegtsenc.c.
Referenced by mpegts_init().
|
static |
Definition at line 1034 of file mpegtsenc.c.
Referenced by select_pcr_streams().
|
static |
Definition at line 1065 of file mpegtsenc.c.
Referenced by mpegts_init().
|
static |
Definition at line 1094 of file mpegtsenc.c.
|
static |
Definition at line 1309 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
|
static |
Definition at line 1342 of file mpegtsenc.c.
Referenced by mpegts_insert_pcr_only(), and mpegts_write_pes().
|
static |
Definition at line 1357 of file mpegtsenc.c.
Referenced by mpegts_write_flush(), and mpegts_write_pes().
|
static |
Definition at line 1372 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
|
static |
Definition at line 1400 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
|
static |
Definition at line 1415 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
|
static |
Definition at line 1431 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
|
static |
Definition at line 1439 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
|
static |
Definition at line 1447 of file mpegtsenc.c.
Referenced by mpegts_write_pes().
|
static |
Definition at line 1482 of file mpegtsenc.c.
Referenced by mpegts_write_flush(), and mpegts_write_packet_internal().
|
static |
Definition at line 1768 of file mpegtsenc.c.
Referenced by ff_check_h264_startcode(), and mpegts_write_packet_internal().
int ff_check_h264_startcode | ( | AVFormatContext * | s, |
const AVStream * | st, | ||
const AVPacket * | pkt | ||
) |
Check presence of H264 startcode.
Definition at line 1785 of file mpegtsenc.c.
Referenced by avi_write_packet(), mpegts_write_packet_internal(), and write_packet().
|
static |
Definition at line 1794 of file mpegtsenc.c.
Referenced by mpegts_write_packet_internal().
|
static |
Definition at line 1842 of file mpegtsenc.c.
Referenced by mpegts_write_packet_internal().
|
static |
Definition at line 1860 of file mpegtsenc.c.
Referenced by mpegts_write_packet().
|
static |
Definition at line 2234 of file mpegtsenc.c.
Referenced by mpegts_write_end(), and mpegts_write_packet().
|
static |
Definition at line 2259 of file mpegtsenc.c.
|
static |
Definition at line 2269 of file mpegtsenc.c.
|
static |
Definition at line 2277 of file mpegtsenc.c.
|
static |
Definition at line 2303 of file mpegtsenc.c.
|
static |
Definition at line 2331 of file mpegtsenc.c.
|
static |
Definition at line 2394 of file mpegtsenc.c.
const FFOutputFormat ff_mpegts_muxer |
Definition at line 2401 of file mpegtsenc.c.