Merge pull request #861 from Gujs/openelec-updates

xbmc: add patch for fixing DVD menus on some DVDs. Fixes issue #737
This commit is contained in:
Gujs 2012-06-26 13:36:26 -07:00
commit b475f6c302
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