FFmpeg
Data Structures | Macros | Functions
mpegts.h File Reference
#include "avformat.h"

Go to the source code of this file.

Data Structures

struct  SLConfigDescr
 
struct  Mp4Descr
 
struct  DVBAC3Descriptor
 

Macros

#define TS_FEC_PACKET_SIZE   204
 
#define TS_DVHS_PACKET_SIZE   192
 
#define TS_PACKET_SIZE   188
 
#define TS_MAX_PACKET_SIZE   204
 
#define NB_PID_MAX   8192
 
#define USUAL_SECTION_SIZE   1024 /* except EIT which is limited to 4096 */
 
#define MAX_SECTION_SIZE   4096
 
#define PAT_PID   0x0000 /* Program Association Table */
 
#define CAT_PID   0x0001 /* Conditional Access Table */
 
#define TSDT_PID   0x0002 /* Transport Stream Description Table */
 
#define IPMP_PID   0x0003
 
#define NIT_PID   0x0010 /* Network Information Table */
 
#define SDT_PID   0x0011 /* Service Description Table */
 
#define BAT_PID   0x0011 /* Bouquet Association Table */
 
#define EIT_PID   0x0012 /* Event Information Table */
 
#define RST_PID   0x0013 /* Running Status Table */
 
#define TDT_PID   0x0014 /* Time and Date Table */
 
#define TOT_PID   0x0014
 
#define NET_SYNC_PID   0x0015
 
#define RNT_PID   0x0016 /* RAR Notification Table */
 
#define LINK_LOCAL_PID   0x001C
 
#define MEASUREMENT_PID   0x001D
 
#define DIT_PID   0x001E /* Discontinuity Information Table */
 
#define SIT_PID   0x001F /* Selection Information Table */
 
#define FIRST_OTHER_PID   0x0020
 
#define LAST_OTHER_PID   0x1FFA
 
#define NULL_PID   0x1FFF /* Null packet (used for fixed bandwidth padding) */
 
#define M2TS_PMT_PID   0x0100
 
#define M2TS_PCR_PID   0x1001
 
#define M2TS_VIDEO_PID   0x1011
 
#define M2TS_AUDIO_START_PID   0x1100
 
#define M2TS_PGSSUB_START_PID   0x1200
 
#define M2TS_TEXTSUB_PID   0x1800
 
#define M2TS_SECONDARY_AUDIO_START_PID   0x1A00
 
#define M2TS_SECONDARY_VIDEO_START_PID   0x1B00
 
#define PAT_TID   0x00 /* Program Association section */
 
#define CAT_TID   0x01 /* Conditional Access section */
 
#define PMT_TID   0x02 /* Program Map section */
 
#define TSDT_TID   0x03 /* Transport Stream Description section */
 
#define M4OD_TID   0x05
 
#define NIT_TID   0x40 /* Network Information section - actual network */
 
#define ONIT_TID   0x41 /* Network Information section - other network */
 
#define SDT_TID   0x42 /* Service Description section - actual TS */
 
#define OSDT_TID   0x46 /* Service Descrition section - other TS */
 
#define BAT_TID   0x4A /* Bouquet Association section */
 
#define UNT_TID   0x4B /* Update Notification Table section */
 
#define DFI_TID   0x4C /* Downloadable Font Info section */
 
#define EIT_TID   0x4E /* Event Information section - actual TS */
 
#define OEIT_TID   0x4F /* Event Information section - other TS */
 
#define EITS_START_TID   0x50 /* Event Information section schedule - actual TS */
 
#define EITS_END_TID   0x5F /* Event Information section schedule - actual TS */
 
#define OEITS_START_TID   0x60 /* Event Information section schedule - other TS */
 
#define OEITS_END_TID   0x6F /* Event Information section schedule - other TS */
 
#define TDT_TID   0x70 /* Time Date section */
 
#define RST_TID   0x71 /* Running Status section */
 
#define ST_TID   0x72 /* Stuffing section */
 
#define TOT_TID   0x73 /* Time Offset section */
 
#define AIT_TID   0x74 /* Application Inforamtion section */
 
