From 8c4801a6b25d637f9b56e61b0b39d66b8208dc0a Mon Sep 17 00:00:00 2001 From: Miguel Freitas Date: Mon, 18 Oct 2004 19:08:05 +0000 Subject: patch by Gert Vervoort to handle AC3 audio when the sync word (0x0b 0x77) is not aligned with the PES packet. CVS patchset: 7048 CVS date: 2004/10/18 19:08:05 --- src/demuxers/demux_ts.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index f95d39e5a..2be2e900c 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: demux_ts.c,v 1.106 2004/09/02 14:27:56 hadess Exp $ + * $Id: demux_ts.c,v 1.107 2004/10/18 19:08:05 miguelfreitas Exp $ * * Demultiplexer for MPEG2 Transport Streams. * @@ -1166,10 +1166,19 @@ static void demux_ts_parse_pmt (demux_ts_t *this, case ISO_13818_PES_PRIVATE: for (i = 5; i < coded_length; i += stream[i+1] + 2) { if ((stream[i] == 0x6a) && (this->audioPid == INVALID_PID)) { + uint32_t format_identifier=0; #ifdef TS_PMT_LOG printf ("demux_ts: PMT AC3 audio pid 0x%.4x\n", pid); #endif - demux_ts_pes_new(this, this->media_num, pid, this->audio_fifo,stream[0]); + demux_ts_get_reg_desc(this, &format_identifier, + stream + 5, stream_info_length); + if (format_identifier == 0x41432d33) /* AC-3 */ + demux_ts_pes_new(this, this->media_num, pid, + this->audio_fifo, 0x81); + else + demux_ts_pes_new(this, this->media_num, pid, + this->audio_fifo,stream[0]); + this->audioPid = pid; this->audioMedia = this->media_num; demux_ts_get_lang_desc(this, this->audioLang, -- cgit v1.2.3