xbmc: add patch for fixing DVD menus on some DVDs. Fixes issue #737

This commit is contained in:
Gregor Fuis 2012-06-25 22:27:16 +02:00
parent a967bd38d4
commit 1f82b1d445
2 changed files with 74 additions and 0 deletions

View File

@ -0,0 +1,37 @@
From 497941802e56121adf03428d964e225c80989afd Mon Sep 17 00:00:00 2001
From: elupus <elupus@xbmc.org>
Date: Sat, 7 Apr 2012 00:08:34 +0200
Subject: [PATCH] fixed: still frames at the start of a VTS in dvd could end
up not showing
This occured due to a change in behavior in updated ffmpeg. Old code would
return EOF once after a VTS change to trigger demuxer flush, however
updated ffmpeg will read multiple times causing demuxer reset actions
to get executed after actual data having been processed by demuxer.
---
.../cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp
index dbdff52..3ae4843 100644
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp
@@ -419,9 +419,12 @@ int CDVDInputStreamNavigator::ProcessBlock(BYTE* dest_buffer, int* read)
iNavresult = NAVRESULT_HOLD;
}
else
+ {
iNavresult = m_pDVDPlayer->OnDVDNavResult(buf, DVDNAV_VTS_CHANGE);
-
- m_bInMenu = (0 == m_dll.dvdnav_is_domain_vts(m_dvdnav));
+ m_holdmode = HOLDMODE_HELD;
+ m_lastevent = DVDNAV_NOP;
+ m_bInMenu = (0 == m_dll.dvdnav_is_domain_vts(m_dvdnav));
+ }
}
break;
--
1.7.10

View File

@ -0,0 +1,37 @@
From 497941802e56121adf03428d964e225c80989afd Mon Sep 17 00:00:00 2001
From: elupus <elupus@xbmc.org>
Date: Sat, 7 Apr 2012 00:08:34 +0200
Subject: [PATCH] fixed: still frames at the start of a VTS in dvd could end
up not showing
This occured due to a change in behavior in updated ffmpeg. Old code would
return EOF once after a VTS change to trigger demuxer flush, however
updated ffmpeg will read multiple times causing demuxer reset actions
to get executed after actual data having been processed by demuxer.
---
.../cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp
index dbdff52..3ae4843 100644
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp
@@ -419,9 +419,12 @@ int CDVDInputStreamNavigator::ProcessBlock(BYTE* dest_buffer, int* read)
iNavresult = NAVRESULT_HOLD;
}
else
+ {
iNavresult = m_pDVDPlayer->OnDVDNavResult(buf, DVDNAV_VTS_CHANGE);
-
- m_bInMenu = (0 == m_dll.dvdnav_is_domain_vts(m_dvdnav));
+ m_holdmode = HOLDMODE_HELD;
+ m_lastevent = DVDNAV_NOP;
+ m_bInMenu = (0 == m_dll.dvdnav_is_domain_vts(m_dvdnav));
+ }
}
break;
--
1.7.10