#define CT_TID   0x75 /* Container section */
 
#define RCT_TID   0x76 /* Related Content section */
 
#define CIT_TID   0x77 /* Content Identifier section */
 
#define MPE_FEC_TID   0x78 /* MPE-FEC section */
 
#define RPNT_TID   0x79 /* Resolution Provider Notification section */
 
#define MPE_IFEC_TID   0x7A /* MPE-IFEC section */
 
#define PROTMT_TID   0x7B /* Protection Message section */
 
#define DIT_TID   0x7E /* Discontinuity Information section */
 
#define SIT_TID   0x7F /* Selection Information section */
 
#define STREAM_TYPE_VIDEO_MPEG1   0x01
 
#define STREAM_TYPE_VIDEO_MPEG2   0x02
 
#define STREAM_TYPE_AUDIO_MPEG1   0x03
 
#define STREAM_TYPE_AUDIO_MPEG2   0x04
 
#define STREAM_TYPE_PRIVATE_SECTION   0x05
 
#define STREAM_TYPE_PRIVATE_DATA   0x06
 
#define STREAM_TYPE_AUDIO_AAC   0x0f
 
#define STREAM_TYPE_AUDIO_AAC_LATM   0x11
 
#define STREAM_TYPE_VIDEO_MPEG4   0x10
 
#define STREAM_TYPE_METADATA   0x15
 
#define STREAM_TYPE_VIDEO_H264   0x1b
 
#define STREAM_TYPE_VIDEO_HEVC   0x24
 
#define STREAM_TYPE_VIDEO_CAVS   0x42
 
#define STREAM_TYPE_VIDEO_VC1   0xea
 
#define STREAM_TYPE_VIDEO_DIRAC   0xd1
 
#define STREAM_TYPE_AUDIO_AC3   0x81
 
#define STREAM_TYPE_AUDIO_DTS   0x82
 
#define STREAM_TYPE_AUDIO_TRUEHD   0x83
 
#define STREAM_TYPE_AUDIO_EAC3   0x87
 
#define STREAM_ID_PRIVATE_STREAM_1   0xbd
 
#define STREAM_ID_AUDIO_STREAM_0   0xc0
 
#define STREAM_ID_VIDEO_STREAM_0   0xe0
 
#define STREAM_ID_METADATA_STREAM   0xfc
 
#define STREAM_ID_EXTENDED_STREAM_ID   0xfd
 
#define VIDEO_STREAM_DESCRIPTOR   0x02
 
#define REGISTRATION_DESCRIPTOR   0x05
 
#define ISO_639_LANGUAGE_DESCRIPTOR   0x0a
 
#define IOD_DESCRIPTOR   0x1d
 
#define SL_DESCRIPTOR   0x1e
 
#define FMC_DESCRIPTOR   0x1f
 
#define METADATA_DESCRIPTOR   0x26
 
#define METADATA_STD_DESCRIPTOR   0x27
 

Functions

MpegTSContextavpriv_mpegts_parse_open (AVFormatContext *s)
 
int avpriv_mpegts_parse_packet (MpegTSContext *ts, AVPacket *pkt, const uint8_t *buf, int len)
 
void avpriv_mpegts_parse_close (MpegTSContext *ts)
 
int ff_parse_mpeg2_descriptor (AVFormatContext *fc, AVStream *st, int stream_type, const uint8_t **pp, const uint8_t *desc_list_end, Mp4Descr *mp4_descr, int mp4_descr_count, int pid, MpegTSContext *ts)
 Parse an MPEG-2 descriptor. More...
 
int ff_check_h264_startcode (AVFormatContext *s, const AVStream *st, const AVPacket *pkt)
 Check presence of H264 startcode. More...
 

Macro Definition Documentation

◆ TS_FEC_PACKET_SIZE

#define TS_FEC_PACKET_SIZE   204

Definition at line 27 of file mpegts.h.

◆ TS_DVHS_PACKET_SIZE

#define TS_DVHS_PACKET_SIZE   192

Definition at line 28 of file mpegts.h.

◆ TS_PACKET_SIZE

