[vdr-plugin-xine] 01/02: debian/patches/vdr-1.7.33.patch: Use APIVERSUM to determine vdr version to fix FTBFS: 'class cPatPmtParser' has no member named 'PmtPid' (Closes: #709031) (LP: #1198020)

Tobias Grimm tiber-guest at moszumanska.debian.org
Sun Apr 6 19:06:15 UTC 2014


This is an automated email from the git hooks/post-receive script.

tiber-guest pushed a commit to branch master
in repository vdr-plugin-xine.

commit 778271dda85a4e5f29441cae45008ea2a073db6a
Author: Andreas Moog <Andreas Moog>
Date:   Thu Nov 28 23:16:42 2013 +0100

    debian/patches/vdr-1.7.33.patch: Use APIVERSUM to determine vdr version to fix FTBFS: 'class cPatPmtParser' has no member named 'PmtPid' (Closes: #709031) (LP: #1198020)
    
    * debian/patches/vdr-1.7.33.patch: Use APIVERSUM to determine vdr
      version to fix FTBFS: 'class cPatPmtParser' has no member named 'PmtPid'
      (Closes: #709031) (LP: #1198020)
    * debian/patches/vdr-1.7.40.patch: Apply patch from
      Lucian Muresan lucianm.AT.users.sourceforge.net to build with newer
      vdr versions to fix: error: 'vidWin' was not declared in this scope
---
 debian/changelog                |  11 +++
 debian/patches/series           |   1 +
 debian/patches/vdr-1.7.40.patch | 165 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 177 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index f6f59e3..46168fb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+vdr-plugin-xine (0.9.4-12) UNRELEASED; urgency=low
+
+  * debian/patches/vdr-1.7.33.patch: Use APIVERSUM to determine vdr
+    version to fix FTBFS: 'class cPatPmtParser' has no member named 'PmtPid'
+    (Closes: #709031) (LP: #1198020)
+  * debian/patches/vdr-1.7.40.patch: Apply patch from
+    Lucian Muresan lucianm.AT.users.sourceforge.net to build with newer
+    vdr versions to fix: error: 'vidWin' was not declared in this scope
+
+ -- Andreas Moog <amoog at ubuntu.com>  Thu, 28 Nov 2013 23:12:16 +0100
+
 vdr-plugin-xine (0.9.4-11) unstable; urgency=low
 
   * Build-depend on vdr-dev (>= 2.0.0)
diff --git a/debian/patches/series b/debian/patches/series
index 98e63ed..306b74e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,4 @@ enable-yaepg-support.patch
 format-strings.patch
 vdr-1.7.27.patch
 vdr-1.7.33.patch
+vdr-1.7.40.patch
diff --git a/debian/patches/vdr-1.7.40.patch b/debian/patches/vdr-1.7.40.patch
new file mode 100644
index 0000000..e5d6795
--- /dev/null
+++ b/debian/patches/vdr-1.7.40.patch
@@ -0,0 +1,165 @@
+Author: Lucian Muresan <lucianm at users.sourceforge.net>
+Origin: https://patchwork.linuxtv.org/patch/16100/
+
+Index: vdr-plugin-xine-0.9.4/xineDevice.c
+===================================================================
+--- vdr-plugin-xine-0.9.4.orig/xineDevice.c	2013-11-28 23:06:14.746527860 +0100
++++ vdr-plugin-xine-0.9.4/xineDevice.c	2013-11-28 23:06:14.742527860 +0100
+@@ -4409,5 +4409,83 @@
+   {
+     return theXineDevice;
+   }
++#if APIVERSNUM >= 10733
++  ///< Asks the output device whether it can scale the currently shown video in
++  ///< such a way that it fits into the given Rect, while retaining its proper
++  ///< aspect ratio. If the scaled video doesn't exactly fit into Rect, Alignment
++  ///< is used to determine how to align the actual rectangle with the requested
++  ///< one. The actual rectangle can be smaller, larger or the same size as the
++  ///< given Rect, and its location may differ, depending on the capabilities of
++  ///< the output device, which may not be able to display a scaled video at
++  ///< arbitrary sizes and locations. The device shall, however, do its best to
++  ///< match the requested Rect as closely as possible, preferring a size and
++  ///< location that fits completely into the requested Rect if possible.
++  ///< Returns the rectangle that can actually be used when scaling the video.
++  ///< A skin plugin using this function should rearrange its content according
++  ///< to the rectangle returned from calling this function, and should especially
++  ///< be prepared for cases where the returned rectangle is way off the requested
++  ///< Rect, or even Null. In such cases, the skin may want to fall back to
++  ///< working with full screen video.
++  ///< If this device can't scale the video, a Null rectangle is returned (this
++  ///< is also the default implementation).
++  cRect cXineDevice::CanScaleVideo(const cRect &Rect, int Alignment/* = taCenter*/)
++  {
++    // first implementation: we can always scale, we're a soft device ;-), ignore alignment for now
++
++    // we need to store the value for the case we have to call ScaleVideo ourselves in vdr-xine
++    vidWinRect = Rect;
++    return vidWinRect;
++  }
++
++  ///< Scales the currently shown video in such a way that it fits into the given
++  ///< Rect. Rect should be one retrieved through a previous call to
++  ///< CanScaleVideo() (otherwise results may be undefined).
++  ///< Even if video output is scaled, the functions GetVideoSize() and
++  ///< GetOsdSize() must still return the same values as if in full screen mode!
++  ///< If this device can't scale the video, nothing happens.
++  ///< To restore full screen video, call this function with a Null rectangle.
++  void cXineDevice::ScaleVideo(const cRect &Rect/* = cRect::Null*/)
++  {
++    // refresh stored value
++    vidWinRect = Rect;
++    // let our specialized code do the actual resizing / repositioning, get accurate parameters first
++    int videoLeft, videoTop, videoWidth, videoHeight, videoZoomX, videoZoomY, osdWidth, osdHeight;
++    double videoAspect, pixelAspect;
++    m_xineLib.execFuncVideoSize(videoLeft, videoTop, videoWidth, videoHeight, videoZoomX, videoZoomY, &videoAspect);
++    GetOsdSize(osdWidth, osdHeight, pixelAspect);
++    tArea vidWinArea;
++    vidWinArea.x1 = vidWinRect.X();
++    vidWinArea.y1 = vidWinRect.Y();
++    vidWinArea.x2 = vidWinRect.X() + vidWinRect.Width();
++    vidWinArea.y2 = vidWinRect.Y() + vidWinRect.Height();
++    if (vidWinRect == cRect::Null) {
++        // will just resize to full size
++        vidWinArea.bpp = 0;
++    } else {
++        vidWinArea.bpp = 12;
++        // make corrections
++        double aspectFactor = (double(osdWidth) / double(osdHeight)) / videoAspect;
++        int output_width = vidWinRect.Height() * (videoAspect * aspectFactor);
++        int output_height = vidWinRect.Width() / (videoAspect * aspectFactor);
++        if (double(vidWinRect.Width())/double(vidWinRect.Height()) > videoAspect * aspectFactor) {
++            output_height = vidWinRect.Height();
++            vidWinArea.x1 += (vidWinRect.Width() - output_width) / 2;
++        }
++        else if (double(vidWinRect.Width())/double(vidWinRect.Height()) < videoAspect * aspectFactor) {
++            output_width = vidWinRect.Width();
++            vidWinArea.y1 += (vidWinRect.Height() - output_height) / 2;
++        }
++        vidWinArea.x2 = vidWinArea.x1 + output_width;
++        vidWinArea.y2 = vidWinArea.y1 + output_height;
++    }
++    m_xineLib.SetVideoWindow(videoWidth, videoHeight, vidWinArea);
++  }
++
++  const cRect & cXineDevice::GetScaleRect()
++  {
++    // just return the stored value
++    return vidWinRect;
++  }
+ 
++#endif // APIVERSNUM >= 10733
+ };
+Index: vdr-plugin-xine-0.9.4/xineDevice.h
+===================================================================
+--- vdr-plugin-xine-0.9.4.orig/xineDevice.h	2013-11-28 23:06:14.746527860 +0100
++++ vdr-plugin-xine-0.9.4/xineDevice.h	2013-11-28 23:06:14.742527860 +0100
+@@ -162,7 +162,14 @@
+ #else    
+     void OnFreeOsd(cOsd *const osd);
+ #endif
+-
++#if APIVERSNUM >= 10733
++    virtual cRect CanScaleVideo(const cRect &Rect, int Alignment = taCenter);
++    virtual void ScaleVideo(const cRect &Rect = cRect::Null);
++    const cRect & GetScaleRect();
++  private:
++    cRect vidWinRect;
++  public:
++#endif // APIVERSNUM >= 10733
+     cXineLib m_xineLib;
+     cMutex m_osdMutex;
+ 
+Index: vdr-plugin-xine-0.9.4/xineOsd.c
+===================================================================
+--- vdr-plugin-xine-0.9.4.orig/xineOsd.c	2013-11-28 23:06:14.746527860 +0100
++++ vdr-plugin-xine-0.9.4/xineOsd.c	2013-11-28 23:08:24.570528259 +0100
+@@ -105,11 +105,20 @@
+ 
+ #else
+ 
++#if APIVERSNUM >= 10733
++
++    // scale to the size and position stored by the last call to cDevice::CanScaleVideo
++    m_xineDevice.ScaleVideo(m_xineDevice.GetScaleRect());
++
++#else
++
+ #ifdef SET_VIDEO_WINDOW
+     
+     m_xineLib.SetVideoWindow(maxOsdWidth, maxOsdHeight, vidWin, dontOptimize);
+     
+ #endif    
++
++#endif // APIVERSNUM >= 10733
+     
+     int videoLeft   = frameLeft;
+     int videoTop    = frameTop;
+@@ -175,6 +184,7 @@
+ 
+   cXineOsd::~cXineOsd()
+   {
++
+ #if APIVERSNUM < 10509
+     HideOsd();
+ #else
+@@ -410,12 +420,20 @@
+     int maxOsdWidth, maxOsdHeight;
+     GetMaxOsdSize(maxOsdWidth, maxOsdHeight);
+ 
++#if APIVERSNUM >= 10733
++
++    // scale to the size and position stored by the last call to cDevice::CanScaleVideo
++    m_xineDevice.ScaleVideo(m_xineDevice.GetScaleRect());
++
++#else
+ #ifdef SET_VIDEO_WINDOW
+     
+     m_xineLib.SetVideoWindow(maxOsdWidth, maxOsdHeight, vidWin);
+ 
+ #endif    
+     
++#endif // APIVERSUM >= 10733
++
+     int videoLeft   = -1;
+     int videoTop    = -1;
+     int videoWidth  = -1;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-vdr-dvb/vdr-plugin-xine.git



More information about the pkg-vdr-dvb-changes mailing list