Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: AW: Re: VDR and DVD with pause -> noise corrupt
Andreas Vitting wrote:
>
> Hi,
> that's not all!! To the point we get the data to cDVDplayBuffer::handleAC3
> all the data is ok (my ac3 decoder works also after a pause/pause or
> pause/play very well). So the data stream is not out of sync during the
> pause (a little bit delayed, not more). So the same data is send to
> "ac3dec_decode_data" - and then something happens ?? After the pause button
> (and then pressing pause or play) the sound is (only for ac3dec) chirpy and
> corrupt (also other people reported this).
> I'm a little bit confused, because the acdec needs also native ac3 sound and
> nothing else !!
>
> Bye
> Andreas
>
> -----Ursprüngliche Nachricht-----
> Von: linux-dvb-bounce@linuxtv.org
> [mailto:linux-dvb-bounce@linuxtv.org]Im Auftrag von Andreas Schultz
> Gesendet: Montag, 13. August 2001 20:53
> An: Andreas Vitting
> Cc: Linux-Dvb; Klaus Schmidinger
> Betreff: [linux-dvb] Re: VDR and DVD with pause -> noise corrupt
>
> Hi,
>
> Andreas Vitting wrote:
> > if you change in dvbapi.c
> >
> > void cPlayBuffer::Pause(void)
> > {
> > paused = ! paused;
> > --- bool empty = fastForw......
> > +++ bool empty = fastForward || fastRewind || !paused; +++
> >
> > and
> >
> > void cPlayBuffer::Play(void)
> > {
> > if (fastForward || fastRewind || paused) {
> > --- bool empty = !paused || fastRe....
> > +++ bool empty = !paused || fastRewind || (paused && fastForward ||
> > !fastRewind); +++
> >
> > then the pause->pause and pause->play buttons are working together with
> > ac3dec.
> >
> > But why ?? Why it's working if i clear the audio buffer ??
>
> Because then no audio data is feed to the card anymore, the real problem
> has somewhat to do with the audio muting. If you apply the patch, the
> noise will go away.
>
> --- vdr-0.91/dvbapi.c Sun Aug 12 17:09:42 2001
> +++ vdr-devel-0.91/dvbapi.c Sun Aug 12 22:54:31 2001
> @@ -752,7 +752,7 @@
> Empty(true);
> fastForward = fastRewind = false;
> CHECK(ioctl(videoDev, paused ? VIDEO_FREEZE : VIDEO_CONTINUE));
> - CHECK(ioctl(audioDev, AUDIO_SET_MUTE, paused));
> + //CHECK(ioctl(audioDev, AUDIO_SET_MUTE, paused));
> still = false;
> if (empty)
> Empty(false);
> @@ -767,7 +767,7 @@
> still = false;
> CHECK(ioctl(videoDev, paused ? VIDEO_CONTINUE : VIDEO_PLAY));
> CHECK(ioctl(audioDev, AUDIO_SET_AV_SYNC, true));
> - CHECK(ioctl(audioDev, AUDIO_SET_MUTE, false));
> + // CHECK(ioctl(audioDev, AUDIO_SET_MUTE, false));
> if (empty)
> Empty(false);
> fastForward = fastRewind = paused = false;
>
> My guess is, that the audio frames get out of sync because they contain
> not time stamp. Maybe frames like that are not allowed or it's a driver bug?
>
> Klaus: Is the muting really needed for normal VDR playback? I can't hear
> a difference with or without it.
Looks like this actually isn't necessary - and leaving it out does fix
the chirping sound after Pause/Play.
If the audio frames don't contain a PTS, it's no wonder they get out of sync
(even in normal replay video and audio gets out of sync after some time).
Is there a way to have ac3dec generate the necessary PTS for the audio frames?
The original Dolby Digital frames that ac3dec uses to generate the "normal"
audio frames must, I believe, contain a PTS, don't they?
Klaus
--
_______________________________________________________________
Klaus Schmidinger Phone: +49-8635-6989-10
CadSoft Computer GmbH Fax: +49-8635-6989-40
Hofmark 2 Email: kls@cadsoft.de
D-84568 Pleiskirchen, Germany URL: www.cadsoft.de
_______________________________________________________________
--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index