Message ID | 20200603100729.25707-1-bradh@frogmouth.net |
---|---|
State | Accepted |
Commit | fb819697f6977981ab864214025e041ebf30f2b4 |
Headers | show |
Series | [FFmpeg-devel] Add constants for MPEG-TS transport stream identifiers | expand |
Context | Check | Description |
---|---|---|
andriy/default | pending | |
andriy/make | success | Make finished |
andriy/make_fate | success | Make fate finished |
On Wed, 3 Jun 2020, Brad Hards wrote: > Signed-off-by: Brad Hards <bradh@frogmouth.net> > --- > libavformat/mpegts.h | 7 +++++++ > libavformat/mpegtsenc.c | 16 ++++++++-------- > 2 files changed, 15 insertions(+), 8 deletions(-) Will apply, thanks. Regards, Marton > > diff --git a/libavformat/mpegts.h b/libavformat/mpegts.h > index 059b693f07..fe10b38691 100644 > --- a/libavformat/mpegts.h > +++ b/libavformat/mpegts.h > @@ -137,6 +137,13 @@ > #define STREAM_TYPE_AUDIO_TRUEHD 0x83 > #define STREAM_TYPE_AUDIO_EAC3 0x87 > > +/* ISO/IEC 13818-1 Table 2-22 */ > +#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 > + > typedef struct MpegTSContext MpegTSContext; > > MpegTSContext *avpriv_mpegts_parse_open(AVFormatContext *s); > diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c > index b5ee48d015..d827ba3e28 100644 > --- a/libavformat/mpegtsenc.c > +++ b/libavformat/mpegtsenc.c > @@ -1382,28 +1382,28 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st, > is_dvb_teletext = 0; > if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { > if (st->codecpar->codec_id == AV_CODEC_ID_DIRAC) > - *q++ = 0xfd; > + *q++ = STREAM_ID_EXTENDED_STREAM_ID; > else > - *q++ = 0xe0; > + *q++ = STREAM_ID_VIDEO_STREAM_0; > } else if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && > (st->codecpar->codec_id == AV_CODEC_ID_MP2 || > st->codecpar->codec_id == AV_CODEC_ID_MP3 || > st->codecpar->codec_id == AV_CODEC_ID_AAC)) { > - *q++ = 0xc0; > + *q++ = STREAM_ID_AUDIO_STREAM_0; > } else if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && > st->codecpar->codec_id == AV_CODEC_ID_AC3 && > ts->m2ts_mode) { > - *q++ = 0xfd; > + *q++ = STREAM_ID_EXTENDED_STREAM_ID; > } else if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA && > st->codecpar->codec_id == AV_CODEC_ID_TIMED_ID3) { > - *q++ = 0xbd; > + *q++ = STREAM_ID_PRIVATE_STREAM_1; > } else if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA) { > - *q++ = stream_id != -1 ? stream_id : 0xfc; > + *q++ = stream_id != -1 ? stream_id : STREAM_ID_METADATA_STREAM; > > - if (stream_id == 0xbd) /* asynchronous KLV */ > + if (stream_id == STREAM_ID_PRIVATE_STREAM_1) /* asynchronous KLV */ > pts = dts = AV_NOPTS_VALUE; > } else { > - *q++ = 0xbd; > + *q++ = STREAM_ID_PRIVATE_STREAM_1; > if (st->codecpar->codec_type == AVMEDIA_TYPE_SUBTITLE) { > if (st->codecpar->codec_id == AV_CODEC_ID_DVB_SUBTITLE) { > is_dvb_subtitle = 1; > -- > 2.17.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff --git a/libavformat/mpegts.h b/libavformat/mpegts.h index 059b693f07..fe10b38691 100644 --- a/libavformat/mpegts.h +++ b/libavformat/mpegts.h @@ -137,6 +137,13 @@ #define STREAM_TYPE_AUDIO_TRUEHD 0x83 #define STREAM_TYPE_AUDIO_EAC3 0x87 +/* ISO/IEC 13818-1 Table 2-22 */ +#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 + typedef struct MpegTSContext MpegTSContext; MpegTSContext *avpriv_mpegts_parse_open(AVFormatContext *s); diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index b5ee48d015..d827ba3e28 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -1382,28 +1382,28 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st, is_dvb_teletext = 0; if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { if (st->codecpar->codec_id == AV_CODEC_ID_DIRAC) - *q++ = 0xfd; + *q++ = STREAM_ID_EXTENDED_STREAM_ID; else - *q++ = 0xe0; + *q++ = STREAM_ID_VIDEO_STREAM_0; } else if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && (st->codecpar->codec_id == AV_CODEC_ID_MP2 || st->codecpar->codec_id == AV_CODEC_ID_MP3 || st->codecpar->codec_id == AV_CODEC_ID_AAC)) { - *q++ = 0xc0; + *q++ = STREAM_ID_AUDIO_STREAM_0; } else if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && st->codecpar->codec_id == AV_CODEC_ID_AC3 && ts->m2ts_mode) { - *q++ = 0xfd; + *q++ = STREAM_ID_EXTENDED_STREAM_ID; } else if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA && st->codecpar->codec_id == AV_CODEC_ID_TIMED_ID3) { - *q++ = 0xbd; + *q++ = STREAM_ID_PRIVATE_STREAM_1; } else if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA) { - *q++ = stream_id != -1 ? stream_id : 0xfc; + *q++ = stream_id != -1 ? stream_id : STREAM_ID_METADATA_STREAM; - if (stream_id == 0xbd) /* asynchronous KLV */ + if (stream_id == STREAM_ID_PRIVATE_STREAM_1) /* asynchronous KLV */ pts = dts = AV_NOPTS_VALUE; } else { - *q++ = 0xbd; + *q++ = STREAM_ID_PRIVATE_STREAM_1; if (st->codecpar->codec_type == AVMEDIA_TYPE_SUBTITLE) { if (st->codecpar->codec_id == AV_CODEC_ID_DVB_SUBTITLE) { is_dvb_subtitle = 1;
Signed-off-by: Brad Hards <bradh@frogmouth.net> --- libavformat/mpegts.h | 7 +++++++ libavformat/mpegtsenc.c | 16 ++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-)