summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2004-10-18 19:08:05 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2004-10-18 19:08:05 +0000
commit8c4801a6b25d637f9b56e61b0b39d66b8208dc0a (patch)
treee6950569edfaf1ac8f3f431b28b8b1c2db3a9e28
parent2fa65990a464d5292187b66cde870d9c9018d7df (diff)
downloadxine-lib-8c4801a6b25d637f9b56e61b0b39d66b8208dc0a.tar.gz
xine-lib-8c4801a6b25d637f9b56e61b0b39d66b8208dc0a.tar.bz2
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
-rw-r--r--src/demuxers/demux_ts.c13
1 files changed, 11 insertions, 2 deletions
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,