Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: language/English/strings.xml
- ===================================================================
- --- language/English/strings.xml (revision 27295)
- +++ language/English/strings.xml (working copy)
- @@ -2168,7 +2168,7 @@
- <string id="33083">Enable custom script button</string>
- <string id="33100">DsPlayer</string>
- - <string id="33101">Force Windows xp default renderer VMR9</string>
- - <string id="33102">Force Windows Vista and higher default renderer EVR</string>
- + <string id="33101">Use VMR9 instead of EVR Renderer</string>
- + <string id="33102">Use EVR instead of VMR9 Renderer</string>
- <string id="33103">Audio Renderer</string>
- </strings>
- Index: language/French/strings.xml
- ===================================================================
- --- language/French/strings.xml (revision 27295)
- +++ language/French/strings.xml (working copy)
- @@ -2248,4 +2248,9 @@
- <string id="33081">Ce fichier est empil�, s�lectionnez la partie que vous souhaitez lire.</string>
- <string id="33082">Chemin du script</string>
- <string id="33083">Activer le bouton de script personnalis�</string>
- +
- + <string id="33100">DsPlayer</string>
- + <string id="33101">Utiliser VMR9 au lieu d'EVR</string>
- + <string id="33102">Utiliser EVR au lieu de VMR9</string>
- + <string id="33103">Audio Renderer</string>
- </strings>
- \ No newline at end of file
- Index: xbmc/cores/DSPlayer/DSConfig.cpp
- ===================================================================
- --- xbmc/cores/DSPlayer/DSConfig.cpp (revision 27295)
- +++ xbmc/cores/DSPlayer/DSConfig.cpp (working copy)
- @@ -37,6 +37,7 @@
- m_pIMpcDecFilter = NULL;
- m_pIMpaDecFilter = NULL;
- m_pIAMStreamSelect = NULL;
- + m_pIAMExtendedSeeking = NULL;
- m_pSplitter = NULL;
- }
- @@ -45,6 +46,7 @@
- SAFE_RELEASE(m_pIMpaDecFilter);
- SAFE_RELEASE(m_pIMpcDecFilter);
- SAFE_RELEASE(m_pIAMStreamSelect);
- + SAFE_RELEASE(m_pIAMExtendedSeeking);
- SAFE_RELEASE(m_pSplitter);
- for (std::map<long, IAMStreamSelectInfos *>::iterator it = m_pAudioStreams.begin();
- @@ -62,6 +64,21 @@
- //SAFE_RELEASE(it->second->pUnk);
- delete it->second;
- }
- +
- + while (! m_pPropertiesFilters.empty())
- + {
- + SAFE_RELEASE(m_pPropertiesFilters.back());
- + m_pPropertiesFilters.pop_back();
- + }
- +
- + for (std::map<long, ChapterInfos *>::iterator it = m_pChapters.begin();
- + it != m_pChapters.end(); ++it)
- + {
- + //SAFE_RELEASE(it->second->pObj);
- + //SAFE_RELEASE(it->second->pUnk);
- + delete it->second;
- + }
- +
- }
- HRESULT CDSConfig::LoadGraph(IFilterGraph2* pGB, IBaseFilter * splitter)
- @@ -81,9 +98,12 @@
- {
- GetMpcVideoDec(pBF);
- GetMpaDec(pBF);
- + LoadPropertiesPage(pBF);
- }
- EndEnumFilters(pEF, pBF)
- - LoadAudioStreams();
- + LoadStreams();
- + if (! LoadChapters())
- + CLog::Log(LOGNOTICE, "%s No chapters found", __FUNCTION__);
- }
- HRESULT CDSConfig::UnloadGraph()
- @@ -117,7 +137,7 @@
- return hr;
- }
- -bool CDSConfig::LoadAudioStreams()
- +bool CDSConfig::LoadStreams()
- {
- CStdString splitterName;
- g_charsetConverter.wToUTF8(DShowUtil::GetFilterName(m_pSplitter), splitterName);
- @@ -307,6 +327,105 @@
- return false;
- }
- +bool CDSConfig::LoadPropertiesPage(IBaseFilter *pBF)
- +{
- + ISpecifyPropertyPages *pSpec;
- + HRESULT hr = pBF->QueryInterface(IID_ISpecifyPropertyPages, (void **)&pSpec);
- + if(hr == S_OK)
- + {
- + pBF->AddRef();
- + m_pPropertiesFilters.push_back(pBF);
- + /*hr = pSpec->GetPages(&cauuid);
- + hr = OleCreatePropertyFrame(g_hWnd, 0, 0, NULL , 1,
- + (IUnknown **)&pBF, cauuid.cElems,
- + (GUID *)cauuid.pElems, 0, 0, NULL);
- + CoTaskMemFree(cauuid.pElems);
- + pSpec->Release();*/
- + CStdString filterName;
- + g_charsetConverter.wToUTF8(DShowUtil::GetFilterName(pBF), filterName);
- + CLog::Log(LOGNOTICE, "%s \"%s\" expose ISpecifyPropertyPages", __FUNCTION__, filterName.c_str());
- +
- + return true;
- + } else
- + return false;
- +}
- +bool CDSConfig::LoadChapters(void)
- +{
- + if (! m_pSplitter)
- + return false;
- +
- + CStdString splitterName;
- + g_charsetConverter.wToUTF8(DShowUtil::GetFilterName(m_pSplitter), splitterName);
- +
- + CLog::Log(LOGDEBUG, "%s Looking for chapters in \"%s\"", __FUNCTION__, splitterName.c_str());
- +
- + if (SUCCEEDED(m_pSplitter->QueryInterface(IID_IAMExtendedSeeking, (void **) &m_pIAMExtendedSeeking)))
- + {
- + long chaptersCount = -1;
- + m_pIAMExtendedSeeking->get_MarkerCount(&chaptersCount);
- + if (chaptersCount <= 0)
- + {
- + SAFE_RELEASE(m_pIAMExtendedSeeking);
- + return false;
- + }
- +
- + ChapterInfos *infos = NULL;
- + BSTR chapterName;
- + for (int i = 1; i < chaptersCount + 1; i++)
- + {
- + infos = new ChapterInfos();
- + infos->name = ""; infos->time = 0;
- +
- + if (SUCCEEDED(m_pIAMExtendedSeeking->GetMarkerName(i, &chapterName)))
- + {
- + g_charsetConverter.wToUTF8(chapterName, infos->name);
- + SysFreeString(chapterName);
- + } else
- + infos->name = "Unknown chapter";
- +
- + m_pIAMExtendedSeeking->GetMarkerTime(i, &infos->time);
- +
- + infos->time *= 1000; // To ms
- + CLog::Log(LOGNOTICE, "%s Chapter \"%s\" found. Start time: %f", __FUNCTION__, infos->name.c_str(), infos->time);
- + m_pChapters.insert( std::pair<long, ChapterInfos *>(i, infos) );
- + }
- +
- + m_lCurrentChapter = 1;
- +
- + return true;
- + } else
- + {
- + CLog::Log(LOGERROR, "%s The splitter \"%s\" doesn't support chapters", __FUNCTION__, splitterName.c_str());
- + return false;
- + }
- +
- +}
- +void CDSConfig::UpdateChapters( __int64 currentTime )
- +{
- + if (!m_pChapters.empty()
- + && GetChapterCount() > 1)
- + {
- +
- + m_pIAMExtendedSeeking->get_CurrentMarker(&m_lCurrentChapter);
- +
- + /*for (std::map<long, ChapterInfos *>::iterator it = m_pChapters.begin();
- + it != m_pChapters.end(); ++it)
- + {
- + if (it->first == GetChapterCount())
- + {
- + m_lCurrentChapter = it->first;
- + return;
- + }
- +
- + if ((currentTime >= (__int64)(it->second->time)) &&
- + (currentTime < (__int64)(m_pChapters[it->first + 1]->time)))
- + {
- + m_lCurrentChapter = it->first;
- + return;
- + }
- + }*/
- + }
- +}
- int CDSConfig::GetAudioStreamCount()
- {
- /* if (!m_pIAMStreamSelect)
- @@ -319,21 +438,7 @@
- {
- if (m_pAudioStreams.size() == 0)
- return -1;
- - //DWORD nStreams = 0, flags, group, prevgroup = -1;
- - //LCID lcid;
- - //WCHAR* wname = NULL;
- - //IUnknown* pObj;
- - //IUnknown* pUnk;
- - //m_pIAMStreamSelect->Count(&nStreams);
- - //flags = 0;
- - //group = 0;
- - //wname = NULL;
- - //for(DWORD i = 0; i < nStreams; i++, pObj = NULL, pUnk = NULL)
- - //{
- - // m_pIAMStreamSelect->Info(i, NULL, &flags, &lcid, &group, &wname, &pObj, &pUnk);
- - // if ( ((int)flags) == 1 )//AMSTREAMSELECTENABLE_ENABLE = 1
- - // return (int)i;
- - //}
- +
- int i = 0;
- for (std::map<long, IAMStreamSelectInfos *>::const_iterator it = m_pAudioStreams.begin();
- it != m_pAudioStreams.end(); ++it, i++)
- @@ -361,32 +466,6 @@
- }
- }
- -void CDSConfig::SetAudioStream(int iStream)
- -{
- -
- - if (!m_pIAMStreamSelect)
- - return;
- -
- - //DWORD nCount = m_pAudioStreams.size();
- - int i =0; long lIndex = 0;
- - for (std::map<long, IAMStreamSelectInfos *>::const_iterator it = m_pAudioStreams.begin();
- - it != m_pAudioStreams.end(); ++it, i++)
- - {
- - /* Delete all streams */
- - m_pIAMStreamSelect->Enable(it->first, 0);
- - it->second->flags = 0;
- - if (iStream == i)
- - lIndex = it->first;
- - }
- -
- - if (SUCCEEDED(m_pIAMStreamSelect->Enable(lIndex, AMSTREAMSELECTENABLE_ENABLE)))
- - {
- - m_pAudioStreams[lIndex]->flags = AMSTREAMSELECTINFO_ENABLED;
- - CLog::Log(LOGDEBUG, "%s Sucessfully selected audio stream", __FUNCTION__);
- - }
- -}
- -
- -
- int CDSConfig::GetSubtitleCount()
- {
- return m_pEmbedSubtitles.size();
- @@ -546,4 +625,28 @@
- }
- return true;
- +}
- +
- +int CDSConfig::GetChapterCount()
- +{
- + if (! m_pChapters.empty())
- + return m_pChapters.size();
- + else
- + return -1;
- +}
- +int CDSConfig::GetChapter()
- +{
- + if ( m_pChapters.empty())
- + return -1;
- + else
- + return m_lCurrentChapter;
- +}
- +
- +void CDSConfig::GetChapterName(CStdString& strChapterName)
- +{
- + int currentChapter = GetChapter();
- + if (currentChapter == -1)
- + return;
- +
- + strChapterName = m_pChapters[currentChapter]->name;
- }
- \ No newline at end of file
- Index: xbmc/cores/DSPlayer/DSConfig.h
- ===================================================================
- --- xbmc/cores/DSPlayer/DSConfig.h (revision 27295)
- +++ xbmc/cores/DSPlayer/DSConfig.h (working copy)
- @@ -25,6 +25,9 @@
- #include <streams.h>
- #include <map>
- +// IAMExtendedSeeking
- +#include <qnetwork.h>
- +
- #include "igraphbuilder2.h"
- #include "Filters/IMpaDecFilter.h"
- #include "Filters/IMPCVideoDecFilter.h"
- @@ -40,6 +43,12 @@
- DWORD group;
- };
- +struct ChapterInfos
- +{
- + CStdString name;
- + double time; // in ms
- +};
- +
- class CDSConfig
- {
- public:
- @@ -50,36 +59,47 @@
- CStdString GetDxvaMode() { return m_pStdDxva; };
- std::map<long, IAMStreamSelectInfos *> GetAudioStreams() { return m_pAudioStreams; }
- + std::map<long, ChapterInfos *> GetChapters() { return m_pChapters; }
- IAMStreamSelect * GetStreamSelector() { return m_pIAMStreamSelect; }
- //AudioStream
- virtual int GetAudioStreamCount();
- virtual int GetAudioStream();
- virtual void GetAudioStreamName(int iStream, CStdString &strStreamName);
- - virtual void SetAudioStream(int iStream);
- virtual int GetSubtitleCount();
- virtual int GetSubtitle();
- virtual void GetSubtitleName(int iStream, CStdString &strStreamName);
- virtual void SetSubtitle(int iStream);
- +
- + // Chapters
- + virtual int GetChapterCount();
- + virtual int GetChapter();
- + virtual void GetChapterName(CStdString& strChapterName);
- + void UpdateChapters( __int64 currentTime );
- protected:
- - bool LoadAudioStreams();
- + bool LoadStreams();
- + bool LoadPropertiesPage(IBaseFilter *pBF);
- + bool LoadChapters();
- bool GetMpaDec(IBaseFilter* pBF);
- bool GetMpcVideoDec(IBaseFilter* pBF);
- bool GetffdshowVideo(IBaseFilter* pBF);
- void LoadFilters();
- CCritSec m_pLock;
- - //
- private:
- //Direct Show Filters
- + long m_lCurrentChapter;
- IFilterGraph2* m_pGraphBuilder;
- IMPCVideoDecFilter* m_pIMpcDecFilter;
- IMpaDecFilter* m_pIMpaDecFilter;
- IAMStreamSelect* m_pIAMStreamSelect;
- + IAMExtendedSeeking* m_pIAMExtendedSeeking;
- IBaseFilter* m_pSplitter;
- CStdString m_pStdDxva;
- std::map<long, IAMStreamSelectInfos *> m_pAudioStreams;
- std::map<long, IAMStreamSelectInfos *> m_pEmbedSubtitles;
- + std::vector<IBaseFilter *> m_pPropertiesFilters;
- + std::map<long, ChapterInfos *> m_pChapters;
- };
- Index: xbmc/cores/DSPlayer/DSGraph.cpp
- ===================================================================
- --- xbmc/cores/DSPlayer/DSGraph.cpp (revision 27295)
- +++ xbmc/cores/DSPlayer/DSGraph.cpp (working copy)
- @@ -454,8 +454,20 @@
- }
- void CDSGraph::Seek(bool bPlus, bool bLargeStep)
- {
- + // Chapter support
- + if (bLargeStep && GetChapterCount() > 1)
- + {
- + if (bPlus)
- + SeekChapter(GetChapter() + 1);
- + else
- + SeekChapter(GetChapter() - 1);
- +
- + return;
- + }
- +
- if (!m_pMediaSeeking || !m_pMediaControl)
- return;
- +
- __int64 seek;
- if (g_advancedSettings.m_videoUseTimeSeeking && GetTotalTime() > 2*g_advancedSettings.m_videoTimeSeekForwardBig)
- {
- @@ -575,13 +587,13 @@
- SeekInMilliSec((LPARAM)lParam);
- break;
- case ID_SEEK_FORWARDSMALL:
- - Seek(true,false);
- - CLog::Log(LOGDEBUG,"%s ID_SEEK_FORWARDSMALL",__FUNCTION__);
- - break;
- + Seek(true, false);
- + CLog::Log(LOGDEBUG,"%s ID_SEEK_FORWARDSMALL",__FUNCTION__);
- + break;
- case ID_SEEK_FORWARDLARGE:
- - Seek(true,true);
- - CLog::Log(LOGDEBUG,"%s ID_SEEK_FORWARDLARGE",__FUNCTION__);
- - break;
- + Seek(true, true);
- + CLog::Log(LOGDEBUG,"%s ID_SEEK_FORWARDLARGE",__FUNCTION__);
- + break;
- case ID_SEEK_BACKWARDSMALL:
- Seek(false,false);
- CLog::Log(LOGDEBUG,"%s ID_SEEK_BACKWARDSMALL",__FUNCTION__);
- @@ -697,3 +709,27 @@
- }
- }
- +
- +int CDSGraph::SeekChapter(int iChapter)
- +{
- + if (GetChapterCount() > 0)
- + {
- + if (iChapter < 1)
- + iChapter = 1;
- + if (iChapter > GetChapterCount())
- + return 0;
- +
- + // Seek to the chapter.
- + CLog::Log(LOGDEBUG, "%s Seeking to chapter %d", __FUNCTION__, iChapter);
- + SeekInMilliSec( m_pGraphBuilder->GetDsConfig()->GetChapters()[iChapter]->time );
- + }
- + else
- + {
- + // Do a regular big jump.
- + if (iChapter > GetChapter())
- + Seek(true, true);
- + else
- + Seek(false, true);
- + }
- + return 0;
- +}
- Index: xbmc/cores/DSPlayer/DSGraph.h
- ===================================================================
- --- xbmc/cores/DSPlayer/DSGraph.h (revision 27295)
- +++ xbmc/cores/DSPlayer/DSGraph.h (working copy)
- @@ -102,6 +102,13 @@
- virtual void GetSubtitleName(int iStream, CStdString &strStreamName) { return m_pGraphBuilder->GetDsConfig()->GetSubtitleName(iStream, strStreamName); };
- virtual void SetSubtitle(int iStream) { return m_pGraphBuilder->GetDsConfig()->SetSubtitle(iStream); };
- + // Chapters
- + virtual int GetChapterCount() { return m_pGraphBuilder->GetDsConfig()->GetChapterCount(); }
- + virtual int GetChapter() { return m_pGraphBuilder->GetDsConfig()->GetChapter(); }
- + virtual void GetChapterName(CStdString& strChapterName) { m_pGraphBuilder->GetDsConfig()->GetChapterName(strChapterName); }
- + virtual int SeekChapter(int iChapter); // { return m_pGraphBuilder->GetDsConfig()->SeekChapter(iChapter); }
- + void UpdateChapters( __int64 currentTime ) { m_pGraphBuilder->GetDsConfig()->UpdateChapters(currentTime); }
- +
- HRESULT SetFile(const CFileItem& file, const CPlayerOptions &options);
- void OnPlayStop();
- void CloseFile();
- Index: xbmc/cores/DSPlayer/DSPlayer.cpp
- ===================================================================
- --- xbmc/cores/DSPlayer/DSPlayer.cpp (revision 27295)
- +++ xbmc/cores/DSPlayer/DSPlayer.cpp (working copy)
- @@ -168,6 +168,7 @@
- void CDSPlayer::Process()
- {
- m_callback.OnPlayBackStarted();
- +
- bool pStartPosDone = true;
- // allow renderer to switch to fullscreen if requested
- //m_pDsGraph.EnableFullscreen(true);
- @@ -202,6 +203,7 @@
- {
- Sleep(250);
- m_pDsGraph.UpdateTime();
- + m_pDsGraph.UpdateChapters( m_pDsGraph.GetTime() );
- }
- if (m_pDsGraph.FileReachedEnd())
- {
- @@ -301,16 +303,16 @@
- if (bPlus)
- {
- if (!bLargeStep)
- - SendMessage(g_hWnd,WM_COMMAND, ID_SEEK_FORWARDSMALL,0);
- - else
- - SendMessage(g_hWnd,WM_COMMAND, ID_SEEK_FORWARDLARGE,0);
- + SendMessage(g_hWnd, WM_COMMAND, ID_SEEK_FORWARDSMALL,0);
- + else
- + SendMessage(g_hWnd, WM_COMMAND, ID_SEEK_FORWARDLARGE,0);
- }
- else
- {
- if (!bLargeStep)
- - SendMessage(g_hWnd,WM_COMMAND, ID_SEEK_BACKWARDSMALL,0);
- - else
- - SendMessage(g_hWnd,WM_COMMAND, ID_SEEK_BACKWARDLARGE,0);
- + SendMessage(g_hWnd, WM_COMMAND, ID_SEEK_BACKWARDSMALL,0);
- + else
- + SendMessage(g_hWnd, WM_COMMAND, ID_SEEK_BACKWARDLARGE,0);
- }
- }
- @@ -332,8 +334,25 @@
- switch(action.id)
- {
- case ACTION_NEXT_ITEM:
- - Stop();
- - break;
- + case ACTION_PAGE_UP:
- + if(GetChapterCount() > 0)
- + {
- + SeekChapter( GetChapter() + 1 );
- + g_infoManager.SetDisplayAfterSeek();
- + return true;
- + }
- + else
- + break;
- + case ACTION_PREV_ITEM:
- + case ACTION_PAGE_DOWN:
- + if(GetChapterCount() > 0)
- + {
- + SeekChapter( GetChapter() - 1 );
- + g_infoManager.SetDisplayAfterSeek();
- + return true;
- + }
- + else
- + break;
- }
- // return false to inform the caller we didn't handle the message
- Index: xbmc/cores/DSPlayer/DSPlayer.h
- ===================================================================
- --- xbmc/cores/DSPlayer/DSPlayer.h (revision 27295)
- +++ xbmc/cores/DSPlayer/DSPlayer.h (working copy)
- @@ -66,6 +66,13 @@
- virtual void GetSubtitleName(int iStream, CStdString &strStreamName) { return m_pDsGraph.GetSubtitleName(iStream, strStreamName); };
- virtual void SetSubtitle(int iStream) { return m_pDsGraph.SetSubtitle(iStream); };
- + // Chapters
- +
- + virtual int GetChapterCount() { return m_pDsGraph.GetChapterCount(); }
- + virtual int GetChapter() { return m_pDsGraph.GetChapter(); }
- + virtual void GetChapterName(CStdString& strChapterName) { m_pDsGraph.GetChapterName(strChapterName); }
- + virtual int SeekChapter(int iChapter) { return m_pDsGraph.SeekChapter(iChapter); }
- +
- void Update(bool bPauseDrawing) { m_pDsGraph.Update(bPauseDrawing); }
- void GetVideoRect(CRect& SrcRect, CRect& DestRect) { m_pDsGraph.GetVideoRect(SrcRect, DestRect); }
- virtual void GetVideoAspectRatio(float& fAR) { fAR = m_pDsGraph.GetAspectRatio(); }
- Index: xbmc/cores/DSPlayer/FGLoader.cpp
- ===================================================================
- --- xbmc/cores/DSPlayer/FGLoader.cpp (revision 27295)
- +++ xbmc/cores/DSPlayer/FGLoader.cpp (working copy)
- @@ -118,7 +118,7 @@
- SAFE_RELEASE(pFS);
- return hr;
- } else {
- - CLog::Log(LOGERROR, "%s Source filter \"%s\" can't open file \"%s\"", __FUNCTION__, m_pStrSource.c_str(), pWinFilePath.c_str());
- + CLog::Log(LOGERROR, "%s Source filter \"%s\" can't open file \"%s\" (result: %X)", __FUNCTION__, m_pStrSource.c_str(), pWinFilePath.c_str(), hr);
- }
- SAFE_RELEASE(pFS);
- }
- @@ -282,27 +282,35 @@
- CDirectShowEnumerator p_dsound;
- std::vector<DSFilterInfo> deviceList = p_dsound.GetAudioRenderers();
- - std::vector<DSFilterInfo>::const_iterator iter = deviceList.begin();
- +
- //see if there a config first
- - for (int i=0; iter != deviceList.end(); i++)
- + for (std::vector<DSFilterInfo>::const_iterator iter = deviceList.begin();
- + iter != deviceList.end(); ++iter)
- {
- DSFilterInfo dev = *iter;
- if (g_guiSettings.GetString("dsplayer.audiorenderer").Equals(dev.lpstrName))
- {
- currentGuid = dev.lpstrGuid;
- currentName = dev.lpstrName;
- + break;
- }
- - ++iter;
- }
- if (currentName.IsEmpty())
- {
- currentGuid = DShowUtil::CStringFromGUID(CLSID_DSoundRender);
- currentName.Format("Default DirectSound Device");
- }
- +
- m_pStrAudioRenderer = currentName;
- pFGF = new CFGFilterRegistry(DShowUtil::GUIDFromCString(currentGuid));
- hr = pFGF->Create(&ppBF);
- hr = m_pGraphBuilder->AddFilter(ppBF,DShowUtil::AnsiToUTF16(currentName));
- +
- + if (SUCCEEDED(hr))
- + CLog::Log(LOGNOTICE, "%s Successfully added \"%s\" to the graph", __FUNCTION__, m_pStrAudioRenderer.c_str());
- + else
- + CLog::Log(LOGNOTICE, "%s Failed to add \"%s\" to the graph (result: %X)", __FUNCTION__, m_pStrAudioRenderer.c_str(), hr);
- +
- SAFE_RELEASE(ppBF);
- return hr;
- }
- @@ -313,15 +321,19 @@
- IBaseFilter* ppBF = NULL;
- if (g_sysinfo.IsVistaOrHigher())
- + {
- if (g_guiSettings.GetBool("dsplayer.forcenondefaultrenderer"))
- m_CurrentRenderer = DIRECTSHOW_RENDERER_VMR9;
- else
- m_CurrentRenderer = DIRECTSHOW_RENDERER_EVR;
- + }
- else
- + {
- if (g_guiSettings.GetBool("dsplayer.forcenondefaultrenderer"))
- m_CurrentRenderer = DIRECTSHOW_RENDERER_EVR;
- else
- m_CurrentRenderer = DIRECTSHOW_RENDERER_VMR9;
- + }
- // Renderers
- Index: xbmc/cores/DSPlayer/Filters/DsRenderer.cpp
- ===================================================================
- --- xbmc/cores/DSPlayer/Filters/DsRenderer.cpp (revision 27295)
- +++ xbmc/cores/DSPlayer/Filters/DsRenderer.cpp (working copy)
- @@ -40,15 +40,12 @@
- {
- m_nCurSurface = 0;
- g_renderManager.PreInit(true);
- - g_Windowing.Register(this);
- -
- -
- + g_Windowing.Register(this);
- }
- CDsRenderer::~CDsRenderer()
- {
- - g_renderManager.UnInit();
- -
- + g_renderManager.UnInit();
- }
- void CDsRenderer::AddSubtitleStream()
- Index: xbmc/GUISettings.cpp
- ===================================================================
- --- xbmc/GUISettings.cpp (revision 27295)
- +++ xbmc/GUISettings.cpp (working copy)
- @@ -526,7 +526,7 @@
- //Dsplayer
- AddCategory(5,"dsplayer",33100);
- //If vista or higher non default is vmr9
- - AddBool(1, "dsplayer.forcenondefaultrenderer", 33101 ? 33102 : g_sysinfo.IsVistaOrHigher(), false);
- + AddBool(1, "dsplayer.forcenondefaultrenderer", g_sysinfo.IsVistaOrHigher() ? 33101 : 33102 , false);
- AddSeparator(2,"dsplayer.sep1");
- AddString(3, "dsplayer.audiorenderer", 33103, "Default", SPIN_CONTROL_TEXT);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement