Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] Re: [PATCH] DXR3 Plugin v.0.2.0 External Player Mode
On Wed, 11 Jun 2003 chef@andre-neumann.de wrote:
> i installed the latest DXR3 Plugin yesterday, im using it as a primary
> device without a DVB card.
>
> I noticed a but in the DXR3 Plugin when calling the MPlayer Plugin and
> then stopping the MPlayer Plugin. VDR then crashes.
Same thing here. Most annoying. ;) The "patch" below stops the crash, but
causes static on digital output after returning from mplayer. VDR is
configured to use digital output and the mplayer I ran also used the
digital output.
-jake
> Im not a programmer, but i was able to fix this. Here is what i have done:
>
> In dxr3abstractiondevice.c line 650 and 652:
>
> Before my patch:
>
> void cDxr3AbsDevice::ExternalReopenDevices(void) {
> Lock();
>
> if (bExternalReleased) {
> m_fdControl = open(dxr3DeviceName( "" ).c_str(), O_WRONLY |
> O_SYNC); assert(m_fdAudio >= 0);
> m_fdVideo = open(dxr3DeviceName( "_mv" ).c_str(), O_WRONLY |
> O_SYNC); assert(m_fdVideo >= 0);
> m_fdAudio = open(dxr3DeviceName( "_ma" ).c_str(), O_WRONLY |
> O_SYNC); assert(m_fdAudio >= 0);
> m_fdSpu = open(dxr3DeviceName( "_sp" ).c_str(), O_WRONLY |
> O_SYNC); assert(m_fdSpu >= 0);
>
> if (m_fdControl < 0 || m_fdVideo < 0 || m_fdAudio < 0 || m_fdSpu
> <0) {
> ExternalReleaseDevices();
> } else {
> m_pClock = new cDxr3SysClock(m_fdControl, m_fdVideo, m_fdSpu);
> SetChannelCount(1);
> bExternalReleased = false;
> }
> ReconfigureDevice();
> m_extSpuInterface.Clear();
> }
>
> Unlock();
> }
>
> AFTER my patch:
>
> void cDxr3AbsDevice::ExternalReopenDevices(void) {
> Lock();
>
> if (bExternalReleased) {
> m_fdControl = open(dxr3DeviceName( "" ).c_str(), O_WRONLY |
> O_SYNC); // FIX assert(m_fdAudio >= 0);
> m_fdVideo = open(dxr3DeviceName( "_mv" ).c_str(), O_WRONLY |
> O_SYNC); assert(m_fdVideo >= 0);
> m_fdAudio = open(dxr3DeviceName( "_ma" ).c_str(), O_WRONLY |
> O_SYNC); // FIX assert(m_fdAudio >= 0);
> m_fdSpu = open(dxr3DeviceName( "_sp" ).c_str(), O_WRONLY |
> O_SYNC); assert(m_fdSpu >= 0);
>
> if (m_fdControl < 0 || m_fdVideo < 0 || m_fdAudio < 0 || m_fdSpu
> <0) {
> ExternalReleaseDevices();
> } else {
> m_pClock = new cDxr3SysClock(m_fdControl, m_fdVideo, m_fdSpu);
> SetChannelCount(1);
> bExternalReleased = false;
> }
> ReconfigureDevice();
> m_extSpuInterface.Clear();
> }
>
> Unlock();
> }
>
> Maybe this helps anyone, who has the same problem. Maybe Kai can look into
> this and find out the reason, why this happens.
>
> Greetings,
> -------------
> Andre Neumann
>
>
>
>
>
--
Jarkko Santala <jake@iki.fi> http://www.iki.fi/~jake/
System Administrator 2001:670:83:f08::/64
--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.
Home |
Main Index |
Thread Index