mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
Export more transport stream information.
with minor addition to the comment by michael
This commit is contained in:
parent
fa12fb3b00
commit
24adef142f
@ -647,6 +647,9 @@ typedef struct AVProgram {
|
||||
unsigned int *stream_index;
|
||||
unsigned int nb_stream_indexes;
|
||||
AVMetadata *metadata;
|
||||
|
||||
int program_num;
|
||||
int pmt_pid;
|
||||
} AVProgram;
|
||||
|
||||
#define AVFMTCTX_NOHEADER 0x0001 /**< signal that no header is present
|
||||
@ -844,6 +847,12 @@ typedef struct AVFormatContext {
|
||||
* decoding: number of frames used to probe fps
|
||||
*/
|
||||
int fps_probe_size;
|
||||
|
||||
/**
|
||||
* Transport stream id.
|
||||
* This will be moved into demuxer private options. Thus no API/ABI compatibility
|
||||
*/
|
||||
int ts_id;
|
||||
} AVFormatContext;
|
||||
|
||||
typedef struct AVPacketList {
|
||||
|
@ -1137,6 +1137,7 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
|
||||
SectionHeader h1, *h = &h1;
|
||||
const uint8_t *p, *p_end;
|
||||
int sid, pmt_pid;
|
||||
AVProgram *program;
|
||||
|
||||
#ifdef DEBUG
|
||||
av_dlog(ts->stream, "PAT:\n");
|
||||
@ -1149,6 +1150,8 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
|
||||
if (h->tid != PAT_TID)
|
||||
return;
|
||||
|
||||
ts->stream->ts_id = h->id;
|
||||
|
||||
clear_programs(ts);
|
||||
for(;;) {
|
||||
sid = get16(&p, p_end);
|
||||
@ -1163,7 +1166,9 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len
|
||||
if (sid == 0x0000) {
|
||||
/* NIT info */
|
||||
} else {
|
||||
av_new_program(ts->stream, sid);
|
||||
program = av_new_program(ts->stream, sid);
|
||||
program->program_num = sid;
|
||||
program->pmt_pid = pmt_pid;
|
||||
if (ts->pids[pmt_pid])
|
||||
mpegts_close_filter(ts, ts->pids[pmt_pid]);
|
||||
mpegts_open_section_filter(ts, pmt_pid, pmt_cb, ts, 1);
|
||||
|
Loading…
Reference in New Issue
Block a user