Mailing List archive

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

[vdr] errors while implementing new method into dvbdevice.c



Hi,
I'm using 1.3.17 and I'm trying to fix some aspect ratio problems with the DVD-Plugin.
According to the DVB API there is an ioctl for setting certain information of the DVD data.
http://www.linuxtv.org/developer/dvbapi/DVB_Video_Device.html#SECTION005226000000000000000

So I added the method "virtual void SetDVDFormat(video_attributes_t DVDFormat)" to device.c and dvbdevice.c. (see attached diff)

Upon calling it with "cDevice::PrimaryDevice()->SetDVDFormat(dvdformat);" from inside player-dvd.c(CVS version) at line 1386, I see the following error in my syslog:
"ERROR (dvbdevice.c,609): Das Argument ist ungültig" (argument invalid?!)

The variable "dvdformat" is of type uint16_t.

It seems like CHECK() is causing this error.
Can anyone enlighten me on why this is happening?

Thanks a lot in advance.
André.
diff -Nrubw vdr-1.3.17/device.c vdr-1.3.17-dvd/device.c
--- vdr-1.3.17/device.c	2004-10-30 16:53:38.000000000 +0200
+++ vdr-1.3.17-dvd/device.c	2004-12-01 17:30:42.000000000 +0100
@@ -208,6 +208,10 @@
   return false;
 }
 
+void cDevice::SetDVDFormat(uint16_t DVDFormat)
+{
+}
+
 void cDevice::SetVideoFormat(bool VideoFormat16_9)
 {
 }
diff -Nrubw vdr-1.3.17/device.h vdr-1.3.17-dvd/device.h
--- vdr-1.3.17/device.h	2004-10-30 16:49:56.000000000 +0200
+++ vdr-1.3.17-dvd/device.h	2004-12-01 17:51:28.000000000 +0100
@@ -276,6 +276,7 @@
 // Video format facilities
 
 public:
+  virtual void SetDVDFormat(uint16_t DVDFormat);
   virtual void SetVideoFormat(bool VideoFormat16_9);
          ///< Sets the output video format to either 16:9 or 4:3 (only useful
          ///< if this device has an MPEG decoder).
diff -Nrubw vdr-1.3.17/dvbdevice.c vdr-1.3.17-dvd/dvbdevice.c
--- vdr-1.3.17/dvbdevice.c	2004-11-20 12:41:37.000000000 +0100
+++ vdr-1.3.17-dvd/dvbdevice.c	2004-12-01 17:42:28.000000000 +0100
@@ -595,6 +595,12 @@
   return false;
 }
 
+void cDvbDevice::SetDVDFormat(video_attributes_t DVDFormat)
+{
+  if (HasDecoder())
+     CHECK( ioctl(fd_video, VIDEO_SET_ATTRIBUTES, DVDFormat));
+}
+
 void cDvbDevice::SetVideoFormat(bool VideoFormat16_9)
 {
   if (HasDecoder())
diff -Nrubw vdr-1.3.17/dvbdevice.h vdr-1.3.17-dvd/dvbdevice.h
--- vdr-1.3.17/dvbdevice.h	2004-11-07 11:25:16.000000000 +0100
+++ vdr-1.3.17-dvd/dvbdevice.h	2004-12-01 17:43:30.000000000 +0100
@@ -12,6 +12,7 @@
 
 #include <linux/dvb/frontend.h>
 #include <linux/dvb/version.h>
+#include <linux/dvb/video.h>
 #include "device.h"
 #include "dvbspu.h"
 
@@ -87,6 +88,7 @@
 // Video format facilities
 
 public:
+  virtual void SetDVDFormat(video_attributes_t DVDFormat);
   virtual void SetVideoFormat(bool VideoFormat16_9);
   virtual eVideoSystem GetVideoSystem(void);
 

Home | Main Index | Thread Index