|
|
|
@ -89,6 +89,10 @@ typedef struct MpegTSWrite { |
|
|
|
|
#define DEFAULT_PES_HEADER_FREQ 16 |
|
|
|
|
#define DEFAULT_PES_PAYLOAD_SIZE ((DEFAULT_PES_HEADER_FREQ - 1) * 184 + 170) |
|
|
|
|
|
|
|
|
|
/* The section length is 12 bits. The first 2 are set to 0, the remaining
|
|
|
|
|
* 10 bits should not exceed 1021. */ |
|
|
|
|
#define SECTION_LENGTH 1020 |
|
|
|
|
|
|
|
|
|
/* NOTE: 4 bytes must be left at the end for the crc32 */ |
|
|
|
|
static void mpegts_write_section(MpegTSSection *s, uint8_t *buf, int len) |
|
|
|
|
{ |
|
|
|
@ -201,7 +205,7 @@ static void mpegts_write_pat(AVFormatContext *s) |
|
|
|
|
{ |
|
|
|
|
MpegTSWrite *ts = s->priv_data; |
|
|
|
|
MpegTSService *service; |
|
|
|
|
uint8_t data[1012], *q; |
|
|
|
|
uint8_t data[SECTION_LENGTH], *q; |
|
|
|
|
int i; |
|
|
|
|
|
|
|
|
|
q = data; |
|
|
|
@ -217,7 +221,7 @@ static void mpegts_write_pat(AVFormatContext *s) |
|
|
|
|
static void mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) |
|
|
|
|
{ |
|
|
|
|
MpegTSWrite *ts = s->priv_data; |
|
|
|
|
uint8_t data[1012], *q, *desc_length_ptr, *program_info_length_ptr; |
|
|
|
|
uint8_t data[SECTION_LENGTH], *q, *desc_length_ptr, *program_info_length_ptr; |
|
|
|
|
int val, stream_type, i; |
|
|
|
|
|
|
|
|
|
q = data; |
|
|
|
@ -372,7 +376,7 @@ static void mpegts_write_sdt(AVFormatContext *s) |
|
|
|
|
{ |
|
|
|
|
MpegTSWrite *ts = s->priv_data; |
|
|
|
|
MpegTSService *service; |
|
|
|
|
uint8_t data[1012], *q, *desc_list_len_ptr, *desc_len_ptr; |
|
|
|
|
uint8_t data[SECTION_LENGTH], *q, *desc_list_len_ptr, *desc_len_ptr; |
|
|
|
|
int i, running_status, free_ca_mode, val; |
|
|
|
|
|
|
|
|
|
q = data; |
|
|
|
|