|
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.
1.8.17