From 27e9a88e2ff02c9a84ca009c52d091062dbe5530 Mon Sep 17 00:00:00 2001 From: Johns Date: Wed, 1 Feb 2012 16:50:48 +0100 Subject: Video updates and bug fix. Check if surface is ready in VaapiGetSurface. Set PTS/DTS only in the first split video packet. Add support for 4:3 output modes. Quicker auto-crop after channel switch. Add auto-crop support for Intel VA-API backend. Fix bug: Auto-Crop logo skip didn't use displayed width. --- softhddevice.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'softhddevice.cpp') diff --git a/softhddevice.cpp b/softhddevice.cpp index b77543c..cae7402 100644 --- a/softhddevice.cpp +++ b/softhddevice.cpp @@ -625,6 +625,7 @@ class cSoftHdDevice:public cDevice virtual bool Poll(cPoller &, int = 0); virtual bool Flush(int = 0); virtual int64_t GetSTC(void); + virtual void SetVideoDisplayFormat(eVideoDisplayFormat); virtual void GetVideoSize(int &, int &, double &); virtual void GetOsdSize(int &, int &, double &); virtual int PlayVideo(const uchar *, int); @@ -847,6 +848,26 @@ bool cSoftHdDevice::Flush(int timeout_ms) // ---------------------------------------------------------------------------- +/** +** Sets the video display format to the given one (only useful if this +** device has an MPEG decoder). +*/ +void cSoftHdDevice::SetVideoDisplayFormat( + eVideoDisplayFormat video_display_format) +{ + static int last = -1; + + cDevice::SetVideoDisplayFormat(video_display_format); + + dsyslog("[softhddev]%s: %d\n", __FUNCTION__, video_display_format); + + // called on every channel switch, no need to kill osd... + if (last != video_display_format) { + last = video_display_format; + ::VideoSetDisplayFormat(video_display_format); + } +} + /** ** Returns the width, height and video_aspect ratio of the currently ** displayed video material. -- cgit v1.2.3