diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2016-03-23 02:52:03 +0100 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2016-03-26 21:52:48 +0100 |
commit | e15a48d35afae9308dab9f9c06f801e8310e8928 (patch) | |
tree | 8528bd5b118c3f84b8a013ff8bf82f6adce1a7b9 /libavformat/mpegtsenc.c | |
parent | 0fae52d7e37a11dada1d26e1f4827c3ccc601311 (diff) | |
download | android_external_ffmpeg-e15a48d35afae9308dab9f9c06f801e8310e8928.tar.gz android_external_ffmpeg-e15a48d35afae9308dab9f9c06f801e8310e8928.tar.bz2 android_external_ffmpeg-e15a48d35afae9308dab9f9c06f801e8310e8928.zip |
avformat/mpegtsenc: Keep track of the program for each service
Simplifies code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 50d017a28171177b89c367194ec8d02f963e7e9e)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavformat/mpegtsenc.c')
-rw-r--r-- | libavformat/mpegtsenc.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index 765672067a..360c1372d1 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -56,6 +56,7 @@ typedef struct MpegTSService { int pcr_pid; int pcr_packet_count; int pcr_packet_period; + AVProgram *program; } MpegTSService; // service_type values as defined in ETSI 300 468 @@ -275,15 +276,12 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) AVDictionaryEntry *lang = av_dict_get(st->metadata, "language", NULL, 0); if (s->nb_programs) { - int j, k, found = 0; - - for (j = 0; j < s->nb_programs; j++) - if (s->programs[j]->id == service->sid) { - for (k = 0; k < s->programs[j]->nb_stream_indexes; k++) - if (s->programs[j]->stream_index[k] == i) { - found = 1; - break; - } + int k, found = 0; + AVProgram *program = service->program; + + for (k = 0; k < program->nb_stream_indexes; k++) + if (program->stream_index[k] == i) { + found = 1; break; } @@ -784,6 +782,7 @@ static int mpegts_init(AVFormatContext *s) service->pmt.write_packet = section_write_packet; service->pmt.opaque = s; service->pmt.cc = 15; + service->program = program; } } |