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