mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-30 22:26:42 +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