#define TS_PACKET_SIZE   188

Definition at line 29 of file mpegts.h.

◆ TS_MAX_PACKET_SIZE

#define TS_MAX_PACKET_SIZE   204

Definition at line 30 of file mpegts.h.

◆ NB_PID_MAX

#define NB_PID_MAX   8192

Definition at line 32 of file mpegts.h.

◆ USUAL_SECTION_SIZE

#define USUAL_SECTION_SIZE   1024 /* except EIT which is limited to 4096 */

Definition at line 33 of file mpegts.h.

◆ MAX_SECTION_SIZE

#define MAX_SECTION_SIZE   4096

Definition at line 34 of file mpegts.h.

◆ PAT_PID

#define PAT_PID   0x0000 /* Program Association Table */

Definition at line 37 of file mpegts.h.

◆ CAT_PID

#define CAT_PID   0x0001 /* Conditional Access Table */

Definition at line 38 of file mpegts.h.

◆ TSDT_PID

#define TSDT_PID   0x0002 /* Transport Stream Description Table */

Definition at line 39 of file mpegts.h.

◆ IPMP_PID

#define IPMP_PID   0x0003

Definition at line 40 of file mpegts.h.

◆ NIT_PID

#define NIT_PID   0x0010 /* Network Information Table */

Definition at line 42 of file mpegts.h.

◆ SDT_PID

#define SDT_PID   0x0011 /* Service Description Table */

Definition at line 43 of file mpegts.h.

◆ BAT_PID

#define BAT_PID   0x0011 /* Bouquet Association Table */

Definition at line 44 of file mpegts.h.

◆ EIT_PID

#define EIT_PID   0x0012 /* Event Information Table */

Definition at line 45 of file mpegts.h.

◆ RST_PID

#define RST_PID   0x0013 /* Running Status Table */

Definition at line 46 of file mpegts.h.

◆ TDT_PID

#define TDT_PID   0x0014 /* Time and Date Table */

Definition at line 47 of file mpegts.h.

◆ TOT_PID

#define TOT_PID   0x0014

Definition at line 48 of file mpegts.h.

◆ NET_SYNC_PID

#define NET_SYNC_PID   0x0015

Definition at line 49 of file mpegts.h.

◆ RNT_PID

#define RNT_PID   0x0016 /* RAR Notification Table */

Definition at line 50 of file mpegts.h.

◆ LINK_LOCAL_PID

#define LINK_LOCAL_PID   0x001C

Definition at line 55 of file mpegts.h.

◆ MEASUREMENT_PID

#define MEASUREMENT_PID   0x001D

Definition at line 56 of file mpegts.h.

◆ DIT_PID

#define DIT_PID   0x001E /* Discontinuity Information Table */

Definition at line 57 of file mpegts.h.

◆ SIT_PID

#define SIT_PID   0x001F /* Selection Information Table */

Definition at line 58 of file mpegts.h.

◆ FIRST_OTHER_PID

#define FIRST_OTHER_PID   0x0020

Definition at line 61 of file mpegts.h.

◆ LAST_OTHER_PID

#define LAST_OTHER_PID   0x1FFA

Definition at line 62 of file mpegts.h.

◆ NULL_PID

#define NULL_PID   0x1FFF /* Null packet (used for fixed bandwidth padding) */

Definition at line 66 of file mpegts.h.

◆ M2TS_PMT_PID

#define M2TS_PMT_PID   0x0100

Definition at line 69 of file mpegts.h.

◆ M2TS_PCR_PID

#define M2TS_PCR_PID   0x1001

Definition at line 70 of file mpegts.h.

◆ M2TS_VIDEO_PID

#define M2TS_VIDEO_PID   0x1011

Definition at line 71 of file mpegts.h.

◆ M2TS_AUDIO_START_PID

#define M2TS_AUDIO_START_PID   0x1100

Definition at line 72 of file mpegts.h.

◆ M2TS_PGSSUB_START_PID

#define M2TS_PGSSUB_START_PID   0x1200

Definition at line 73 of file mpegts.h.

◆ M2TS_TEXTSUB_PID

