-
Notifications
You must be signed in to change notification settings - Fork 523
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
How to get audio language from PMT? #369
Comments
@fpgamaster Are you referring to possible "ISO639 Language Descriptor" in PMT? That is not parsed right now. Do you have a sample content with this descriptor? Also, we love contributions. If you'd like to contribute, here is the places you'll need to modify: |
@kqyang Yes, I am referring to "ISO639 Language Descriptor". A sample content could be obtained from any DVB C/T/S network. I will try to record a sample content with multiple audios and will post a link in few days. |
@kqyang Feel free to modify the following patch. It is really a quick and dirty solution for the functionality we currently need. Enjoy! diff --git a/packager/media/formats/mp2t/es_parser_audio.cc b/packager/media/formats/mp2t/es_parser_audio.cc
index 9599563d73..eec0a2dab4 100644
--- a/packager/media/formats/mp2t/es_parser_audio.cc
+++ b/packager/media/formats/mp2t/es_parser_audio.cc
@@ -80,11 +80,13 @@ static bool LookForSyncWord(const uint8_t* raw_es,
EsParserAudio::EsParserAudio(uint32_t pid,
TsStreamType stream_type,
+ std::string lang,
const NewStreamInfoCB& new_stream_info_cb,
const EmitSampleCB& emit_sample_cb,
bool sbr_in_mimetype)
: EsParser(pid),
stream_type_(stream_type),
+ lang_(lang),
new_stream_info_cb_(new_stream_info_cb),
emit_sample_cb_(emit_sample_cb),
sbr_in_mimetype_(sbr_in_mimetype) {
@@ -213,7 +215,7 @@ bool EsParserAudio::UpdateAudioConfiguration(const AudioHeader& audio_header) {
audio_specific_config.data(), audio_specific_config.size(),
kAacSampleSizeBits, audio_header.GetNumChannels(),
extended_samples_per_second, 0 /* seek preroll */, 0 /* codec delay */,
- 0 /* max bitrate */, 0 /* avg bitrate */, std::string(), false);
+ 0 /* max bitrate */, 0 /* avg bitrate */, lang_, false);
DVLOG(1) << "Sampling frequency: " << samples_per_second;
DVLOG(1) << "Extended sampling frequency: " << extended_samples_per_second;
diff --git a/packager/media/formats/mp2t/es_parser_audio.h b/packager/media/formats/mp2t/es_parser_audio.h
index e92a9fefb0..69b1ae2375 100644
--- a/packager/media/formats/mp2t/es_parser_audio.h
+++ b/packager/media/formats/mp2t/es_parser_audio.h
@@ -29,6 +29,7 @@ class EsParserAudio : public EsParser {
public:
EsParserAudio(uint32_t pid,
TsStreamType stream_type,
+ std::string lang,
const NewStreamInfoCB& new_stream_info_cb,
const EmitSampleCB& emit_sample_cb,
bool sbr_in_mimetype);
@@ -57,6 +58,8 @@ class EsParserAudio : public EsParser {
const TsStreamType stream_type_;
std::unique_ptr<AudioHeader> audio_header_;
+ std::string lang_;
+
// Callbacks:
// - to signal a new audio configuration,
// - to send ES buffers.
diff --git a/packager/media/formats/mp2t/mp2t_media_parser.cc b/packager/media/formats/mp2t/mp2t_media_parser.cc
index 4ecb9dd76a..acd95e89f2 100644
--- a/packager/media/formats/mp2t/mp2t_media_parser.cc
+++ b/packager/media/formats/mp2t/mp2t_media_parser.cc
@@ -273,10 +273,12 @@ void Mp2tMediaParser::RegisterPmt(int program_number, int pmt_pid) {
void Mp2tMediaParser::RegisterPes(int pmt_pid,
int pes_pid,
- int stream_type) {
+ int stream_type,
+ std::string lang) {
DVLOG(1) << "RegisterPes:"
<< " pes_pid=" << pes_pid
- << " stream_type=" << std::hex << stream_type << std::dec;
+ << " stream_type=" << std::hex << stream_type << std::dec
+ << " lang=" << lang;
std::map<int, std::unique_ptr<PidState>>::iterator it = pids_.find(pes_pid);
if (it != pids_.end())
return;
@@ -300,7 +302,7 @@ void Mp2tMediaParser::RegisterPes(int pmt_pid,
case TsStreamType::kAdtsAac:
case TsStreamType::kAc3:
es_parser.reset(new EsParserAudio(
- pes_pid, static_cast<TsStreamType>(stream_type),
+ pes_pid, static_cast<TsStreamType>(stream_type), lang,
base::Bind(&Mp2tMediaParser::OnNewStreamInfo, base::Unretained(this)),
base::Bind(&Mp2tMediaParser::OnEmitSample, base::Unretained(this)),
sbr_in_mimetype_));
diff --git a/packager/media/formats/mp2t/mp2t_media_parser.h b/packager/media/formats/mp2t/mp2t_media_parser.h
index 2ad7fbd733..ed6605fff7 100644
--- a/packager/media/formats/mp2t/mp2t_media_parser.h
+++ b/packager/media/formats/mp2t/mp2t_media_parser.h
@@ -51,7 +51,7 @@ class Mp2tMediaParser : public MediaParser {
// Possible values for |media_type| are defined in:
// ISO-13818.1 / ITU H.222 Table 2.34 "Media type assignments".
// |pes_pid| is part of the Program Map Table refered by |pmt_pid|.
- void RegisterPes(int pmt_pid, int pes_pid, int media_type);
+ void RegisterPes(int pmt_pid, int pes_pid, int media_type, std::string lang);
// Callback invoked each time the audio/video decoder configuration is
// changed.
diff --git a/packager/media/formats/mp2t/ts_section_pmt.cc b/packager/media/formats/mp2t/ts_section_pmt.cc
index 8ba854cb2e..559d7ade75 100644
--- a/packager/media/formats/mp2t/ts_section_pmt.cc
+++ b/packager/media/formats/mp2t/ts_section_pmt.cc
@@ -76,6 +76,7 @@ bool TsSectionPmt::ParsePsiSection(BitReader* bit_reader) {
// (4 bytes = size of the CRC).
int pid_map_end_marker = section_start_marker - section_length + 4;
std::map<int, int> pid_map;
+ std::map<int, std::string> pid_lang;
while (static_cast<int>(bit_reader->bits_available()) >
8 * pid_map_end_marker) {
int stream_type;
@@ -95,7 +96,29 @@ bool TsSectionPmt::ParsePsiSection(BitReader* bit_reader) {
// Read the ES info descriptors.
// Defined in section 2.6 of ISO-13818.
- RCHECK(bit_reader->SkipBits(8 * es_info_length));
+ int descriptor_tag;
+ int descriptor_length;
+ char lang[] = { 'u', 'n', 'd', '\0' };
+
+ while (es_info_length) {
+ RCHECK(bit_reader->ReadBits(8, &descriptor_tag));
+ RCHECK(bit_reader->ReadBits(8, &descriptor_length));
+
+ if (descriptor_tag == 10) {
+ RCHECK(bit_reader->ReadBits(8, &lang[0])); // ISO_639_language_code
+ RCHECK(bit_reader->ReadBits(8, &lang[1]));
+ RCHECK(bit_reader->ReadBits(8, &lang[2]));
+ RCHECK(bit_reader->SkipBits(8)); // audio_type
+
+ }
+ else {
+ RCHECK(bit_reader->SkipBits(8 * descriptor_length));
+ }
+
+ es_info_length -= 2 + descriptor_length;
+ }
+ pid_lang.insert(std::pair<int, std::string>(pid_es, std::string(lang)));
+
}
// Read the CRC.
@@ -105,7 +128,7 @@ bool TsSectionPmt::ParsePsiSection(BitReader* bit_reader) {
// Once the PMT has been proved to be correct, register the PIDs.
for (std::map<int, int>::iterator it = pid_map.begin();
it != pid_map.end(); ++it)
- register_pes_cb_.Run(it->first, it->second);
+ register_pes_cb_.Run(it->first, it->second, pid_lang[it->first]);
return true;
}
diff --git a/packager/media/formats/mp2t/ts_section_pmt.h b/packager/media/formats/mp2t/ts_section_pmt.h
index 7b14d82b70..8e1a5ade6d 100644
--- a/packager/media/formats/mp2t/ts_section_pmt.h
+++ b/packager/media/formats/mp2t/ts_section_pmt.h
@@ -18,7 +18,7 @@ class TsSectionPmt : public TsSectionPsi {
// RegisterPesCb::Run(int pes_pid, int stream_type);
// Stream type is defined in
// "Table 2-34 – Stream type assignments" in H.222
- typedef base::Callback<void(int, int)> RegisterPesCb;
+ typedef base::Callback<void(int, int, std::string)> RegisterPesCb;
explicit TsSectionPmt(const RegisterPesCb& register_pes_cb);
~TsSectionPmt() override; |
@fpgamaster Thanks for the patch. It is quite good I think, with only a few minor nits. Do you want to submit a pull request for this? |
@kqyang Yes, it will be nice! |
@fpgamaster Do you still plan to submit a pull request for this feature? Thanks. |
@sammirata volunteers to pick up this issue, see #518. Thank you @sammirata. Appreciated! |
…haka-project#369) This adds support for some MPEG-TS PMT elementary stream descriptors: - ISO639 Language Descriptor providing language code and audio type - Maximum Bitrate Descriptor providing peak stream bandwidth Those metadata are propagated to StreamInfo structures: - StreamInfo.language field - AudioStreamMetadata.max_bitrate field for audio streams - audio type is currently not propageted - field has to be added Test vector file containg those descriptors is provided.
…haka-project#369) This adds support for some MPEG-TS PMT elementary stream descriptors: - ISO639 Language Descriptor providing language code and audio type - Maximum Bitrate Descriptor providing peak stream bandwidth Those metadata are propagated to StreamInfo structures: - StreamInfo.language field - AudioStreamMetadata.max_bitrate field for audio streams - audio type is currently not propageted - field has to be added Test vector file containg those descriptors is provided.
I would like to pick and extend this issue. PMT can be source not only for audio language, but also other metadata:
For example this is part of tstable output with stream containing these descriptors (ttable is part of tsduck suite, very useful tool to analyse/modify transport streams :
I would like to propose a PR to parse these descriptors, with test vector. Currently there is no field for audio type in AudioStreamInfo. If added, it could be used for e.g. auto-set MPEG-DASH role/accessibility elements or HLS media characteristics attribute. Such field should have some abstract values, to not be bounded with MPEG-TS audio type. If that can be agreed, I would also do that. |
…haka-project#369) This adds support for some MPEG-TS PMT elementary stream descriptors: - ISO639 Language Descriptor providing language code and audio type - Maximum Bitrate Descriptor providing peak stream bandwidth Those metadata are propagated to StreamInfo structures: - StreamInfo.language field - AudioStreamMetadata.max_bitrate field for audio streams - audio type is currently not propageted - field has to be added Test vector file containing those descriptors is provided.
…haka-project#369) This adds support for some MPEG-TS PMT elementary stream descriptors: - ISO639 Language Descriptor providing language code and audio type - Maximum Bitrate Descriptor providing peak stream bandwidth Those metadata are propagated to StreamInfo structures: - StreamInfo.language field - AudioStreamMetadata.max_bitrate field for audio streams - audio type is currently not propageted - field has to be added Test vector file containing those descriptors is provided.
…haka-project#369) This adds support for some MPEG-TS PMT elementary stream descriptors: - ISO639 Language Descriptor providing language code and audio type - Maximum Bitrate Descriptor providing peak stream bandwidth Those metadata are propagated to StreamInfo structures: - StreamInfo.language field - AudioStreamMetadata.max_bitrate field for audio streams - audio type is currently not propageted - field has to be added Test vector file containing those descriptors is provided.
…haka-project#369) This adds support for some MPEG-TS PMT elementary stream descriptors: - ISO639 Language Descriptor providing language code and audio type - Maximum Bitrate Descriptor providing peak stream bandwidth Those metadata are propagated to StreamInfo structures: - StreamInfo.language field - AudioStreamMetadata.max_bitrate field for audio streams - audio type is currently not propageted - field has to be added Test vector file containing those descriptors is provided.
…haka-project#369) This adds support for some MPEG-TS PMT elementary stream descriptors: - ISO639 Language Descriptor providing language code and audio type - Maximum Bitrate Descriptor providing peak stream bandwidth Those metadata are propagated to StreamInfo structures: - StreamInfo.language field - AudioStreamMetadata.max_bitrate field for audio streams - audio type is currently not propageted - field has to be added Test vector file containing those descriptors is provided.
…369) (#1311) Part of #369 This adds read support for some MPEG-TS PMT elementary stream descriptors: - ISO639 Language Descriptor providing language code and audio type - Maximum Bitrate Descriptor providing peak stream bandwidth Those metadata are propagated to StreamInfo structures: - StreamInfo.language field - AudioStreamMetadata.max_bitrate field for audio streams - audio type is currently not propagated - corresponding field has to be added to AudioStreamMetadata Test vector file containing those descriptors is provided.
🤖 I have created a release *beep* *boop* --- ## [4.0.0](v3.0.2...v4.0.0) (2024-03-12) ### ⚠ BREAKING CHANGES * Update all dependencies * Drop Python 2 support in all scripts * Replace glog with absl::log, tweak log output and flags * Replace gyp build system with CMake ### Features * Add input support for EBU Teletext in MPEG-TS ([shaka-project#1344](https://github.com/joeyparrish/shaka-packager/issues/1344)) ([71c175d](71c175d)) * Add install target to build system ([3e71302](3e71302)) * Add PlayReady support in HLS. ([shaka-project#1011](https://github.com/joeyparrish/shaka-packager/issues/1011)) ([96efc5a](96efc5a)) * add startwithSAP/subsegmentstartswithSAP for audio tracks ([shaka-project#1346](https://github.com/joeyparrish/shaka-packager/issues/1346)) ([d23cce8](d23cce8)) * Add support for ALAC codec ([shaka-project#1299](https://github.com/joeyparrish/shaka-packager/issues/1299)) ([b68ec87](b68ec87)) * Add support for single file TS for HLS ([shaka-project#934](https://github.com/joeyparrish/shaka-packager/issues/934)) ([4aa4b4b](4aa4b4b)) * Add support for the EXT-X-START tag ([shaka-project#973](https://github.com/joeyparrish/shaka-packager/issues/973)) ([76eb2c1](76eb2c1)) * Add xHE-AAC support ([shaka-project#1092](https://github.com/joeyparrish/shaka-packager/issues/1092)) ([5d998fc](5d998fc)) * Allow LIVE UDP WebVTT input ([shaka-project#1349](https://github.com/joeyparrish/shaka-packager/issues/1349)) ([89376d3](89376d3)) * **DASH:** Add Label element. ([shaka-project#1175](https://github.com/joeyparrish/shaka-packager/issues/1175)) ([b1c5a74](b1c5a74)) * **DASH:** Add video transfer characteristics. ([shaka-project#1210](https://github.com/joeyparrish/shaka-packager/issues/1210)) ([8465f5f](8465f5f)) * default text zero bias ([shaka-project#1330](https://github.com/joeyparrish/shaka-packager/issues/1330)) ([2ba67bc](2ba67bc)) * Drop Python 2 support in all scripts ([3e71302](3e71302)) * Generate the entire AV1 codec string when the colr atom is present ([shaka-project#1205](https://github.com/joeyparrish/shaka-packager/issues/1205)) ([cc9a691](cc9a691)), closes [shaka-project#1007](https://github.com/joeyparrish/shaka-packager/issues/1007) * HLS / DASH support forced subtitle ([shaka-project#1020](https://github.com/joeyparrish/shaka-packager/issues/1020)) ([f73ad0d](f73ad0d)) * Move all third-party deps into git submodules ([shaka-project#1083](https://github.com/joeyparrish/shaka-packager/issues/1083)) ([3e71302](3e71302)) * order streams in manifest based on command-line order ([shaka-project#1329](https://github.com/joeyparrish/shaka-packager/issues/1329)) ([aad2a12](aad2a12)) * Parse MPEG-TS PMT ES language and maximum bitrate descriptors ([shaka-project#369](https://github.com/joeyparrish/shaka-packager/issues/369)) ([shaka-project#1311](https://github.com/joeyparrish/shaka-packager/issues/1311)) ([c09eb83](c09eb83)) * Portable, fully-static release executables on Linux ([shaka-project#1351](https://github.com/joeyparrish/shaka-packager/issues/1351)) ([9be7c2b](9be7c2b)) * Replace glog with absl::log, tweak log output and flags ([3e71302](3e71302)) * Replace gyp build system with CMake ([3e71302](3e71302)), closes [shaka-project#1047](https://github.com/joeyparrish/shaka-packager/issues/1047) * Respect the file mode for HttpFiles ([shaka-project#1081](https://github.com/joeyparrish/shaka-packager/issues/1081)) ([3e71302](3e71302)) * This patch adds support for DTS:X Profile 2 audio in MP4 files. ([shaka-project#1303](https://github.com/joeyparrish/shaka-packager/issues/1303)) ([07f780d](07f780d)) * Update all dependencies ([3e71302](3e71302)) * Write colr atom to muxed mp4 ([shaka-project#1261](https://github.com/joeyparrish/shaka-packager/issues/1261)) ([f264bef](f264bef)), closes [shaka-project#1202](https://github.com/joeyparrish/shaka-packager/issues/1202) ### Bug Fixes * Accept 100% when parsing WEBVTT regions ([shaka-project#1006](https://github.com/joeyparrish/shaka-packager/issues/1006)) ([e1b0c7c](e1b0c7c)), closes [shaka-project#1004](https://github.com/joeyparrish/shaka-packager/issues/1004) * Add missing <cstdint> includes ([shaka-project#1306](https://github.com/joeyparrish/shaka-packager/issues/1306)) ([ba5c771](ba5c771)), closes [shaka-project#1305](https://github.com/joeyparrish/shaka-packager/issues/1305) * Add missing limits header ([efbca39](efbca39)) * Always log to stderr by default ([shaka-project#1350](https://github.com/joeyparrish/shaka-packager/issues/1350)) ([35c2f46](35c2f46)), closes [shaka-project#1325](https://github.com/joeyparrish/shaka-packager/issues/1325) * AudioSampleEntry size caluations due to bad merge ([shaka-project#1354](https://github.com/joeyparrish/shaka-packager/issues/1354)) ([615720e](615720e)) * **CI:** Add Mac-arm64 to build matrix ([shaka-project#1359](https://github.com/joeyparrish/shaka-packager/issues/1359)) ([c456ad6](c456ad6)) * **CI:** Add missing Linux arm64 builds to release ([9c033b9](9c033b9)) * dash_roles add role=description for DVS audio per DASH-IF-IOP-v4.3 ([shaka-project#1054](https://github.com/joeyparrish/shaka-packager/issues/1054)) ([dc03952](dc03952)) * Don't close upstream on HttpFile::Flush ([shaka-project#1201](https://github.com/joeyparrish/shaka-packager/issues/1201)) ([53d91cd](53d91cd)), closes [shaka-project#1196](https://github.com/joeyparrish/shaka-packager/issues/1196) * duplicate representation id for TTML when forced ordering is on ([shaka-project#1364](https://github.com/joeyparrish/shaka-packager/issues/1364)) ([0fd815a](0fd815a)), closes [shaka-project#1362](https://github.com/joeyparrish/shaka-packager/issues/1362) * duration formatting and update mpd testdata to reflect new format ([shaka-project#1320](https://github.com/joeyparrish/shaka-packager/issues/1320)) ([56bd823](56bd823)) * Explicitly signal the lack of CEA captions in HLS ([d48bf0f](d48bf0f)), closes [shaka-project#922](https://github.com/joeyparrish/shaka-packager/issues/922) * Fix build errors related to std::numeric_limits ([shaka-project#972](https://github.com/joeyparrish/shaka-packager/issues/972)) ([9996c73](9996c73)) * Fix build on FreeBSD ([shaka-project#1287](https://github.com/joeyparrish/shaka-packager/issues/1287)) ([3e71302](3e71302)) * Fix clang build ([shaka-project#1288](https://github.com/joeyparrish/shaka-packager/issues/1288)) ([3e71302](3e71302)) * Fix crash in static-linked linux builds ([e2d66b3](e2d66b3)), closes [shaka-project#996](https://github.com/joeyparrish/shaka-packager/issues/996) * Fix failure fetching encryption keys ([7392d80](7392d80)) * Fix failure on very short WebVTT files ([shaka-project#1216](https://github.com/joeyparrish/shaka-packager/issues/1216)) ([dab165d](dab165d)), closes [shaka-project#1217](https://github.com/joeyparrish/shaka-packager/issues/1217) * Fix handling of non-interleaved multi track FMP4 files ([shaka-project#1214](https://github.com/joeyparrish/shaka-packager/issues/1214)) ([dcf3225](dcf3225)), closes [shaka-project#1213](https://github.com/joeyparrish/shaka-packager/issues/1213) * Fix issues with `collections.abc` in Python 3.10+ ([shaka-project#1188](https://github.com/joeyparrish/shaka-packager/issues/1188)) ([80e0240](80e0240)), closes [shaka-project#1192](https://github.com/joeyparrish/shaka-packager/issues/1192) * Fix local files with UTF8 names ([shaka-project#1246](https://github.com/joeyparrish/shaka-packager/issues/1246)) ([3e71302](3e71302)) * Fix missing newline at the end of usage ([shaka-project#1352](https://github.com/joeyparrish/shaka-packager/issues/1352)) ([6276584](6276584)) * Fix Python 3.10+ compatibility in scripts ([3e71302](3e71302)) * Fix tags in official Docker images and binaries ([73a85ce](73a85ce)), closes [shaka-project#1366](https://github.com/joeyparrish/shaka-packager/issues/1366) * Fix uninitialized value found by Valgrind ([shaka-project#1336](https://github.com/joeyparrish/shaka-packager/issues/1336)) ([7ef5167](7ef5167)) * Fix various build issues on macOS ([3e71302](3e71302)) * Fix various build issues on Windows ([3e71302](3e71302)) * hls, set the DEFAULT explicitly to NO. Supports native HLS players. ([shaka-project#1170](https://github.com/joeyparrish/shaka-packager/issues/1170)) ([1ab6818](1ab6818)), closes [shaka-project#1169](https://github.com/joeyparrish/shaka-packager/issues/1169) * http_file: Close upload cache on task exit ([shaka-project#1348](https://github.com/joeyparrish/shaka-packager/issues/1348)) ([6acdcc3](6acdcc3)), closes [shaka-project#1347](https://github.com/joeyparrish/shaka-packager/issues/1347) * Indexing `bytes` produces `int` on python3 for `pssh-box.py` ([shaka-project#1228](https://github.com/joeyparrish/shaka-packager/issues/1228)) ([d9d3c7f](d9d3c7f)), closes [shaka-project#1227](https://github.com/joeyparrish/shaka-packager/issues/1227) * Low Latency DASH: include the "availabilityTimeComplete=false" attribute ([shaka-project#1198](https://github.com/joeyparrish/shaka-packager/issues/1198)) ([d687ad1](d687ad1)) * misleading log output when HLS target duration updates (fixes [shaka-project#969](https://github.com/joeyparrish/shaka-packager/issues/969)) ([shaka-project#971](https://github.com/joeyparrish/shaka-packager/issues/971)) ([f7b3986](f7b3986)) * **MP4:** Add compatible brand dby1 for Dolby content. ([shaka-project#1211](https://github.com/joeyparrish/shaka-packager/issues/1211)) ([520926c](520926c)) * Parse one frame mpeg-ts video ([shaka-project#1015](https://github.com/joeyparrish/shaka-packager/issues/1015)) ([b221aa9](b221aa9)), closes [shaka-project#1013](https://github.com/joeyparrish/shaka-packager/issues/1013) * preserve case for stream descriptors ([shaka-project#1321](https://github.com/joeyparrish/shaka-packager/issues/1321)) ([5d44368](5d44368)) * Prevent crash in GetEarliestTimestamp() if periods are empty ([shaka-project#1173](https://github.com/joeyparrish/shaka-packager/issues/1173)) ([d6f28d4](d6f28d4)), closes [shaka-project#1172](https://github.com/joeyparrish/shaka-packager/issues/1172) * PTS diverge DTS when DTS close to 2pow33 and PTS more than 0 ([shaka-project#1050](https://github.com/joeyparrish/shaka-packager/issues/1050)) ([ab8ab12](ab8ab12)), closes [shaka-project#1049](https://github.com/joeyparrish/shaka-packager/issues/1049) * remove extra block assumptions in mbedtls integration ([shaka-project#1323](https://github.com/joeyparrish/shaka-packager/issues/1323)) ([db59ad5](db59ad5)), closes [shaka-project#1316](https://github.com/joeyparrish/shaka-packager/issues/1316) * Restore support for legacy FairPlay system ID ([shaka-project#1357](https://github.com/joeyparrish/shaka-packager/issues/1357)) ([4d22e99](4d22e99)) * Roll back depot_tools, bypass vpython ([shaka-project#1045](https://github.com/joeyparrish/shaka-packager/issues/1045)) ([3fd538a](3fd538a)), closes [shaka-project#1023](https://github.com/joeyparrish/shaka-packager/issues/1023) * set array_completeness in HEVCDecoderConfigurationRecord correctly ([shaka-project#975](https://github.com/joeyparrish/shaka-packager/issues/975)) ([270888a](270888a)) * TTML generator timestamp millisecond formatting ([shaka-project#1179](https://github.com/joeyparrish/shaka-packager/issues/1179)) ([494769c](494769c)), closes [shaka-project#1180](https://github.com/joeyparrish/shaka-packager/issues/1180) * Update golden files for ttml tests and failing hls unit tests. ([shaka-project#1226](https://github.com/joeyparrish/shaka-packager/issues/1226)) ([ac47e52](ac47e52)) * Update to use official FairPlay UUID. ([shaka-project#1281](https://github.com/joeyparrish/shaka-packager/issues/1281)) ([ac59b9e](ac59b9e)) * use a better estimate of frame rate for cases with very short first sample durations ([shaka-project#838](https://github.com/joeyparrish/shaka-packager/issues/838)) ([5644041](5644041)) * webvtt single cue do not fail on EOS ([shaka-project#1061](https://github.com/joeyparrish/shaka-packager/issues/1061)) ([b9d477b](b9d477b)), closes [shaka-project#1018](https://github.com/joeyparrish/shaka-packager/issues/1018) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Hi All,
When input is MPEG TS over UDP, the language information for audio streams could be available in PMT.
Is there a way to use this information right now?
Regards
The text was updated successfully, but these errors were encountered: