mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-30 06:06:43 +00:00
xbmc-pvr: add patch for fix vdpau de-interalcing if interlace flag togles (inspired by FernetMenta)
This commit is contained in:
parent
18f1f55912
commit
01face58cc
@ -0,0 +1,44 @@
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
|
||||
index 8735db8..8851279 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
|
||||
@@ -918,6 +918,7 @@ bool CVDPAU::ConfigVDPAU(AVCodecContext* avctx, int ref_frames)
|
||||
outputSurface = outputSurfaces[surfaceNum];
|
||||
|
||||
vdpauConfigured = true;
|
||||
+ m_binterlacedFrame = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1175,10 +1176,16 @@ int CVDPAU::Decode(AVCodecContext *avctx, AVFrame *pFrame)
|
||||
m_DVDVideoPics.pop();
|
||||
}
|
||||
|
||||
+ if (!m_binterlacedFrame && m_DVDVideoPics.front().iFlags & DVP_FLAG_INTERLACED)
|
||||
+ {
|
||||
+ m_binterlacedFrame = m_DVDVideoPics.front().iFlags & DVP_FLAG_INTERLACED;
|
||||
+ CLog::Log(LOGNOTICE, "CVDPAU::ConfigOutputMethod: detected interlaced frame");
|
||||
+ }
|
||||
+
|
||||
if((method == VS_INTERLACEMETHOD_AUTO &&
|
||||
- m_DVDVideoPics.front().iFlags & DVP_FLAG_INTERLACED)
|
||||
+ m_binterlacedFrame)
|
||||
|| (method == VS_INTERLACEMETHOD_AUTO_ION &&
|
||||
- m_DVDVideoPics.front().iFlags & DVP_FLAG_INTERLACED)
|
||||
+ m_binterlacedFrame)
|
||||
|| method == VS_INTERLACEMETHOD_VDPAU_BOB
|
||||
|| method == VS_INTERLACEMETHOD_VDPAU_TEMPORAL
|
||||
|| method == VS_INTERLACEMETHOD_VDPAU_TEMPORAL_HALF
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
|
||||
index 6e8468b..92a05d1 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
|
||||
@@ -209,7 +209,7 @@ public:
|
||||
uint32_t max_references;
|
||||
Display* m_Display;
|
||||
bool vdpauConfigured;
|
||||
-
|
||||
+ bool m_binterlacedFrame;
|
||||
|
||||
VdpVideoMixerPictureStructure m_mixerfield;
|
||||
int m_mixerstep;
|
Loading…
x
Reference in New Issue
Block a user