#define M2TS_TEXTSUB_PID   0x1800

Definition at line 74 of file mpegts.h.

◆ M2TS_SECONDARY_AUDIO_START_PID

#define M2TS_SECONDARY_AUDIO_START_PID   0x1A00

Definition at line 75 of file mpegts.h.

◆ M2TS_SECONDARY_VIDEO_START_PID

#define M2TS_SECONDARY_VIDEO_START_PID   0x1B00

Definition at line 76 of file mpegts.h.

◆ PAT_TID

#define PAT_TID   0x00 /* Program Association section */

Definition at line 79 of file mpegts.h.

◆ CAT_TID

#define CAT_TID   0x01 /* Conditional Access section */

Definition at line 80 of file mpegts.h.

◆ PMT_TID

#define PMT_TID   0x02 /* Program Map section */

Definition at line 81 of file mpegts.h.

◆ TSDT_TID

#define TSDT_TID   0x03 /* Transport Stream Description section */

Definition at line 82 of file mpegts.h.

◆ M4OD_TID

#define M4OD_TID   0x05

Definition at line 84 of file mpegts.h.

◆ NIT_TID

#define NIT_TID   0x40 /* Network Information section - actual network */

Definition at line 85 of file mpegts.h.

◆ ONIT_TID

#define ONIT_TID   0x41 /* Network Information section - other network */

Definition at line 86 of file mpegts.h.

◆ SDT_TID

#define SDT_TID   0x42 /* Service Description section - actual TS */

Definition at line 87 of file mpegts.h.

◆ OSDT_TID

#define OSDT_TID   0x46 /* Service Descrition section - other TS */

Definition at line 89 of file mpegts.h.

◆ BAT_TID

#define BAT_TID   0x4A /* Bouquet Association section */

Definition at line 91 of file mpegts.h.

◆ UNT_TID

#define UNT_TID   0x4B /* Update Notification Table section */

Definition at line 92 of file mpegts.h.

◆ DFI_TID

#define DFI_TID   0x4C /* Downloadable Font Info section */

Definition at line 93 of file mpegts.h.

◆ EIT_TID

#define EIT_TID   0x4E /* Event Information section - actual TS */

Definition at line 95 of file mpegts.h.

◆ OEIT_TID

#define OEIT_TID   0x4F /* Event Information section - other TS */

Definition at line 96 of file mpegts.h.

◆ EITS_START_TID

#define EITS_START_TID   0x50 /* Event Information section schedule - actual TS */

Definition at line 97 of file mpegts.h.

◆ EITS_END_TID

#define EITS_END_TID   0x5F /* Event Information section schedule - actual TS */

Definition at line 98 of file mpegts.h.

◆ OEITS_START_TID

#define OEITS_START_TID   0x60 /* Event Information section schedule - other TS */

Definition at line 99 of file mpegts.h.

◆ OEITS_END_TID

#define OEITS_END_TID   0x6F /* Event Information section schedule - other TS */

Definition at line 100 of file mpegts.h.

◆ TDT_TID

#define TDT_TID   0x70 /* Time Date section */

Definition at line 101 of file mpegts.h.

◆ RST_TID

#define RST_TID   0x71 /* Running Status section */

Definition at line 102 of file mpegts.h.

◆ ST_TID

#define ST_TID   0x72 /* Stuffing section */

Definition at line 103 of file mpegts.h.

◆ TOT_TID

#define TOT_TID   0x73 /* Time Offset section */

Definition at line 104 of file mpegts.h.

◆ AIT_TID

#define AIT_TID   0x74 /* Application Inforamtion section */

Definition at line 105 of file mpegts.h.

◆ CT_TID

#define CT_TID   0x75 /* Container section */

Definition at line 106 of file mpegts.h.

◆ RCT_TID

#define RCT_TID   0x76 /* Related Content section */

Definition at line 107 of file mpegts.h.

◆ CIT_TID

#define CIT_TID   0x77 /* Content Identifier section */

Definition at line 108 of file mpegts.h.

◆ MPE_FEC_TID

