Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: DXR3 plugin compilation problem with vdr-1.3.20 and dvd pluginpatches from CVS [was] problems playing DVDs




> ----
> dxr3device.c: In member function `virtual cSpuDecoder*
>    cDxr3Device::GetSpuDecoder()':
> dxr3device.c:481: error: cannot allocate an object of type
`cDxr3SpuDecoder'
> dxr3device.c:481: error:   because the following virtual functions are
>    abstract:
>../../../include/vdr/spu.h:28: error:   virtual cSpuDecoder::eScaleMode
>    cSpuDecoder::getScaleMode()
>make: *** [dxr3device.o] Error 1
>----

This means you have to provide an real implementation of
cDxr3SpuDecoder::getScaleMode()in the DRX3 code.
Pure virtual functions (=0) need to be overwritten in all child objects
that you want to instanciate.

> diff -bur vdr-1.3.20_orig/spu.h vdr-1.3.20/spu.h
> --- vdr-1.3.20_orig/spu.h       2005-02-06 21:16:58.000000000 +0100
> +++ vdr-1.3.20/spu.h    2005-02-06 22:18:09.000000000 +0100
> @@ -25,6 +25,7 @@
>
>      virtual int setTime(uint32_t pts) = 0;
>
> +    virtual cSpuDecoder::eScaleMode getScaleMode(void) = 0;
>      virtual void setScaleMode(cSpuDecoder::eScaleMode ScaleMode) = 0;
>      virtual void setPalette(uint32_t * pal) = 0;
>      virtual void setHighlight(uint16_t sx, uint16_t sy,
>
> ...I tried commenting out that addition and recompiling; but I think
> there's probably more to it than that :) (dxr3 compiled but vdr became
> unstable)

Lucky you that it didn't crash...
Seems that you forget to recompile vdr with clean.
Otherwise some part of vdr must have complained that
cSpuDecoder::getScaleMode() doesn't exist ;-)

The only acceptable fix ist to add an implementation of
cDxr3SpuDecoder::getScaleMode() returning the value
cDxr3SpuDecoder::setScaleMode()is storing in the DRX3 plugin.

> http://cachalot.mine.nu/src/dxr3/

Seems down ...
So no detailed advice were to add the code ...








Home | Main Index | Thread Index