From caf34f4e6299fdd7e750d40f435ea9661942ee38 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Sat, 8 Oct 2011 15:09:52 +0200 Subject: [PATCH] MPEG TS: More support for different ways of storing EAC3 streams If the PMT PID info stream type is 0x06 (PES private) and the ES info tag is 0x7A then it is EAC3 (0x6A was already supported as normal AC3). --- ChangeLog | 9 +++++++-- src/input/r_mpeg_ts.cpp | 1 + tests/results.txt | 1 + .../test-303mpeg_ts_eac3_pmt_descriptor_tag_0x7a.rb | 13 +++++++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 tests/test-303mpeg_ts_eac3_pmt_descriptor_tag_0x7a.rb diff --git a/ChangeLog b/ChangeLog index 61bc394c1..b37d5f021 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,12 @@ +2011-10-08 Moritz Bunkus + + * mkvmerge: enhancement: Implemented support for yet another way + of storing EAC3 in MPEG transport streams. + 2011-10-05 Moritz Bunkus - * mkvinfo.cpp: bug fix: Track information was not reset when - opening more than one file in the GUI. + * mkvinfo: bug fix: Track information was not reset when opening + more than one file in the GUI. 2011-10-03 Moritz Bunkus diff --git a/src/input/r_mpeg_ts.cpp b/src/input/r_mpeg_ts.cpp index b7eff2a71..c1f0bb5ab 100644 --- a/src/input/r_mpeg_ts.cpp +++ b/src/input/r_mpeg_ts.cpp @@ -736,6 +736,7 @@ mpeg_ts_reader_c::parse_pmt(unsigned char *pmt) { } break; case 0x6A: // AC3 descriptor + case 0x7A: // EAC3 descriptor if (pmt_pid_info->stream_type == ISO_13818_PES_PRIVATE) { // PES containig private data track->type = ES_AUDIO_TYPE; track->fourcc = FOURCC('A', 'C', '3', ' '); diff --git a/tests/results.txt b/tests/results.txt index 14e7f5637..45cde8f9e 100644 --- a/tests/results.txt +++ b/tests/results.txt @@ -149,3 +149,4 @@ T_299ts_ghost_entries_in_pmt:5716a012cd61366198ec92772fd216ea:passed:20110917-00 T_300ts_dts_duplicate_timestamps:20dc3a1cefa6b222f637d50a8e5009b0:passed:20110918-154508:1.230918853 T_301ts_pgssub:288073767e64ed273d1c7f528c673d25:passed:20110918-154732:1.237027466 T_302pat_pmt_only_once:073d3fe1f12db53521285ea4b5df8aed:passed:20110927-222121:0.240361843 +T_303mpeg_ts_eac3_pmt_descriptor_tag_0x7a:5647f48b42ebb93f43d70523e08df7eb:passed:20111008-150823:2.078023996 diff --git a/tests/test-303mpeg_ts_eac3_pmt_descriptor_tag_0x7a.rb b/tests/test-303mpeg_ts_eac3_pmt_descriptor_tag_0x7a.rb new file mode 100644 index 000000000..a51cd809d --- /dev/null +++ b/tests/test-303mpeg_ts_eac3_pmt_descriptor_tag_0x7a.rb @@ -0,0 +1,13 @@ +#!/usr/bin/ruby -w + +class T_303mpeg_ts_eac3_pmt_descriptor_tag_0x7a < Test + def description + "mkvmerge / MPEG TS with EAC3 stored with PMT descriptor tag 0x7a" + end + + def run + merge "data/ts/eac3_pmt_descriptor_tag_0x7a.ts" + hash_tmp + end +end +