#define MPE_FEC_TID   0x78 /* MPE-FEC section */

Definition at line 109 of file mpegts.h.

◆ RPNT_TID

#define RPNT_TID   0x79 /* Resolution Provider Notification section */

Definition at line 110 of file mpegts.h.

◆ MPE_IFEC_TID

#define MPE_IFEC_TID   0x7A /* MPE-IFEC section */

Definition at line 111 of file mpegts.h.

◆ PROTMT_TID

#define PROTMT_TID   0x7B /* Protection Message section */

Definition at line 112 of file mpegts.h.

◆ DIT_TID

#define DIT_TID   0x7E /* Discontinuity Information section */

Definition at line 114 of file mpegts.h.

◆ SIT_TID

#define SIT_TID   0x7F /* Selection Information section */

Definition at line 115 of file mpegts.h.

◆ STREAM_TYPE_VIDEO_MPEG1

#define STREAM_TYPE_VIDEO_MPEG1   0x01

Definition at line 119 of file mpegts.h.

◆ STREAM_TYPE_VIDEO_MPEG2

#define STREAM_TYPE_VIDEO_MPEG2   0x02

Definition at line 120 of file mpegts.h.

◆ STREAM_TYPE_AUDIO_MPEG1

#define STREAM_TYPE_AUDIO_MPEG1   0x03

Definition at line 121 of file mpegts.h.

◆ STREAM_TYPE_AUDIO_MPEG2

#define STREAM_TYPE_AUDIO_MPEG2   0x04

Definition at line 122 of file mpegts.h.

◆ STREAM_TYPE_PRIVATE_SECTION

#define STREAM_TYPE_PRIVATE_SECTION   0x05

Definition at line 123 of file mpegts.h.

◆ STREAM_TYPE_PRIVATE_DATA

#define STREAM_TYPE_PRIVATE_DATA   0x06

Definition at line 124 of file mpegts.h.

◆ STREAM_TYPE_AUDIO_AAC

#define STREAM_TYPE_AUDIO_AAC   0x0f

Definition at line 125 of file mpegts.h.

◆ STREAM_TYPE_AUDIO_AAC_LATM

#define STREAM_TYPE_AUDIO_AAC_LATM   0x11

Definition at line 126 of file mpegts.h.

◆ STREAM_TYPE_VIDEO_MPEG4

#define STREAM_TYPE_VIDEO_MPEG4   0x10

Definition at line 127 of file mpegts.h.

◆ STREAM_TYPE_METADATA

#define STREAM_TYPE_METADATA   0x15

Definition at line 128 of file mpegts.h.

◆ STREAM_TYPE_VIDEO_H264

#define STREAM_TYPE_VIDEO_H264   0x1b

Definition at line 129 of file mpegts.h.

◆ STREAM_TYPE_VIDEO_HEVC

#define STREAM_TYPE_VIDEO_HEVC   0x24

Definition at line 130 of file mpegts.h.

◆ STREAM_TYPE_VIDEO_CAVS

#define STREAM_TYPE_VIDEO_CAVS   0x42

Definition at line 131 of file mpegts.h.

◆ STREAM_TYPE_VIDEO_VC1

#define STREAM_TYPE_VIDEO_VC1   0xea

Definition at line 132 of file mpegts.h.

◆ STREAM_TYPE_VIDEO_DIRAC

#define STREAM_TYPE_VIDEO_DIRAC   0xd1

Definition at line 133 of file mpegts.h.

◆ STREAM_TYPE_AUDIO_AC3

#define STREAM_TYPE_AUDIO_AC3   0x81

Definition at line 135 of file mpegts.h.

◆ STREAM_TYPE_AUDIO_DTS

#define STREAM_TYPE_AUDIO_DTS   0x82

Definition at line 136 of file mpegts.h.

◆ STREAM_TYPE_AUDIO_TRUEHD

#define STREAM_TYPE_AUDIO_TRUEHD   0x83

Definition at line 137 of file mpegts.h.

◆ STREAM_TYPE_AUDIO_EAC3

#define STREAM_TYPE_AUDIO_EAC3   0x87

Definition at line 138 of file mpegts.h.

◆ STREAM_ID_PRIVATE_STREAM_1

#define STREAM_ID_PRIVATE_STREAM_1   0xbd

Definition at line 141 of file mpegts.h.

◆ STREAM_ID_AUDIO_STREAM_0

#define STREAM_ID_AUDIO_STREAM_0   0xc0

Definition at line 142 of file mpegts.h.

◆ STREAM_ID_VIDEO_STREAM_0

#define STREAM_ID_VIDEO_STREAM_0   0xe0

Definition at line 143 of file mpegts.h.

◆ STREAM_ID_METADATA_STREAM

#define STREAM_ID_METADATA_STREAM   0xfc

Definition at line 144 of file mpegts.h.

◆ STREAM_ID_EXTENDED_STREAM_ID

#define STREAM_ID_EXTENDED_STREAM_ID   0xfd

Definition at line 145 of file mpegts.h.

◆ VIDEO_STREAM_DESCRIPTOR

#define VIDEO_STREAM_DESCRIPTOR   0x02

Definition at line 148 of file mpegts.h.

◆ REGISTRATION_DESCRIPTOR

#define REGISTRATION_DESCRIPTOR   0x05

Definition at line 149 of file mpegts.h.

◆ ISO_639_LANGUAGE_DESCRIPTOR

#define ISO_639_LANGUAGE_DESCRIPTOR   0x0a

Definition at line 150 of file mpegts.h.

◆ IOD_DESCRIPTOR

#define IOD_DESCRIPTOR   0x1d

Definition at line 151 of file mpegts.h.

◆ SL_DESCRIPTOR

#define SL_DESCRIPTOR   0x1e

Definition at line 152 of file mpegts.h.

◆ FMC_DESCRIPTOR

#define FMC_DESCRIPTOR   0x1f

Definition at line 153 of file mpegts.h.

◆ METADATA_DESCRIPTOR

#define METADATA_DESCRIPTOR   0x26

Definition at line 154 of file mpegts.h.

◆ METADATA_STD_DESCRIPTOR

#define METADATA_STD_DESCRIPTOR   0x27

Definition at line 155 of file mpegts.h.

Function Documentation

◆ avpriv_mpegts_parse_open()

MpegTSContext* avpriv_mpegts_parse_open ( AVFormatContext s)

Definition at line 3339 of file mpegts.c.

Referenced by iec61883_read_header(), and mpegts_init().

◆ avpriv_mpegts_parse_packet()

int avpriv_mpegts_parse_packet ( MpegTSContext ts,
AVPacket pkt,
const uint8_t buf,
int  len 
)

Definition at line 3360 of file mpegts.c.

Referenced by iec61883_parse_queue_hdv(), and mpegts_handle_packet().

◆ avpriv_mpegts_parse_close()

void avpriv_mpegts_parse_close ( MpegTSContext ts)

Definition at line 3385 of file mpegts.c.

Referenced by ff_rtsp_close_streams(), iec61883_close(), and mpegts_close_context().

◆ ff_parse_mpeg2_descriptor()

int ff_parse_mpeg2_descriptor ( AVFormatContext fc,
AVStream st,
int  stream_type,
const uint8_t **  pp,
const uint8_t desc_list_end,
Mp4Descr mp4_descr,
int  mp4_descr_count,
int  pid,
MpegTSContext ts 
)

Parse an MPEG-2 descriptor.

Parameters
[in]fcFormat context (used for logging only)
stStream
stream_typeSTREAM_TYPE_xxx
ppDescriptor buffer pointer
desc_list_endEnd of buffer
Returns
<0 to stop processing

Definition at line 1781 of file mpegts.c.

Referenced by parse_chunks(), and pmt_cb().

◆ ff_check_h264_startcode()

int ff_check_h264_startcode ( AVFormatContext s,
const AVStream st,
const AVPacket pkt 
)

Check presence of H264 startcode.

Returns
<0 to stop processing

Definition at line 1589 of file mpegtsenc.c.

Referenced by avi_write_packet(), mpegts_write_packet_internal(), and write_packet().