Hi,
I've uploaded the new verion 0.80 of the bitstreamout plugin.
From the changelog from this morning:
- Add nonlinear mp2 loop through S/P-DIF similar to AC3/DTS - Use a frame based mp2 parser for libmad with buffer gard - Make PCM initial wait frames configurable - Remove Z680 option - Remove MP2offset - Add a workaround for broken sub audio header in PS1 payloads - Be smarter in AV synchronization, wait on stable STC value - Make xlist find plain AC3 in PS1 payload even from ORF
A note about nonlinear mp2 loop through also from the manual page:
[...]
Mp2Out (Round,Dither,Nonlinear)
Switch for the configuration how to use the MP2 Audio input stream from VDR at replaying a recording or during live viewing from DVB card.
The two cases Round and Dither are switches for the resulting linear PCM which its self will be obtained by decoding the MP2 Audio input stream with the help of the LibMad. Dithering leads to a much better sound quality then Rounding it does.
The Nonlinear option provides an alternative way how to put MP2 Audio data forward to the A/V receiver. With this the MP2 Audio will not be decoded but send with a simliar method as done for AC-3 or DTS input streams. If and only if your A/V receiver supports the decoding of MP2 Audio stream you may choose this option. But note that for daily use your A/V receiver should support automatic detection of MP2 Audio. Or you have to con- figure your A/V receiver by hand for every change between AC-3, DTS and MP2 Audio input sources.
[...]
A further note from the manual page about the PCM initial wait frames:
[...]
PCMinitial [1...12]
The numbers of initial PCM wait frames to reset the parser and decoder of your A/V receiver at LiveTV. As larger the number as more your A/V receiver can synchronize but only up to the maxi- mal filling grade of its input buffer. If the value is to large you will hear a large silent pause. You should then decrease the value. A good value for, e.g. Pioneer VSA-E07 is 6. Small val- ues may cause an underrun of the hardware buffer of your sound- card, which can be heard as a short staccato or reset (see Vari- ableIO) initial after a channel switch.
[...]
Werner
On Tue, 15 Mar 2005 19:01:45 +0100, Dr. Werner Fink wrote
Hi,
I've uploaded the new verion 0.80 of the bitstreamout plugin.
Glad to announce that my Sony STR-DB830 QS does work together with 0.80. No more DD detection without sound. Something magic with the bugfixes has made the receiver to finally get it's grips togheter and work.
vdr-1.3.22 + bso-0.80 = Ok!
Slight A/V delay though. Will keep on tweeking tonight.
@Werner
Thanks for a great plugin and for your patience :)
@Roland Praml
Thanks for your suggestions and help! :)
/Mel
vdr-1.3.22 + bso-0.80 = Ok!
Slight A/V delay though. Will keep on tweeking tonight.
I've updated to 0.80, too. Now it works with newer recordings.
Just for my understanding: The A/V problem exists because the soundcard clock doesn't know anything about the DVB-clock respectively timestamp and there's no way to get the current video-timestamp which is displayed at the moment. So the only way in my eyes is to use the spdif of the DVB-card for perfect A/V-sync.
There are different ways to transfer AC3 over spdif: - a real AC3 stream (like DVD playes do) - AC3 embedded in PCM (like AC3overDVB and bso)
bso can set the nonaudio-bit, AC3overDVB can't.
Why? is this a hardware limitation? Can it theoretically worked around by some soldering etc?
Long time ago there were so called 'copy-bit killer' Can I set the nonaudio with a similar circuit.
As other mentioned this should also be done by a soundcard by reading from spdif-in, set the bit, and writing to spdif-out
(it's definitely a bug in the sony-firmware why my receiver can't play AC3 over DVB. I've a AC3 and DTS CD, the surround sound is wrapped in PCM-frames. DTS is played fine, AC3 not. The behaviour is the same as if replaying AC3 over DVB. BUT if I skip quickly from an DTS to an AC3 track the receiver sometimes "hangs" on DTS but plays AC3 WITH SOUND)
@Roland Praml
Thanks for your suggestions and help! :)
no problem ;-)
Roland
On Wed, Mar 16, 2005 at 01:39:44PM +0100, Roland Praml wrote:
vdr-1.3.22 + bso-0.80 = Ok!
Slight A/V delay though. Will keep on tweeking tonight.
I've updated to 0.80, too. Now it works with newer recordings.
Just for my understanding: The A/V problem exists because the soundcard clock doesn't know anything about the DVB-clock respectively timestamp and there's no way to get the current video-timestamp which is displayed at the moment. So the only way in my eyes is to use the spdif of the DVB-card for perfect A/V-sync.
There are different ways to transfer AC3 over spdif:
- a real AC3 stream (like DVD playes do)
- AC3 embedded in PCM (like AC3overDVB and bso)
There are two methods: a 32bit method which is a transport layer similar to S/P-DIF but only for AC3 (you need HW access to the S/P-DIF interface of the soundcard) and the other method is 16bit using a nonlinear PCM stream accordingly to ISO/IEC61937. The later one requrires in the 32bit S/P-DIF transport layer the non-audio status bit. Nevertheless many AV receivers do detected _and_ handle the nonlinear PCM stream within the S/P-DIF transport layer
-> http://www.epanorama.net/documents/audio/spdif.html
bso can set the nonaudio-bit, AC3overDVB can't.
Why? is this a hardware limitation? Can it theoretically worked around by some soldering etc?
Ask TI, I don't know.
Long time ago there were so called 'copy-bit killer' Can I set the nonaudio with a similar circuit.
Depends if this circuit works on the payload of the 32bit S/P-DIF transport layer or on the status bits of the transport layer its self ... the later one should be done.
As other mentioned this should also be done by a soundcard by reading from spdif-in, set the bit, and writing to spdif-out
(it's definitely a bug in the sony-firmware why my receiver can't play AC3 over DVB. I've a AC3 and DTS CD, the surround sound is wrapped in PCM-frames. DTS is played fine, AC3 not. The behaviour is the same as if replaying AC3 over DVB. BUT if I skip quickly from an DTS to an AC3 track the receiver sometimes "hangs" on DTS but plays AC3 WITH SOUND)
I don't think its a bug ... it is not specified to play 16 bit nonlinear PCM without marking the 32bit S/P-DIF transport layer as nonlinear. For all the others which can handle this ... it's a nice feature.
Werner
On Wed, 16 Mar 2005 13:39:44 +0100, Roland Praml wrote
Long time ago there were so called 'copy-bit killer' Can I set the nonaudio with a similar circuit.
Yes you can, it's a similar control bit. It was in an Elektor magazine a few years ago. Maybe you can modify the circuit. It was all done in hardware because of the high rate.
As other mentioned this should also be done by a soundcard by reading from spdif-in, set the bit, and writing to spdif-out
I was thinking the same but it seems that a dsPIC is the only ( reasonable ) uController that can work in that high speed area. ( Unless the soundcard is equipped with such a feature. )
/Mel
On Wed, 2005-03-16 at 19:01 +0200, Per Mellander wrote:
On Wed, 16 Mar 2005 13:39:44 +0100, Roland Praml wrote
Long time ago there were so called 'copy-bit killer' Can I set the nonaudio with a similar circuit.
Yes you can, it's a similar control bit. It was in an Elektor magazine a few years ago. Maybe you can modify the circuit. It was all done in hardware because of the high rate.
Just out of curiosity... what (maximum) data rates are we talking about? That Elektor project was published some years ago, but now there are some small uControllers (already having serial interfaces but I have no idea whether they could be directly used for receiving the stream) in the 16MHz/16MIPS - 20MHz/20MIPS region... that's not enough? Not that much logic should be needed to set this bit, or am I wrong?
However... looks like an interesting project...
Bernhard
On Wed, Mar 16, 2005 at 07:01:51PM +0200, Per Mellander wrote:
On Wed, 16 Mar 2005 13:39:44 +0100, Roland Praml wrote
Long time ago there were so called 'copy-bit killer' Can I set the nonaudio with a similar circuit.
Yes you can, it's a similar control bit. It was in an Elektor magazine a few years ago. Maybe you can modify the circuit. It was all done in hardware because of the high rate.
As other mentioned this should also be done by a soundcard by reading from spdif-in, set the bit, and writing to spdif-out
I was thinking the same but it seems that a dsPIC is the only ( reasonable ) uController that can work in that high speed area. ( Unless the soundcard is equipped with such a feature. )
The speed rate is
32 bit word per 16 bit PCM sample multiplied with 2 for two channels multiplied with 2 for the biphase-mark-code multiplied with e.g. 48kHz
which is 6.144MHz
... now you have to read the preamble of each 32 bit word to catch the starting one and rise the status bit of the second and third (aka second bit for the second channel) status bit and maybe the parity bit is needed. And this should be switchable by the DVB driver or firmware via a not used pin of the ARM.
Werner