Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] Re: [Mplayer-dvb] DTS Sound
Stefan.Hagendorn@lindy.cc wrote:
> ----- Forwarded by Stefan Hagendorn/DELCC/LINDY on 24.03.2002 22:50 -----
>
>
> <rolf@max.lui.uni-tuebingen.de>
> Sent by: mplayer-dvb-admin@mplayer.dev.hu
[...]
> Acording to http://www.dvddemystified.com/dvdfaq.html#1.32
>
> DTS Sound should be absolutly easy to playback
>
> "since the DTS data is encapsulated into standard PCM tracks that are
> passed untouched to the digital audio output."
>
> This is the same way AC3 Digital Out is done!
so, lets see if it's really *that* easy. The patch below will send all
DTS frames directly to the IEC60958 encoder. Don't forget to compile
with AC3=1. You might also have to play arround and adjust the additional
headerlength - see (????? header) below.
Andreas
===== dvd.c 1.9 vs edited =====
--- 1.9/dvd.c Sun Mar 24 20:11:09 2002
+++ edited/dvd.c Sun Mar 24 23:43:24 2002
@@ -1182,6 +1182,15 @@
datalen -= 13; // 3 (mandatory header) + 6 (PS header) + 4 (AC3 header) = 13
a52dec.decode(data, data+datalen, PTSflags, PTSdata);
break;
+ case aDTS:
+ if (dolbyDev)
+ putFrame(sector, r, ftDolby, ppts);
+#ifdef AC3OUT
+ data += 4;
+ datalen -= 13; // 3 (mandatory header) + 6 (PS header) + 4 (????? header) = 13
+ a52dec.sendIEC60958(data, datalen, PTSflags, PTSdata);
+#endif
+ break;
case aLPCM:
// write(audio, sector+14 , sector[19]+(sector[18]<<8)+6);
putFrame(sector, GetPacketLength(sector), ftAudio, ppts);
===== ca52.h 1.8 vs edited =====
--- 1.8/ca52.h Fri Mar 1 22:52:16 2002
+++ edited/ca52.h Sun Mar 24 23:42:05 2002
@@ -41,10 +41,10 @@
int index = -1);
int convertSample (int flags, a52_state_t * _state, uint8_t sendPTS, uint8_t *PTSdata);
void sendIEC60958pause(int type);
- void sendIEC60958(uint8_t *buf, int length, uint8_t PTSflags, uint8_t *PTSdata, int index = -1);
public:
cA52decoder(cAudioCallback *ac);
void decode(uint8_t * start, uint8_t * end, uint8_t PTSflags, uint8_t *PTSdata, int index = -1);
+ void sendIEC60958(uint8_t *buf, int length, uint8_t PTSflags, uint8_t *PTSdata, int index = -1);
void clear();
};
Home |
Main Index |
Thread Index