Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] AW: AC3 over Soundcard (live and replay) (Was: AC3 5.1 - can someone "fix" -a in VDR 1.1.x - Please :)
Hallo Werner,
your plugin description sounds great. But - i can't install (better:
compile) it on my system (Suse 8.1, gcc 3.2, alsa 0.9.0rc6, cmi8738 on
Board, vdr 1.1.22).
I've patched both, alsa and vdr without problems (the first alsa-patch
in dlmisc.c was alredy applied). When I compile plugins, I get the
following error :
make[1]: Entering directory
`/usr/local/src/vdr-1.1.22/PLUGINS/src/bitstreamout-0.42h'
cpp0: warning: changing search order for system directory "/usr/include"
cpp0: warning: as it has already been specified as a non-system
directory
cpp0: warning: changing search order for system directory "/usr/include"
cpp0: warning: as it has already been specified as a non-system
directory
cpp0: warning: changing search order for system directory "/usr/include"
cpp0: warning: as it has already been specified as a non-system
directory
cpp0: warning: changing search order for system directory "/usr/include"
cpp0: warning: as it has already been specified as a non-system
directory
cpp0: warning: changing search order for system directory "/usr/include"
cpp0: warning: as it has already been specified as a non-system
directory
cpp0: warning: changing search order for system directory "/usr/include"
cpp0: warning: as it has already been specified as a non-system
directory
make[1]: Leaving directory
`/usr/local/src/vdr-1.1.22/PLUGINS/src/bitstreamout-0.42h'
make[1]: Entering directory
`/usr/local/src/vdr-1.1.22/PLUGINS/src/bitstreamout-0.42h'
bitstreamout Version 0.42h
g++ -O2 -Wall -Woverloaded-virtual -fPIC -DPIC -c
-DPLUGIN_NAME_I18N='"bitstreamout"' -I../../../include
-I../../../../DVB/include -I/usr/include bitstreamout.c
cc1plus: warning: changing search order for system directory
"/usr/include"
cc1plus: warning: as it has already been specified as a non-system
directory
g++ -O2 -Wall -Woverloaded-virtual -fPIC -DPIC -c
-DPLUGIN_NAME_I18N='"bitstreamout"' -I../../../include
-I../../../../DVB/include -I/usr/include iec60958.c
cc1plus: warning: changing search order for system directory
"/usr/include"
cc1plus: warning: as it has already been specified as a non-system
directory
In file included from ../../../include/vdr/tools.h:16,
from iec60958.h:32,
from iec60958.c:23:
/usr/include/stdio.h:320: parse error before `throw'
make[1]: *** [iec60958.o] Error 1
make[1]: Leaving directory
`/usr/local/src/vdr-1.1.22/PLUGINS/src/bitstreamout-0.42h'
Where is my fault ?
...Hagen
> -----Ursprüngliche Nachricht-----
> Von: vdr-bounce@linuxtv.org [mailto:vdr-bounce@linuxtv.org]
> Im Auftrag von Dr. Werner Fink
> Gesendet: Dienstag, 28. Januar 2003 15:05
> An: vdr@linuxtv.org
> Cc: Klaus Schmidinger
> Betreff: [vdr] AC3 over Soundcard (live and replay) (Was: AC3
> 5.1 - can someone "fix" -a in VDR 1.1.x - Please :)
>
>
>
> On Tue, Jan 28, 2003 at 12:32:37PM +0100, Christian Jacobsen wrote:
> > Hallo Werner,
> >
> > do you have time to write another patch - that would be great :)
> > I'll be delighted to test that :)
> >
> > Hallo @ll,
> >
> > is Anybody else working on this ?
> >
> > Greetings
> > Christian
>
> Hi,
>
> I've done a patch for VDR 1.1.20 and 1.1.22 which is
> part of the tar ball of my bitstreamout plugin for VDR.
>
> The current version of the plugin can be found at
>
> http://bitstreamout.sourceforge.net/
>
> or
>
> https://sourceforge.net/projects/bitstreamout/
>
>
> @Klaus: Please could you apply the patch for 1.1.22 (let's
> see if this can be attached to this mail). The patch is
> _required_ for this plugin because without that patch the
> sound card stays open in none audio mode after first usage
> and the audio/video synchrony is missed after Pause, FF/FB,
> and SF/SB. This patch also speeds up the zeroing of unneeded
> audio data due usage of memset(3).
>
> Short explanation to the plugin: A sound card supported by
> ALSA with S/P-DIF out is required. If your sound card has a
> S/P-DIF in with loop through to the S/P-DIF out you may
> connect the S/P-DIF out of the DVB card to it. If the sound
> card supports "Slave clock" on this S/P-DIF in the activate
> it to make the sound card audio synchrony with that of the
> DVB card. This avoids under or overruns of the buffer of the
> sound card (whereas the plugin can handle underruns). If the
> S/P-DIF out of the DVB card is looped through the sound card
> a mute script can be used for muting all audio (see example
> mute.sh for C-Media PCI CMI8738 based sound cards).
>
> This plugin doesn't uses the S/P-DIF out of DVB card which
> reduces the load of the ARM ... which should increase the
> stability of the ARM ;^) On the other hand, without the last
> video PTS the plugin can't not guarantee as it will be done
> with AC3 over DVB.
>
> For more explanation see the manual page vdr-bitstreamout.5
> and the file PROBLEMS. E.g. for older ALSA libs a one line
> change in plugin.c of VDR is required due to a bug in the
> version control of dlopen usage of the ALSA lib.
>
>
> Werner
>
>
> -- Attached file included as plaintext by Listar --
> -- Desc: vdr-1.1.22-audio.dif
>
> --- device.c
> +++ device.c Tue Jan 28 14:14:26 2003
> @@ -473,10 +473,12 @@
>
> void cDevice::Play(void)
> {
> + Audios.MuteAudio(mute); // Play Audio if not mute
> }
>
> void cDevice::Freeze(void)
> {
> + Audios.MuteAudio(true); // Freezed pictures do not have audio
> }
>
> void cDevice::Mute(void)
> @@ -515,6 +517,7 @@
> player = NULL;
> SetPlayMode(pmNone);
> playerDetached = true;
> + Audios.ClearAudio();
> }
> }
>
> --- dvbdevice.c
> +++ dvbdevice.c Tue Jan 28 14:14:26 2003
> @@ -806,6 +806,7 @@
> CHECK(ioctl(fd_video, VIDEO_CLEAR_BUFFER));
> if (fd_audio >= 0)
> CHECK(ioctl(fd_audio, AUDIO_CLEAR_BUFFER));
> + cDevice::Clear();
> }
>
> void cDvbDevice::Play(void)
> @@ -820,6 +821,7 @@
> if (fd_video >= 0)
> CHECK(ioctl(fd_video, VIDEO_CONTINUE));
> }
> + cDevice::Play();
> }
>
> void cDvbDevice::Freeze(void)
> @@ -834,6 +836,7 @@
> if (fd_video >= 0)
> CHECK(ioctl(fd_video, VIDEO_FREEZE));
> }
> + cDevice::Freeze();
> }
>
> void cDvbDevice::Mute(void)
> @@ -842,6 +845,7 @@
> CHECK(ioctl(fd_audio, AUDIO_SET_AV_SYNC, false));
> CHECK(ioctl(fd_audio, AUDIO_SET_MUTE, true));
> }
> + cDevice::Mute();
> }
>
> void cDvbDevice::StillPicture(const uchar *Data, int Length)
> --- dvbplayer.c
> +++ dvbplayer.c Tue Jan 28 14:23:39 2003
> @@ -324,11 +324,8 @@
> case 0xC0 ... 0xC1: // audio
> if (c == 0xC1)
> canToggleAudioTrack = true;
> - if (!Except || c != Except) {
> - int n = l;
> - for (int j = i; j < Length && n--; j++)
> - b[j] = 0x00;
> - }
> + if (!Except || c != Except)
> + memset(&b[i], 0x00, min(l, Length-i));
> break;
> case 0xE0 ... 0xEF: // video
> break;
> @@ -478,8 +475,6 @@
> }
> int r =
> nonBlockingFileReader->Read(replayFile, b, Length);
> if (r > 0) {
> - if (AudioTrack >= 0)
> - StripAudioPackets(b, r, AudioTrack);
> readFrame = new cFrame(b, -r, ftUnknown,
> readIndex); // hands over b to the ringBuffer
> b = NULL;
> }
> @@ -517,6 +512,8 @@
> pc = playFrame->Count();
> }
> if (p) {
> + if (AudioTrack >= 0)
> + StripAudioPackets(playFrame->StripData(), pc,
> + AudioTrack);
> int w = PlayVideo(p, pc);
> if (w > 0) {
> p += w;
> --- ringbuffer.h
> +++ ringbuffer.h Tue Jan 28 14:14:26 2003
> @@ -84,6 +84,7 @@
> ///< Data. Otherwise it will allocate Count bytes of
> memory and copy Data.
> ~cFrame();
> const uchar *Data(void) const { return data; }
> + uchar *StripData(void) const { return data; }
> int Count(void) const { return count; }
> eFrameType Type(void) const { return type; }
> int Index(void) const { return index; }
>
>
>
> --
> Info:
> To unsubscribe send a mail to listar@linuxtv.org with
> "unsubscribe vdr" as subject.
>
>
--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe vdr" as subject.
Home |
Main Index |
Thread Index