Message ID | 20200412223738.22357-1-cus@passwd.hu |
---|---|
State | Accepted |
Headers | show |
Series | None | expand |
Am Mo., 13. Apr. 2020 um 00:38 Uhr schrieb Marton Balint <cus@passwd.hu>: > > Fixes ticket #2622. > > Signed-off-by: Marton Balint <cus@passwd.hu> > --- > Changelog | 1 + > libavformat/mpegtsenc.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++- > 2 files changed, 58 insertions(+), 1 deletion(-) > > diff --git a/Changelog b/Changelog > index 6dfe750d81..4ba44e5e2d 100644 > --- a/Changelog > +++ b/Changelog > @@ -58,6 +58,7 @@ version <next>: > - switch from AvxSynth to AviSynth+ on Linux > - mv30 decoder > - Expanded styling support for 3GPP Timed Text Subtitles (movtext) > +- use the correct stream types for m2ts output Don't you agree that "Support pcm audio when muxing m2ts" or "Support BluRay muxing" is a stronger wording? Carl Eugen
On Mon, 13 Apr 2020, Carl Eugen Hoyos wrote: > Am Mo., 13. Apr. 2020 um 00:38 Uhr schrieb Marton Balint <cus@passwd.hu>: >> >> Fixes ticket #2622. >> >> Signed-off-by: Marton Balint <cus@passwd.hu> >> --- >> Changelog | 1 + >> libavformat/mpegtsenc.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++- >> 2 files changed, 58 insertions(+), 1 deletion(-) >> >> diff --git a/Changelog b/Changelog >> index 6dfe750d81..4ba44e5e2d 100644 >> --- a/Changelog >> +++ b/Changelog >> @@ -58,6 +58,7 @@ version <next>: >> - switch from AvxSynth to AviSynth+ on Linux >> - mv30 decoder >> - Expanded styling support for 3GPP Timed Text Subtitles (movtext) >> +- use the correct stream types for m2ts output > > Don't you agree that "Support pcm audio when muxing m2ts" > or "Support BluRay muxing" is a stronger wording? That is not true, m2ts mode is nowhere near Blu-ray compatible yet, so it would be misleading to say that. Also it is not just about PCM audio, the ticket was opened for PGS subtitles as far as I remember. Regards, Marton
Am Mo., 13. Apr. 2020 um 02:17 Uhr schrieb Marton Balint <cus@passwd.hu>: > > > > On Mon, 13 Apr 2020, Carl Eugen Hoyos wrote: > > > Am Mo., 13. Apr. 2020 um 00:38 Uhr schrieb Marton Balint <cus@passwd.hu>: > >> > >> Fixes ticket #2622. > >> > >> Signed-off-by: Marton Balint <cus@passwd.hu> > >> --- > >> Changelog | 1 + > >> libavformat/mpegtsenc.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++- > >> 2 files changed, 58 insertions(+), 1 deletion(-) > >> > >> diff --git a/Changelog b/Changelog > >> index 6dfe750d81..4ba44e5e2d 100644 > >> --- a/Changelog > >> +++ b/Changelog > >> @@ -58,6 +58,7 @@ version <next>: > >> - switch from AvxSynth to AviSynth+ on Linux > >> - mv30 decoder > >> - Expanded styling support for 3GPP Timed Text Subtitles (movtext) > >> +- use the correct stream types for m2ts output > > > > Don't you agree that "Support pcm audio when muxing m2ts" > > or "Support BluRay muxing" is a stronger wording? > > That is not true, m2ts mode is nowhere near Blu-ray compatible yet, so it > would be misleading to say that. Also it is not just about PCM audio, the > ticket was opened for PGS subtitles as far as I remember. I think there is enough room for "Support for muxing pcm and pgs in m2ts" Carl Eugen
On Thu, 16 Apr 2020, Carl Eugen Hoyos wrote: > Am Mo., 13. Apr. 2020 um 02:17 Uhr schrieb Marton Balint <cus@passwd.hu>: >> >> >> >> On Mon, 13 Apr 2020, Carl Eugen Hoyos wrote: >> >> > Am Mo., 13. Apr. 2020 um 00:38 Uhr schrieb Marton Balint <cus@passwd.hu>: >> >> >> >> Fixes ticket #2622. >> >> >> >> Signed-off-by: Marton Balint <cus@passwd.hu> >> >> --- >> >> Changelog | 1 + >> >> libavformat/mpegtsenc.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++- >> >> 2 files changed, 58 insertions(+), 1 deletion(-) >> >> >> >> diff --git a/Changelog b/Changelog >> >> index 6dfe750d81..4ba44e5e2d 100644 >> >> --- a/Changelog >> >> +++ b/Changelog >> >> @@ -58,6 +58,7 @@ version <next>: >> >> - switch from AvxSynth to AviSynth+ on Linux >> >> - mv30 decoder >> >> - Expanded styling support for 3GPP Timed Text Subtitles (movtext) >> >> +- use the correct stream types for m2ts output >> > >> > Don't you agree that "Support pcm audio when muxing m2ts" >> > or "Support BluRay muxing" is a stronger wording? >> >> That is not true, m2ts mode is nowhere near Blu-ray compatible yet, so it >> would be misleading to say that. Also it is not just about PCM audio, the >> ticket was opened for PGS subtitles as far as I remember. > > I think there is enough room for "Support for muxing pcm and pgs in m2ts" Ok, will apply soon the series with that line in the changelog. Thanks, Marton
On Mon, 20 Apr 2020, Marton Balint wrote: > > > On Thu, 16 Apr 2020, Carl Eugen Hoyos wrote: > >> Am Mo., 13. Apr. 2020 um 02:17 Uhr schrieb Marton Balint <cus@passwd.hu>: >>> >>> >>> >>> On Mon, 13 Apr 2020, Carl Eugen Hoyos wrote: >>> >>> > Am Mo., 13. Apr. 2020 um 00:38 Uhr schrieb Marton Balint > <cus@passwd.hu>: >>> >> >>> >> Fixes ticket #2622. >>> >> >>> >> Signed-off-by: Marton Balint <cus@passwd.hu> >>> >> --- >>> >> Changelog | 1 + >>> >> libavformat/mpegtsenc.c | 58 > ++++++++++++++++++++++++++++++++++++++++++++++++- >>> >> 2 files changed, 58 insertions(+), 1 deletion(-) >>> >> >>> >> diff --git a/Changelog b/Changelog >>> >> index 6dfe750d81..4ba44e5e2d 100644 >>> >> --- a/Changelog >>> >> +++ b/Changelog >>> >> @@ -58,6 +58,7 @@ version <next>: >>> >> - switch from AvxSynth to AviSynth+ on Linux >>> >> - mv30 decoder >>> >> - Expanded styling support for 3GPP Timed Text Subtitles (movtext) >>> >> +- use the correct stream types for m2ts output >>> > >>> > Don't you agree that "Support pcm audio when muxing m2ts" >>> > or "Support BluRay muxing" is a stronger wording? >>> >>> That is not true, m2ts mode is nowhere near Blu-ray compatible yet, so it >>> would be misleading to say that. Also it is not just about PCM audio, the >>> ticket was opened for PGS subtitles as far as I remember. >> >> I think there is enough room for "Support for muxing pcm and pgs in m2ts" > > Ok, will apply soon the series with that line in the changelog. Applied the series. Regards Marton
Am Di., 21. Apr. 2020 um 21:44 Uhr schrieb Marton Balint <cus@passwd.hu>: > > > > On Mon, 20 Apr 2020, Marton Balint wrote: > > > > > > > On Thu, 16 Apr 2020, Carl Eugen Hoyos wrote: > > > >> Am Mo., 13. Apr. 2020 um 02:17 Uhr schrieb Marton Balint <cus@passwd.hu>: > >>> > >>> > >>> > >>> On Mon, 13 Apr 2020, Carl Eugen Hoyos wrote: > >>> > >>> > Am Mo., 13. Apr. 2020 um 00:38 Uhr schrieb Marton Balint > > <cus@passwd.hu>: > >>> >> > >>> >> Fixes ticket #2622. > >>> >> > >>> >> Signed-off-by: Marton Balint <cus@passwd.hu> > >>> >> --- > >>> >> Changelog | 1 + > >>> >> libavformat/mpegtsenc.c | 58 > > ++++++++++++++++++++++++++++++++++++++++++++++++- > >>> >> 2 files changed, 58 insertions(+), 1 deletion(-) > >>> >> > >>> >> diff --git a/Changelog b/Changelog > >>> >> index 6dfe750d81..4ba44e5e2d 100644 > >>> >> --- a/Changelog > >>> >> +++ b/Changelog > >>> >> @@ -58,6 +58,7 @@ version <next>: > >>> >> - switch from AvxSynth to AviSynth+ on Linux > >>> >> - mv30 decoder > >>> >> - Expanded styling support for 3GPP Timed Text Subtitles (movtext) > >>> >> +- use the correct stream types for m2ts output > >>> > > >>> > Don't you agree that "Support pcm audio when muxing m2ts" > >>> > or "Support BluRay muxing" is a stronger wording? > >>> > >>> That is not true, m2ts mode is nowhere near Blu-ray compatible yet, so it > >>> would be misleading to say that. Also it is not just about PCM audio, the > >>> ticket was opened for PGS subtitles as far as I remember. > >> > >> I think there is enough room for "Support for muxing pcm and pgs in m2ts" > > > > Ok, will apply soon the series with that line in the changelog. > > Applied the series. Thank you! Carl Eugen
diff --git a/Changelog b/Changelog index 6dfe750d81..4ba44e5e2d 100644 --- a/Changelog +++ b/Changelog @@ -58,6 +58,7 @@ version <next>: - switch from AvxSynth to AviSynth+ on Linux - mv30 decoder - Expanded styling support for 3GPP Timed Text Subtitles (movtext) +- use the correct stream types for m2ts output version 4.2: diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index add35aca89..b154675d60 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -359,6 +359,54 @@ static int get_dvb_stream_type(AVFormatContext *s, AVStream *st) return stream_type; } +static int get_m2ts_stream_type(AVFormatContext *s, AVStream *st) +{ + int stream_type; + + switch (st->codecpar->codec_id) { + case AV_CODEC_ID_MPEG2VIDEO: + stream_type = STREAM_TYPE_VIDEO_MPEG2; + break; + case AV_CODEC_ID_H264: + stream_type = STREAM_TYPE_VIDEO_H264; + break; + case AV_CODEC_ID_VC1: + stream_type = STREAM_TYPE_VIDEO_VC1; + break; + case AV_CODEC_ID_HEVC: + stream_type = STREAM_TYPE_VIDEO_HEVC; + break; + case AV_CODEC_ID_PCM_BLURAY: + stream_type = 0x80; + break; + case AV_CODEC_ID_AC3: + stream_type = 0x81; + break; + case AV_CODEC_ID_DTS: + stream_type = (st->codecpar->channels > 6) ? 0x85 : 0x82; + break; + case AV_CODEC_ID_TRUEHD: + stream_type = 0x83; + break; + case AV_CODEC_ID_EAC3: + stream_type = 0x84; + break; + case AV_CODEC_ID_HDMV_PGS_SUBTITLE: + stream_type = 0x90; + break; + case AV_CODEC_ID_HDMV_TEXT_SUBTITLE: + stream_type = 0x92; + break; + default: + av_log(s, AV_LOG_WARNING, "Stream %d, codec %s, is muxed as a private data stream " + "and may not be recognized upon reading.\n", st->index, avcodec_get_name(st->codecpar->codec_id)); + stream_type = STREAM_TYPE_PRIVATE_DATA; + break; + } + + return stream_type; +} + static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) { MpegTSWrite *ts = s->priv_data; @@ -372,6 +420,14 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) q += 2; /* patched after */ /* put program info here */ + if (ts->m2ts_mode) { + put_registration_descriptor(&q, MKTAG('H', 'D', 'M', 'V')); + *q++ = 0x88; // descriptor_tag - hdmv_copy_control_descriptor + *q++ = 0x04; // descriptor_length + put16(&q, 0x0fff); // CA_System_ID + *q++ = 0xfc; // private_data_byte + *q++ = 0xfc; // private_data_byte + } val = 0xf000 | (q - program_info_length_ptr - 2); program_info_length_ptr[0] = val >> 8; @@ -401,7 +457,7 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) break; } - stream_type = get_dvb_stream_type(s, st); + stream_type = ts->m2ts_mode ? get_m2ts_stream_type(s, st) : get_dvb_stream_type(s, st); *q++ = stream_type; put16(&q, 0xe000 | ts_st->pid);
Fixes ticket #2622. Signed-off-by: Marton Balint <cus@passwd.hu> --- Changelog | 1 + libavformat/mpegtsenc.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 58 insertions(+), 1 deletion(-)