diff options
author | Arne Morten Kvarving <spiff@xbmc.org> | 2013-04-05 02:55:10 -0700 |
---|---|---|
committer | Arne Morten Kvarving <spiff@xbmc.org> | 2013-04-05 02:55:10 -0700 |
commit | 31a41b8f41a955929384d9a655a2f7118ec39925 (patch) | |
tree | 37c4572caab221f040e8853c40cbbc060d0b2855 | |
parent | 50ac17f8d8d687e4a0e5675368302c2b880e5bf0 (diff) | |
parent | 8569e42ad6ef58e22a2a3f856169ba3b7276e12d (diff) |
Merge pull request #2444 from ace20022/cleanup_cores
[Cores] Spring cleaning
100 files changed, 502 insertions, 319 deletions
diff --git a/xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioGraph.h b/xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioGraph.h index 5e324a9eb9..eacc95b73e 100644 --- a/xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioGraph.h +++ b/xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioGraph.h @@ -46,7 +46,7 @@ public: bool Close(); bool Start(); bool Stop(); - AudioChannelLayoutTag GetChannelLayoutTag(int layout); + static AudioChannelLayoutTag GetChannelLayoutTag(int layout); bool SetInputSource(ICoreAudioSource *pSource); bool SetCurrentVolume(Float32 vol); CAUOutputDevice* DestroyUnit(CAUOutputDevice *outputUnit); diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp index ebcbcfbc2c..e12a4e091e 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp +++ b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp @@ -113,19 +113,19 @@ static BOOL CALLBACK DSEnumCallback(LPGUID lpGuid, LPCTSTR lpcstrDescription, LP } CAESinkDirectSound::CAESinkDirectSound() : - m_initialized (false), - m_isDirtyDS (false), m_pBuffer (NULL ), m_pDSound (NULL ), - m_BufferOffset (0 ), - m_CacheLen (0 ), - m_dwChunkSize (0 ), - m_dwBufferLen (0 ), - m_BufferTimeouts(0 ), m_AvgBytesPerSec(0 ), + m_dwChunkSize (0 ), m_dwFrameSize (0 ), + m_dwBufferLen (0 ), + m_BufferOffset (0 ), + m_CacheLen (0 ), m_LastCacheCheck(0 ), - m_running (false) + m_BufferTimeouts(0 ), + m_running (false), + m_initialized (false), + m_isDirtyDS (false) { m_channelLayout.Reset(); } diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp index 9ca471d930..8f82cec31b 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp +++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp @@ -176,21 +176,21 @@ CStdStringA localWideToUtf(LPCWSTR wstr) } CAESinkWASAPI::CAESinkWASAPI() : - m_pAudioClient(NULL), - m_pRenderClient(NULL), m_needDataEvent(0), m_pDevice(NULL), - m_initialized(false), - m_running(false), + m_pAudioClient(NULL), + m_pRenderClient(NULL), m_encodedFormat(AE_FMT_INVALID), m_encodedChannels(0), m_encodedSampleRate(0), - m_uiBufferLen(0), - m_avgTimeWaiting(50), - m_isDirty(false), sinkReqFormat(AE_FMT_INVALID), sinkRetFormat(AE_FMT_INVALID), + m_running(false), + m_initialized(false), m_isSuspended(false), + m_isDirty(false), + m_uiBufferLen(0), + m_avgTimeWaiting(50), m_sinkLatency(0.0) { m_channelLayout.Reset(); diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h index 3a951162e9..312866c8d5 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h +++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h @@ -49,9 +49,9 @@ public: private: bool InitializeExclusive(AEAudioFormat &format); void AEChannelsFromSpeakerMask(DWORD speakers); - DWORD SpeakerMaskFromAEChannels(const CAEChannelInfo &channels); - void BuildWaveFormatExtensible(AEAudioFormat &format, WAVEFORMATEXTENSIBLE &wfxex); - void BuildWaveFormatExtensibleIEC61397(AEAudioFormat &format, WAVEFORMATEXTENSIBLE_IEC61937 &wfxex); + static DWORD SpeakerMaskFromAEChannels(const CAEChannelInfo &channels); + static void BuildWaveFormatExtensible(AEAudioFormat &format, WAVEFORMATEXTENSIBLE &wfxex); + static void BuildWaveFormatExtensibleIEC61397(AEAudioFormat &format, WAVEFORMATEXTENSIBLE_IEC61937 &wfxex); static const char *WASAPIErrToStr(HRESULT err); diff --git a/xbmc/cores/DllLoader/DllLoader-linux.cpp b/xbmc/cores/DllLoader/DllLoader-linux.cpp index 90e9505962..bcc203ddc7 100644 --- a/xbmc/cores/DllLoader/DllLoader-linux.cpp +++ b/xbmc/cores/DllLoader/DllLoader-linux.cpp @@ -22,7 +22,22 @@ #include "DllLoader.h" #include "DllLoaderContainer.h" -CoffLoader::CoffLoader() +CoffLoader::CoffLoader() : + hModule (NULL ), + CoffFileHeader (NULL ), + OptionHeader (NULL ), + WindowsHeader (NULL ), + Directory (NULL ), + SectionHeader (NULL ), + SymTable (NULL ), + StringTable (NULL ), + SectionData (NULL ), + EntryAddress (0 ), + NumberOfSymbols (0 ), + SizeOfStringTable (0 ), + NumOfDirectories (0 ), + NumOfSections (0 ), + FileHeaderOffset (0 ) { } diff --git a/xbmc/cores/DllLoader/DllLoader.cpp b/xbmc/cores/DllLoader/DllLoader.cpp index 8f7175f8fb..16bb45909c 100644 --- a/xbmc/cores/DllLoader/DllLoader.cpp +++ b/xbmc/cores/DllLoader/DllLoader.cpp @@ -32,11 +32,6 @@ extern "C" FILE *fopen_utf8(const char *_Filename, const char *_Mode); #define fopen_utf8 fopen #endif -typedef struct _UNICODE_STRING { - USHORT Length; - USHORT MaximumLength; - PWSTR Buffer; -} UNICODE_STRING, *PUNICODE_STRING; #include "commons/Exception.h" #define DLL_PROCESS_DETACH 0 diff --git a/xbmc/cores/DllLoader/LibraryLoader.h b/xbmc/cores/DllLoader/LibraryLoader.h index 144f8629cc..0f2a1b71af 100644 --- a/xbmc/cores/DllLoader/LibraryLoader.h +++ b/xbmc/cores/DllLoader/LibraryLoader.h @@ -50,6 +50,8 @@ public: int GetRef(); private: + LibraryLoader(const LibraryLoader&); + LibraryLoader& operator=(const LibraryLoader&); char* m_sFileName; char* m_sPath; int m_iRefCount; diff --git a/xbmc/cores/DllLoader/Win32DllLoader.cpp b/xbmc/cores/DllLoader/Win32DllLoader.cpp index 861ebdc35d..de84d4da45 100644 --- a/xbmc/cores/DllLoader/Win32DllLoader.cpp +++ b/xbmc/cores/DllLoader/Win32DllLoader.cpp @@ -392,7 +392,6 @@ bool FunctionNeedsWrapping(Export *exports, const char *functionName, void **fix bool Win32DllLoader::ResolveImport(const char *dllName, const char *functionName, void **fixup) { - char *dll = GetName(); return FunctionNeedsWrapping(win32_exports, functionName, fixup); } diff --git a/xbmc/cores/DllLoader/coff.cpp b/xbmc/cores/DllLoader/coff.cpp index 870e0d43e5..ab54263b34 100644 --- a/xbmc/cores/DllLoader/coff.cpp +++ b/xbmc/cores/DllLoader/coff.cpp @@ -69,6 +69,7 @@ CoffLoader::CoffLoader() NumOfDirectories = 0; NumOfSections = 0; FileHeaderOffset = 0; + EntryAddress = 0; hModule = NULL; } @@ -486,7 +487,6 @@ char *CoffLoader::GetStringTblOff(int Offset) char *CoffLoader::GetSymbolName(SymbolTable_t *sym) { - static char shortname[9]; __int64 index = sym->Name.Offset; int low = (int)(index & 0xFFFFFFFF); int high = (int)((index >> 32) & 0xFFFFFFFF); @@ -497,6 +497,7 @@ char *CoffLoader::GetSymbolName(SymbolTable_t *sym) } else { + static char shortname[9]; memset(shortname, 0, 9); strncpy(shortname, (char *)sym->Name.ShortName, 8); return shortname; diff --git a/xbmc/cores/DllLoader/coffldr.h b/xbmc/cores/DllLoader/coffldr.h index 296fdafc26..e87e5bc5e8 100644 --- a/xbmc/cores/DllLoader/coffldr.h +++ b/xbmc/cores/DllLoader/coffldr.h @@ -78,10 +78,10 @@ protected: int FileHeaderOffset; // Members for printing the structures - void PrintFileHeader(COFF_FileHeader_t *FileHeader); - void PrintWindowsHeader(WindowsHeader_t *WinHdr); - void PrintOptionHeader(OptionHeader_t *OptHdr); - void PrintSection(SectionHeader_t *ScnHdr, char *data); + static void PrintFileHeader(COFF_FileHeader_t *FileHeader); + static void PrintWindowsHeader(WindowsHeader_t *WinHdr); + static void PrintOptionHeader(OptionHeader_t *OptHdr); + static void PrintSection(SectionHeader_t *ScnHdr, char *data); void PrintStringTable(void); void PrintSymbolTable(void); diff --git a/xbmc/cores/DllLoader/dll_tracker.cpp b/xbmc/cores/DllLoader/dll_tracker.cpp index 53054f9f65..c40dfd517d 100644 --- a/xbmc/cores/DllLoader/dll_tracker.cpp +++ b/xbmc/cores/DllLoader/dll_tracker.cpp @@ -65,14 +65,14 @@ void tracker_dll_free(DllLoader* pDll) } // free all functions which where created at the time we loaded the dll DummyListIter dit = (*it)->dummyList.begin(); - while (dit != (*it)->dummyList.end()) { free((void*)*dit); dit++; } + while (dit != (*it)->dummyList.end()) { free((void*)*dit); ++dit; } (*it)->dummyList.clear(); delete (*it); it = g_trackedDlls.erase(it); } else - it++; + ++it; } } diff --git a/xbmc/cores/DllLoader/exports/emu_kernel32.cpp b/xbmc/cores/DllLoader/exports/emu_kernel32.cpp index 612d616765..e555279d6c 100644 --- a/xbmc/cores/DllLoader/exports/emu_kernel32.cpp +++ b/xbmc/cores/DllLoader/exports/emu_kernel32.cpp @@ -218,13 +218,6 @@ extern "C" DWORD WINAPI dllGetFileAttributesA(LPCSTR lpFileName) #endif } -struct SThreadWrapper -{ - LPTHREAD_START_ROUTINE lpStartAddress; - LPVOID lpParameter; - PCHAR lpDLL; -}; - extern "C" void WINAPI dllSleep(DWORD dwTime) { return ::Sleep(dwTime); diff --git a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp index 32db3b93e4..2f15c971d4 100644 --- a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp +++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp @@ -104,12 +104,6 @@ bool bVecDirsInited = false; extern void update_cache_dialog(const char* tmp); #endif -struct _env -{ - const char* name; - char* value; -}; - #define EMU_MAX_ENVIRONMENT_ITEMS 100 static char *dll__environ_imp[EMU_MAX_ENVIRONMENT_ITEMS + 1]; extern "C" char **dll__environ; diff --git a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h index d9e30627cb..26ccce6d50 100644 --- a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h +++ b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h @@ -76,7 +76,6 @@ public: private: EmuFileObject m_files[MAX_EMULATED_FILES]; CCriticalSection m_criticalSection; - bool m_initialized; }; extern CEmuFileWrapper g_emuFileWrapper; diff --git a/xbmc/cores/DllLoader/ldt_keeper.c b/xbmc/cores/DllLoader/ldt_keeper.c index c88c458a7b..07e3ff4e1d 100644 --- a/xbmc/cores/DllLoader/ldt_keeper.c +++ b/xbmc/cores/DllLoader/ldt_keeper.c @@ -100,7 +100,6 @@ struct modify_ldt_ldt_s { unsigned int read_exec_only:1; unsigned int limit_in_pages:1; unsigned int seg_not_present:1; - unsigned int useable:1; }; #define MODIFY_LDT_CONTENTS_DATA 0 diff --git a/xbmc/cores/ExternalPlayer/ExternalPlayer.cpp b/xbmc/cores/ExternalPlayer/ExternalPlayer.cpp index 782fb27d53..46ab4a3865 100644 --- a/xbmc/cores/ExternalPlayer/ExternalPlayer.cpp +++ b/xbmc/cores/ExternalPlayer/ExternalPlayer.cpp @@ -86,6 +86,10 @@ CExternalPlayer::CExternalPlayer(IPlayerCallback& callback) m_playOneStackItem = false; m_dialog = NULL; + m_hwndXbmc = NULL; + m_xPos = 0; + m_yPos = 0; + #if defined(_WIN32) memset(&m_processInfo, 0, sizeof(m_processInfo)); diff --git a/xbmc/cores/VideoRenderers/BaseRenderer.cpp b/xbmc/cores/VideoRenderers/BaseRenderer.cpp index f75e335d1c..2f35f161a2 100644 --- a/xbmc/cores/VideoRenderers/BaseRenderer.cpp +++ b/xbmc/cores/VideoRenderers/BaseRenderer.cpp @@ -672,12 +672,10 @@ void CBaseRenderer::SetViewMode(int viewMode) // calculate the desired output ratio float outputFrameRatio = sourceFrameRatio * g_settings.m_fPixelRatio / CDisplaySettings::Get().GetResolutionInfo(res).fPixelRatio; // now calculate the correct zoom amount. First zoom to full width. - float newWidth = screenWidth; - float newHeight = newWidth / outputFrameRatio; + float newHeight = screenWidth / outputFrameRatio; if (newHeight > screenHeight) { // zoom to full height newHeight = screenHeight; - newWidth = newHeight * outputFrameRatio; } // now work out the zoom amount so that no zoom is done g_settings.m_fZoomAmount = (m_sourceHeight - CMediaSettings::Get().GetCurrentVideoSettings().m_CropTop - CMediaSettings::Get().GetCurrentVideoSettings().m_CropBottom) / newHeight; diff --git a/xbmc/cores/VideoRenderers/BaseRenderer.h b/xbmc/cores/VideoRenderers/BaseRenderer.h index 66496f2a21..3e1944d2e9 100644 --- a/xbmc/cores/VideoRenderers/BaseRenderer.h +++ b/xbmc/cores/VideoRenderers/BaseRenderer.h @@ -97,7 +97,7 @@ protected: bool FindResolutionFromOverride(float fps, float& weight, bool fallback); void FindResolutionFromFpsMatch(float fps, float& weight); RESOLUTION FindClosestResolution(float fps, float multiplier, RESOLUTION current, float& weight); - float RefreshWeight(float refresh, float fps); + static float RefreshWeight(float refresh, float fps); void CalcNormalDisplayRect(float offsetX, float offsetY, float screenWidth, float screenHeight, float inputFrameRatio, float zoomAmount, float verticalShift); void CalculateFrameAspectRatio(unsigned int desired_width, unsigned int desired_height); void ManageDisplay(); diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp index 01776ba8ee..d6dbe051c1 100644 --- a/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp +++ b/xbmc/cores/VideoRenderers/LinuxRendererGL.cpp @@ -175,6 +175,19 @@ CLinuxRendererGL::CLinuxRendererGL() m_rgbBufferSize = 0; m_context = NULL; m_rgbPbo = 0; + m_fbo.width = 0.0; + m_fbo.height = 0.0; + m_NumYV12Buffers = 0; + m_iLastRenderBuffer = 0; + m_bConfigured = false; + m_bValidated = false; + m_bImageReady = false; + m_clearColour = 0.0f; + m_pboSupported = false; + m_pboUsed = false; + m_nonLinStretch = false; + m_nonLinStretchGui = false; + m_pixelRatio = 0.0f; m_dllSwScale = new DllSwScale; } @@ -1006,14 +1019,14 @@ void CLinuxRendererGL::LoadShaders(int field) UpdateVideoFilter(); break; } - else + else if (m_pYUVShader) { m_pYUVShader->Free(); delete m_pYUVShader; m_pYUVShader = NULL; - CLog::Log(LOGERROR, "GL: Error enabling YUV2RGB GLSL shader"); - // drop through and try ARB } + CLog::Log(LOGERROR, "GL: Error enabling YUV2RGB GLSL shader"); + // drop through and try ARB } case RENDER_METHOD_ARB: // Try ARB shaders if supported and user requested it or GLSL shaders failed. @@ -1032,14 +1045,14 @@ void CLinuxRendererGL::LoadShaders(int field) UpdateVideoFilter(); break; } - else + else if (m_pYUVShader) { m_pYUVShader->Free(); delete m_pYUVShader; m_pYUVShader = NULL; - CLog::Log(LOGERROR, "GL: Error enabling YUV2RGB ARB shader"); - // drop through and use SW } + CLog::Log(LOGERROR, "GL: Error enabling YUV2RGB ARB shader"); + // drop through and use SW } case RENDER_METHOD_SOFTWARE: default: diff --git a/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp b/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp index 9a60bfb9cd..cca55c78b2 100644 --- a/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp +++ b/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp @@ -115,6 +115,13 @@ CLinuxRendererGLES::CLinuxRendererGLES() m_dllSwScale = new DllSwScale; m_sw_context = NULL; + m_NumYV12Buffers = 0; + m_iLastRenderBuffer = 0; + m_bConfigured = false; + m_bValidated = false; + m_bImageReady = false; + m_StrictBinding = false; + m_clearColour = 0.0f; } CLinuxRendererGLES::~CLinuxRendererGLES() @@ -667,7 +674,7 @@ void CLinuxRendererGLES::LoadShaders(int field) UpdateVideoFilter(); break; } - else + else if (m_pYUVShader) { m_pYUVShader->Free(); delete m_pYUVShader; @@ -1017,16 +1024,16 @@ void CLinuxRendererGLES::RenderMultiPass(int index, int field) CLog::Log(LOGERROR, "GL: Error enabling YUV shader"); } - float imgwidth = planes[0].rect.x2 - planes[0].rect.x1; - float imgheight = planes[0].rect.y2 - planes[0].rect.y1; - if (m_textureTarget == GL_TEXTURE_2D) - { - imgwidth *= planes[0].texwidth; - imgheight *= planes[0].texheight; - } - - // 1st Pass to video frame size +// 1st Pass to video frame size //TODO +// float imgwidth = planes[0].rect.x2 - planes[0].rect.x1; +// float imgheight = planes[0].rect.y2 - planes[0].rect.y1; +// if (m_textureTarget == GL_TEXTURE_2D) +// { +// imgwidth *= planes[0].texwidth; +// imgheight *= planes[0].texheight; +// } +// // glBegin(GL_QUADS); // // glMultiTexCoord2fARB(GL_TEXTURE0, planes[0].rect.x1, planes[0].rect.y1); @@ -1094,10 +1101,10 @@ void CLinuxRendererGLES::RenderMultiPass(int index, int field) VerifyGLState(); - imgwidth /= m_sourceWidth; - imgheight /= m_sourceHeight; - //TODO +// imgwidth /= m_sourceWidth; +// imgheight /= m_sourceHeight; +// // glBegin(GL_QUADS); // // glMultiTexCoord2fARB(GL_TEXTURE0, 0.0f , 0.0f); @@ -1965,7 +1972,7 @@ EINTERLACEMETHOD CLinuxRendererGLES::AutoInterlaceMethod() // Player controls render, let it pick the auto-deinterlace method if((m_renderMethod & RENDER_BYPASS)) { - if (m_deinterlaceMethods.size()) + if (!m_deinterlaceMethods.empty()) return ((EINTERLACEMETHOD)m_deinterlaceMethods[0]); else return VS_INTERLACEMETHOD_NONE; diff --git a/xbmc/cores/VideoRenderers/OverlayRenderer.cpp b/xbmc/cores/VideoRenderers/OverlayRenderer.cpp index b00f28ebc8..4dd27b7912 100644 --- a/xbmc/cores/VideoRenderers/OverlayRenderer.cpp +++ b/xbmc/cores/VideoRenderers/OverlayRenderer.cpp @@ -130,7 +130,7 @@ void CRenderer::Release(SElementV& list) SElementV l = list; list.clear(); - for(SElementV::iterator it = l.begin(); it != l.end(); it++) + for(SElementV::iterator it = l.begin(); it != l.end(); ++it) { if(it->overlay) it->overlay->Release(); @@ -144,7 +144,7 @@ void CRenderer::Release(COverlayV& list) COverlayV l = list; list.clear(); - for(COverlayV::iterator it = l.begin(); it != l.end(); it++) + for(COverlayV::iterator it = l.begin(); it != l.end(); ++it) (*it)->Release(); } @@ -175,7 +175,7 @@ void CRenderer::Render() Release(m_cleanup); SElementV& list = m_buffers[m_render]; - for(SElementV::iterator it = list.begin(); it != list.end(); it++) + for(SElementV::iterator it = list.begin(); it != list.end(); ++it) { COverlay* o = NULL; diff --git a/xbmc/cores/VideoRenderers/OverlayRenderer.h b/xbmc/cores/VideoRenderers/OverlayRenderer.h index 8222b3a082..57907038d9 100644 --- a/xbmc/cores/VideoRenderers/OverlayRenderer.h +++ b/xbmc/cores/VideoRenderers/OverlayRenderer.h @@ -107,6 +107,7 @@ namespace OVERLAY { { overlay_dvd = NULL; overlay = NULL; + pts = 0.0; } double pts; CDVDOverlay* overlay_dvd; diff --git a/xbmc/cores/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoRenderers/RenderManager.cpp index 1b761ace01..14c30843e8 100644 --- a/xbmc/cores/VideoRenderers/RenderManager.cpp +++ b/xbmc/cores/VideoRenderers/RenderManager.cpp @@ -65,7 +65,8 @@ class CRetakeLock { public: CRetakeLock(CSharedSection §ion, bool immidiate = true, CCriticalSection &owned = g_graphicsContext) - : m_owned(owned) + : m_lock (NULL ), + m_owned(owned ) { m_count = m_owned.exit(); m_lock = new T(section); @@ -104,6 +105,10 @@ CXBMCRenderManager::CXBMCRenderManager() m_bReconfigured = false; m_hasCaptures = false; m_displayLatency = 0.0f; + m_presentcorr = 0.0; + m_presenterr = 0.0; + memset(&m_errorbuff, 0, ERRORBUFFSIZE); + m_errorindex = 0; } CXBMCRenderManager::~CXBMCRenderManager() @@ -496,7 +501,7 @@ void CXBMCRenderManager::ManageCaptures() if (capture->IsAsync() && !(capture->GetFlags() & CAPTUREFLAG_IMMEDIATELY)) RenderCapture(capture); - it++; + ++it; } else { @@ -505,7 +510,7 @@ void CXBMCRenderManager::ManageCaptures() } else { - it++; + ++it; } } @@ -568,8 +573,6 @@ void CXBMCRenderManager::FlipPage(volatile bool& bStop, double timestamp /* = 0L EDEINTERLACEMODE deinterlacemode = CMediaSettings::Get().GetCurrentVideoSettings().m_DeinterlaceMode; EINTERLACEMETHOD interlacemethod = AutoInterlaceMethodInternal(CMediaSettings::Get().GetCurrentVideoSettings().m_InterlaceMethod); - bool invert = false; - if (deinterlacemode == VS_DEINTERLACEMODE_OFF) m_presentmethod = PRESENT_METHOD_SINGLE; else @@ -578,6 +581,7 @@ void CXBMCRenderManager::FlipPage(volatile bool& bStop, double timestamp /* = 0L m_presentmethod = PRESENT_METHOD_SINGLE; else { + bool invert = false; if (interlacemethod == VS_INTERLACEMETHOD_RENDER_BLEND) m_presentmethod = PRESENT_METHOD_BLEND; else if (interlacemethod == VS_INTERLACEMETHOD_RENDER_WEAVE) m_presentmethod = PRESENT_METHOD_WEAVE; else if (interlacemethod == VS_INTERLACEMETHOD_RENDER_WEAVE_INVERTED) { m_presentmethod = PRESENT_METHOD_WEAVE ; invert = true; } diff --git a/xbmc/cores/VideoRenderers/VideoShaders/ConvolutionKernels.h b/xbmc/cores/VideoRenderers/VideoShaders/ConvolutionKernels.h index b970b9326d..c0b5ed34fc 100644 --- a/xbmc/cores/VideoRenderers/VideoShaders/ConvolutionKernels.h +++ b/xbmc/cores/VideoRenderers/VideoShaders/ConvolutionKernels.h @@ -36,7 +36,8 @@ class CConvolutionKernel uint8_t* GetUint8Pixels() { return m_uint8pixels; } private: - + CConvolutionKernel(const CConvolutionKernel&); + CConvolutionKernel& operator=(const CConvolutionKernel&); void Lanczos2(); void Lanczos3Fast(); void Lanczos3(); @@ -44,9 +45,9 @@ class CConvolutionKernel void Spline36(); void Bicubic(double B, double C); - double LanczosWeight(double x, double radius); - double Spline36Weight(double x); - double BicubicWeight(double x, double B, double C); + static double LanczosWeight(double x, double radius); + static double Spline36Weight(double x); + static double BicubicWeight(double x, double B, double C); void ToIntFract(); void ToUint8(); diff --git a/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.cpp b/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.cpp index 0784bce3bb..9fbaaea1be 100644 --- a/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.cpp +++ b/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.cpp @@ -32,7 +32,11 @@ CYUV2RGBMatrix::CYUV2RGBMatrix() { - m_NeedRecalc = true; + m_NeedRecalc = true; + m_blacklevel = 0.0f; + m_contrast = 0.0f; + m_flags = 0; + m_format = RENDER_FMT_NONE; } void CYUV2RGBMatrix::SetParameters(float contrast, float blacklevel, unsigned int flags, ERenderFormat format) @@ -159,7 +163,7 @@ bool CWinShader::Execute(std::vector<LPDIRECT3DSURFACE9> *vecRT, unsigned int ve LPDIRECT3DSURFACE9 oldRT = 0; // The render target will be overriden: save the caller's original RT - if (vecRT != NULL && vecRT->size() > 0) + if (vecRT != NULL && !vecRT->empty()) pD3DDevice->GetRenderTarget(0, &oldRT); pD3DDevice->SetFVF(m_FVF); diff --git a/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.h b/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.h index b9b02225f6..03aa21d38c 100644 --- a/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.h +++ b/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.h @@ -46,7 +46,12 @@ private: class CWinShader { protected: - CWinShader() {} + CWinShader() : + m_vbsize(0), + m_FVF(0), + m_vertsize(0), + m_primitivesCount(0) + {} virtual ~CWinShader(); virtual bool CreateVertexBuffer(DWORD FVF, unsigned int vertCount, unsigned int vertSize, unsigned int primitivesCount); virtual bool LockVertexBuffer(void **data); @@ -74,6 +79,13 @@ public: float brightness, unsigned int flags, YUVBuffer* YUVbuf); + CYUV2RGBShader() : + m_sourceWidth (0), + m_sourceHeight(0), + m_format (RENDER_FMT_NONE) + { + memset(&m_texSteps,0,sizeof(m_texSteps)); + } virtual ~CYUV2RGBShader(); protected: @@ -138,6 +150,7 @@ public: unsigned int destWidth, unsigned int destHeight, CRect sourceRect, CRect destRect); + CConvolutionShader1Pass() : m_sourceWidth (0), m_sourceHeight(0) {} protected: virtual void PrepareParameters(unsigned int sourceWidth, unsigned int sourceHeight, diff --git a/xbmc/cores/VideoRenderers/WinRenderer.cpp b/xbmc/cores/VideoRenderers/WinRenderer.cpp index 65c05597c1..0a08e03ef4 100644 --- a/xbmc/cores/VideoRenderers/WinRenderer.cpp +++ b/xbmc/cores/VideoRenderers/WinRenderer.cpp @@ -85,6 +85,13 @@ CWinRenderer::CWinRenderer() m_sw_scale_ctx = NULL; m_dllSwScale = NULL; + m_destWidth = 0; + m_destHeight = 0; + m_dllAvUtil = NULL; + m_dllAvCodec = NULL; + m_bConfigured = false; + m_clearColour = 0; + m_format = RENDER_FMT_NONE; } CWinRenderer::~CWinRenderer() @@ -512,7 +519,7 @@ void CWinRenderer::SelectPSVideoFilter() bool scaleUp = (int)m_sourceHeight < g_graphicsContext.GetHeight() && (int)m_sourceWidth < g_graphicsContext.GetWidth(); bool scaleFps = m_fps < (g_advancedSettings.m_videoAutoScaleMaxFps + 0.01f); - if (Supports(VS_SCALINGMETHOD_LANCZOS3_FAST) && scaleSD && scaleUp && scaleFps) + if (scaleSD && scaleUp && scaleFps && Supports(VS_SCALINGMETHOD_LANCZOS3_FAST)) { m_scalingMethod = VS_SCALINGMETHOD_LANCZOS3_FAST; m_bUseHQScaler = true; @@ -798,46 +805,46 @@ void CWinRenderer::ScaleFixedPipeline() if (!cbcontrol) { - hr = pD3DDev->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 ); - hr = pD3DDev->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); - hr = pD3DDev->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 ); - hr = pD3DDev->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE ); - hr = pD3DDev->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_DISABLE ); - hr = pD3DDev->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_DISABLE ); + pD3DDev->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 ); + pD3DDev->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); + pD3DDev->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 ); + pD3DDev->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE ); + pD3DDev->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_DISABLE ); + pD3DDev->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_DISABLE ); } else { - hr = pD3DDev->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE2X ); - hr = pD3DDev->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); - hr = pD3DDev->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE ); - hr = pD3DDev->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 ); - hr = pD3DDev->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE ); - - hr = pD3DDev->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_ADDSIGNED ); - hr = pD3DDev->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_CURRENT ); - hr = pD3DDev->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_SPECULAR ); - hr = pD3DDev->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 ); - hr = pD3DDev->SetTextureStageState( 1, D3DTSS_ALPHAARG1, D3DTA_CURRENT ); - - hr = pD3DDev->SetTextureStageState( 2, D3DTSS_COLOROP, D3DTOP_DISABLE ); - hr = pD3DDev->SetTextureStageState( 2, D3DTSS_ALPHAOP, D3DTOP_DISABLE ); + pD3DDev->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE2X ); + pD3DDev->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); + pD3DDev->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE ); + pD3DDev->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 ); + pD3DDev->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE ); + + pD3DDev->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_ADDSIGNED ); + pD3DDev->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_CURRENT ); + pD3DDev->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_SPECULAR ); + pD3DDev->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 ); + pD3DDev->SetTextureStageState( 1, D3DTSS_ALPHAARG1, D3DTA_CURRENT ); + + pD3DDev->SetTextureStageState( 2, D3DTSS_COLOROP, D3DTOP_DISABLE ); + pD3DDev->SetTextureStageState( 2, D3DTSS_ALPHAOP, D3DTOP_DISABLE ); } - hr = pD3DDev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); - hr = pD3DDev->SetRenderState(D3DRS_LIGHTING, FALSE); - hr = pD3DDev->SetRenderState(D3DRS_ZENABLE, FALSE); - hr = pD3DDev->SetRenderState(D3DRS_STENCILENABLE, FALSE); - hr = pD3DDev->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); - hr = pD3DDev->SetRenderState(D3DRS_ALPHATESTENABLE, FALSE); - hr = pD3DDev->SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE); - hr = pD3DDev->SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA|D3DCOLORWRITEENABLE_BLUE|D3DCOLORWRITEENABLE_GREEN|D3DCOLORWRITEENABLE_RED); - - hr = pD3DDev->SetSamplerState(0, D3DSAMP_MAGFILTER, m_TextureFilter); - hr = pD3DDev->SetSamplerState(0, D3DSAMP_MINFILTER, m_TextureFilter); - hr = pD3DDev->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP); - hr = pD3DDev->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP); - - hr = pD3DDev->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1); + pD3DDev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); + pD3DDev->SetRenderState(D3DRS_LIGHTING, FALSE); + pD3DDev->SetRenderState(D3DRS_ZENABLE, FALSE); + pD3DDev->SetRenderState(D3DRS_STENCILENABLE, FALSE); + pD3DDev->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); + pD3DDev->SetRenderState(D3DRS_ALPHATESTENABLE, FALSE); + pD3DDev->SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE); + pD3DDev->SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA|D3DCOLORWRITEENABLE_BLUE|D3DCOLORWRITEENABLE_GREEN|D3DCOLORWRITEENABLE_RED); + + pD3DDev->SetSamplerState(0, D3DSAMP_MAGFILTER, m_TextureFilter); + pD3DDev->SetSamplerState(0, D3DSAMP_MINFILTER, m_TextureFilter); + pD3DDev->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP); + pD3DDev->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP); + + pD3DDev->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1); if (FAILED(hr = pD3DDev->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, vertex, sizeof(VERTEX)))) CLog::Log(LOGERROR, __FUNCTION__": DrawPrimitiveUP failed. %s", CRenderSystemDX::GetErrorDescription(hr).c_str()); diff --git a/xbmc/cores/VideoRenderers/WinRenderer.h b/xbmc/cores/VideoRenderers/WinRenderer.h index b483906cc7..251aa31c19 100644 --- a/xbmc/cores/VideoRenderers/WinRenderer.h +++ b/xbmc/cores/VideoRenderers/WinRenderer.h @@ -112,6 +112,7 @@ struct SVideoPlane struct YUVBuffer : SVideoBuffer { + YUVBuffer() : m_width (0), m_height(0), m_format(RENDER_FMT_NONE), m_activeplanes(0) {} ~YUVBuffer(); bool Create(ERenderFormat format, unsigned int width, unsigned int height); virtual void Release(); diff --git a/xbmc/cores/VideoRenderers/legacy/ComboRenderer.cpp b/xbmc/cores/VideoRenderers/legacy/ComboRenderer.cpp index 1d4ca9a185..b5439e8cf5 100644 --- a/xbmc/cores/VideoRenderers/legacy/ComboRenderer.cpp +++ b/xbmc/cores/VideoRenderers/legacy/ComboRenderer.cpp @@ -34,6 +34,8 @@ CComboRenderer::CComboRenderer(LPDIRECT3DDEVICE8 pDevice) m_hPixelShader = 0; m_iYUY2RenderBuffer = 0; m_iYUY2Buffers = 2; + m_iScreenWidth = 0; + m_iScreenHeight = 0; } void CComboRenderer::DeleteYUY2Texture(int index) diff --git a/xbmc/cores/VideoRenderers/legacy/RGBRendererV2.cpp b/xbmc/cores/VideoRenderers/legacy/RGBRendererV2.cpp index 44056034eb..39f869fbb9 100644 --- a/xbmc/cores/VideoRenderers/legacy/RGBRendererV2.cpp +++ b/xbmc/cores/VideoRenderers/legacy/RGBRendererV2.cpp @@ -37,6 +37,8 @@ CRGBRendererV2::CRGBRendererV2(LPDIRECT3DDEVICE8 pDevice) m_UVLookup = NULL; m_UVErrorLookup = NULL; m_motionpass = 5; + m_444GeneratedFull = false; + m_444RenderBuffer = 0; memset(&m_yuvcoef_last, 0, sizeof(YUVCOEF)); memset(&m_yuvrange_last, 0, sizeof(YUVRANGE)); } diff --git a/xbmc/cores/amlplayer/AMLPlayer.cpp b/xbmc/cores/amlplayer/AMLPlayer.cpp index 2677341d99..85295485ec 100644 --- a/xbmc/cores/amlplayer/AMLPlayer.cpp +++ b/xbmc/cores/amlplayer/AMLPlayer.cpp @@ -316,7 +316,7 @@ CAMLSubTitleThread::~CAMLSubTitleThread() void CAMLSubTitleThread::UpdateSubtitle(CStdString &subtitle, int64_t elapsed_ms) { CSingleLock lock(m_subtitle_csection); - if (m_subtitle_strings.size()) + if (!m_subtitle_strings.empty()) { AMLSubtitle *amlsubtitle; // remove any expired subtitles @@ -327,7 +327,7 @@ void CAMLSubTitleThread::UpdateSubtitle(CStdString &subtitle, int64_t elapsed_ms if (elapsed_ms > amlsubtitle->endtime) it = m_subtitle_strings.erase(it); else - it++; + ++it; } // find the current subtitle @@ -340,7 +340,7 @@ void CAMLSubTitleThread::UpdateSubtitle(CStdString &subtitle, int64_t elapsed_ms subtitle = amlsubtitle->string; break; } - it++; + ++it; } } } @@ -364,7 +364,6 @@ void CAMLSubTitleThread::Process(void) int sub_size = m_dll->codec_get_sub_size_fd(m_subtitle_codec); if (sub_size > 0) { - int sub_type = 0, sub_pts = 0; // calloc sub_size + 1 so we auto terminate the string char *sub_buffer = (char*)calloc(sub_size + 1, 1); m_dll->codec_read_sub_data_fd(m_subtitle_codec, sub_buffer, sub_size); @@ -381,10 +380,9 @@ void CAMLSubTitleThread::Process(void) CSingleLock lock(m_subtitle_csection); AMLSubtitle *subtitle = new AMLSubtitle; - - sub_type = (sub_buffer[5] << 16) | (sub_buffer[6] << 8) | sub_buffer[7]; + int sub_type = (sub_buffer[5] << 16) | (sub_buffer[6] << 8) | sub_buffer[7]; // sub_pts are in ffmpeg timebase, not ms timebase, convert it. - sub_pts = (sub_buffer[12] << 24) | (sub_buffer[13] << 16) | (sub_buffer[14] << 8) | sub_buffer[15]; + int sub_pts = (sub_buffer[12] << 24) | (sub_buffer[13] << 16) | (sub_buffer[14] << 8) | sub_buffer[15]; /* TODO: handle other subtitle codec types // subtitle codecs @@ -502,20 +500,46 @@ void CAMLSubTitleThread::Process(void) //////////////////////////////////////////////////////////////////////////////////////////// CAMLPlayer::CAMLPlayer(IPlayerCallback &callback) : IPlayer(callback), - CThread("CAMLPlayer"), - m_ready(true) + CThread ("CAMLPlayer" ), + m_cpu (0 ), + m_speed (0 ), + m_paused (false ), + m_bAbortRequest (false ), + m_ready (true ), + m_audio_index (0 ), + m_audio_count (0 ), + m_audio_delay (0 ), + m_audio_passthrough_ac3 (false ), + m_audio_passthrough_dts (false ), + m_audio_mute (false ), + m_audio_volume (0.0f ), + m_video_index (0 ), + m_video_count (0 ), + m_video_width (0 ), + m_video_height (0 ), + m_video_fps_numerator (0 ), + m_video_fps_denominator (0 ), + m_subtitle_index (0 ), + m_subtitle_count (0 ), + m_subtitle_show (false ), + m_subtitle_delay (0 ), + m_subtitle_thread (NULL ), + m_chapter_index (0 ), + m_chapter_count (0 ), + m_show_mainvideo (0 ), + m_view_mode (0 ), + m_zoom (0 ), + m_contrast (0 ), + m_brightness (0 ) { m_dll = new DllLibAmplayer; m_dll->Load(); m_pid = -1; - m_speed = 0; - m_paused = false; #if defined(_DEBUG) m_log_level = 5; #else m_log_level = 3; #endif - m_bAbortRequest = false; // for external subtitles m_dvdOverlayContainer = new CDVDOverlayContainer; @@ -814,7 +838,7 @@ void CAMLPlayer::SetVolume(float volume) void CAMLPlayer::GetAudioInfo(CStdString &strAudioInfo) { CSingleLock lock(m_aml_csection); - if (m_audio_streams.size() == 0 || m_audio_index > (int)(m_audio_streams.size() - 1)) + if (m_audio_streams.empty() || m_audio_index > (int)(m_audio_streams.size() - 1)) return; strAudioInfo.Format("Audio stream (%s) [Kb/s:%.2f]", @@ -825,7 +849,7 @@ void CAMLPlayer::GetAudioInfo(CStdString &strAudioInfo) void CAMLPlayer::GetVideoInfo(CStdString &strVideoInfo) { CSingleLock lock(m_aml_csection); - if (m_video_streams.size() == 0 || m_video_index > (int)(m_video_streams.size() - 1)) + if (m_video_streams.empty() || m_video_index > (int)(m_video_streams.size() - 1)) return; strVideoInfo.Format("Video stream (%s) [fr:%.3f Mb/s:%.2f]", @@ -1085,7 +1109,7 @@ __int64 CAMLPlayer::GetTotalTime() void CAMLPlayer::GetAudioStreamInfo(int index, SPlayerAudioStreamInfo &info) { CSingleLock lock(m_aml_csection); - if (index < 0 || m_audio_streams.size() == 0 || index > (int)(m_audio_streams.size() - 1)) + if (index < 0 || m_audio_streams.empty() || index > (int)(m_audio_streams.size() - 1)) return; info.bitrate = m_audio_streams[index]->bit_rate; @@ -1126,7 +1150,7 @@ void CAMLPlayer::GetAudioStreamInfo(int index, SPlayerAudioStreamInfo &info) void CAMLPlayer::GetVideoStreamInfo(SPlayerVideoStreamInfo &info) { CSingleLock lock(m_aml_csection); - if (m_video_streams.size() == 0 || m_video_index > (int)(m_video_streams.size() - 1)) + if (m_video_streams.empty() || m_video_index > (int)(m_video_streams.size() - 1)) return; info.bitrate = m_video_streams[m_video_index]->bit_rate; @@ -1150,7 +1174,7 @@ int CAMLPlayer::GetBitsPerSample() int CAMLPlayer::GetSampleRate() { CSingleLock lock(m_aml_csection); - if (m_audio_streams.size() == 0 || m_audio_index > (int)(m_audio_streams.size() - 1)) + if (m_audio_streams.empty() || m_audio_index > (int)(m_audio_streams.size() - 1)) return 0; return m_audio_streams[m_audio_index]->sample_rate; @@ -2103,11 +2127,11 @@ void CAMLPlayer::FindSubtitleFiles() int CAMLPlayer::AddSubtitleFile(const std::string &filename, const std::string &subfilename) { std::string ext = URIUtils::GetExtension(filename); - std::string vobsubfile = subfilename; if(ext == ".idx") { /* TODO: we do not handle idx/sub binary subs yet. + std::string vobsubfile = subfilename; if (vobsubfile.empty()) vobsubfile = URIUtils::ReplaceExtension(filename, ".sub"); diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecLPcm.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecLPcm.cpp index e53a282611..5e815c25d6 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecLPcm.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecLPcm.cpp @@ -47,12 +47,12 @@ int CDVDAudioCodecLPcm::Decode(BYTE* pData, int iSize) { BYTE* d = m_buffer; BYTE* s = pData; - int iDecoded = 0; if (iSize > m_bufferSize) iSize = m_bufferSize; if (iSize >= 12) { + int iDecoded = 0; #if 0 if (m_codecID == CODEC_ID_LPCM_S24BE) #endif diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecLibMad.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecLibMad.cpp index 022ec1b334..ccbfe1601e 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecLibMad.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecLibMad.cpp @@ -36,6 +36,8 @@ CDVDAudioCodecLibMad::CDVDAudioCodecLibMad() : CDVDAudioCodec() m_iSourceBitrate = 0; m_iInputBufferSize = 0; + memset(&m_decodedData, 0, MAD_DECODED_SIZE); + memset(&m_inputBuffer, 0, MAD_INPUT_SIZE); } CDVDAudioCodecLibMad::~CDVDAudioCodecLibMad() @@ -86,7 +88,6 @@ int CDVDAudioCodecLibMad::Decode(BYTE* pData, int iSize) { BYTE* pBuffer = m_inputBuffer; //int iBufferSize = iSize; - bool bFullOutputBuffer = false; m_iDecodedDataSize = 0; @@ -100,6 +101,7 @@ int CDVDAudioCodecLibMad::Decode(BYTE* pData, int iSize) if (m_bInitialized) { + bool bFullOutputBuffer = false; m_dll.mad_stream_buffer(&m_stream, pBuffer, m_iInputBufferSize); while (true) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecPassthroughFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecPassthroughFFmpeg.cpp index acb468ef59..e9a820e63c 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecPassthroughFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecPassthroughFFmpeg.cpp @@ -60,6 +60,11 @@ CDVDAudioCodecPassthroughFFmpeg::CDVDAudioCodecPassthroughFFmpeg(void) /* make enough room for at-least two audio frames */ m_DecodeSize = 0; m_DecodeBuffer = NULL; + m_bSupportsAC3Out = false; + m_bSupportsDTSOut = false; + m_bSupportsAACOut = false; + m_LostSync = false; + } CDVDAudioCodecPassthroughFFmpeg::~CDVDAudioCodecPassthroughFFmpeg(void) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecs.h b/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecs.h index bc6f4e0cb8..2e68e7d567 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecs.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/DVDCodecs.h @@ -61,7 +61,7 @@ extern "C" { class CDVDCodecOption { public: - CDVDCodecOption(std::string name, std::string value) { m_name = name; m_value = value; } + CDVDCodecOption(const std::string& name, const std::string& value) : m_name(name), m_value(value) {} std::string m_name; std::string m_value; }; diff --git a/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp b/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp index 30660f0b9b..eedde21324 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp @@ -128,7 +128,7 @@ CDVDVideoCodec* CDVDFactoryCodec::CreateVideoCodec(CDVDStreamInfo &hint, unsigne CDVDVideoCodec* pCodec = NULL; CDVDCodecOptions options; - if(formats.size() == 0) + if(formats.empty()) options.m_formats.push_back(RENDER_FMT_YUV420P); else options.m_formats = formats; diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h index da8de1feb9..75164d3439 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlay.h @@ -75,8 +75,8 @@ public: } /** - * decrease the reference counter by one. - */ + * increase the reference counter by one. + */ CDVDOverlay* Acquire() { AtomicIncrement(&m_references); @@ -84,8 +84,8 @@ public: } /** - * increase the reference counter by one. - */ + * decrease the reference counter by one. + */ long Release() { long count = AtomicDecrement(&m_references); @@ -145,8 +145,8 @@ public: CDVDOverlayGroup(CDVDOverlayGroup& src) : CDVDOverlay(src) { - for(VecOverlaysIter it = m_overlays.begin(); it != m_overlays.end(); ++it) - m_overlays.push_back((*it)->Acquire()); + for(VecOverlaysIter it = src.m_overlays.begin(); it != src.m_overlays.end(); ++it) + m_overlays.push_back((*it)->Clone()); } VecOverlays m_overlays; }; diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodec.h b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodec.h index 27a601e6d6..674cfce5f8 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodec.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlayCodec.h @@ -39,10 +39,7 @@ class CDVDOverlayCodec { public: - CDVDOverlayCodec(const char* name) - { - m_codecName = name; - } + CDVDOverlayCodec(const char* name) : m_codecName(name) {} virtual ~CDVDOverlayCodec() {} diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/CrystalHD.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/CrystalHD.cpp index 109b58deaa..e43df3aaa8 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/CrystalHD.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/CrystalHD.cpp @@ -1869,9 +1869,17 @@ bool CCrystalHD::bitstream_convert_init(void *in_extradata, int in_extrasize) free(out); return false; } - out = (uint8_t*)realloc(out, total_size); - if (!out) + uint8_t* new_out = (uint8_t*)realloc(out, total_size); + if (new_out) + { + out = new_out; + } + else + { + CLog::Log(LOGERROR, "bitstream_convert_init failed - %s : could not realloc the buffer out", __FUNCTION__); + free(out); return false; + } memcpy(out + total_size - unit_size - 4, nalu_header, 4); memcpy(out + total_size - unit_size, extradata + 2, unit_size); diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/CrystalHD.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/CrystalHD.h index 8f2c5dd1de..53939a9ff9 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/CrystalHD.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/CrystalHD.h @@ -44,7 +44,7 @@ public: { T* p = NULL; CSingleLock lock(m_Lock); - if (m_Queue.size()) + if (!m_Queue.empty()) { p = m_Queue.front(); m_Queue.pop_front(); diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp index 9433f9bb0b..2302772f8f 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp @@ -294,7 +294,7 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options } // set any special options - for(std::vector<CDVDCodecOption>::iterator it = options.m_keys.begin(); it != options.m_keys.end(); it++) + for(std::vector<CDVDCodecOption>::iterator it = options.m_keys.begin(); it != options.m_keys.end(); ++it) { if (it->m_name == "surfaces") m_uSurfacesCount = std::atoi(it->m_value.c_str()); @@ -839,7 +839,7 @@ int CDVDVideoCodecFFmpeg::FilterProcess(AVFrame* frame) { result = m_dllAvFilter.av_buffersink_get_buffer_ref(m_pFilterOut, &m_pBufferRef, 0); - if(!m_pBufferRef) + if(!m_pBufferRef || result < 0) { CLog::Log(LOGERROR, "CDVDVideoCodecFFmpeg::FilterProcess - cur_buf"); return VC_ERROR; diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecLibMpeg2.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecLibMpeg2.h index b6758025a2..9b17c296bd 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecLibMpeg2.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecLibMpeg2.h @@ -43,7 +43,7 @@ protected: inline void ReleaseBuffer(DVDVideoPicture* pPic); inline void DeleteBuffer(DVDVideoPicture* pPic); - int GuessAspect(const mpeg2_sequence_t *sequence, unsigned int *pixel_width, unsigned int *pixel_height); + static int GuessAspect(const mpeg2_sequence_t *sequence, unsigned int *pixel_width, unsigned int *pixel_height); mpeg2dec_t* m_pHandle; const mpeg2_info_t* m_pInfo; diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecOpenMax.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecOpenMax.cpp index 6074ba5604..fdd947227e 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecOpenMax.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecOpenMax.cpp @@ -98,8 +98,6 @@ bool CDVDVideoCodecOpenMax::Open(CDVDStreamInfo &hints, CDVDCodecOptions &option // allocate a YV12 DVDVideoPicture buffer. // first make sure all properties are reset. memset(&m_videobuffer, 0, sizeof(DVDVideoPicture)); - unsigned int luma_pixels = hints.width * hints.height; - unsigned int chroma_pixels = luma_pixels/4; m_videobuffer.dts = DVD_NOPTS_VALUE; m_videobuffer.pts = DVD_NOPTS_VALUE; @@ -235,9 +233,17 @@ bool CDVDVideoCodecOpenMax::bitstream_convert_init(void *in_extradata, int in_ex free(out); return false; } - out = (uint8_t*)realloc(out, total_size); - if (!out) + uint8_t* new_out = (uint8_t*)realloc(out, total_size); + if (new_out) + { + out = new_out; + } + else + { + CLog::Log(LOGERROR, "bitstream_convert_init failed - %s : could not realloc the buffer out", __FUNCTION__); + free(out); return false; + } memcpy(out + total_size - unit_size - 4, nalu_header, 4); memcpy(out + total_size - unit_size, extradata + 2, unit_size); diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecOpenMax.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecOpenMax.h index a433767546..d37e04a35e 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecOpenMax.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecOpenMax.h @@ -47,7 +47,7 @@ protected: // bitstream to bytestream (Annex B) conversion support. bool bitstream_convert_init(void *in_extradata, int in_extrasize); bool bitstream_convert(BYTE* pData, int iSize, uint8_t **poutbuf, int *poutbuf_size); - void bitstream_alloc_and_copy( uint8_t **poutbuf, int *poutbuf_size, + static void bitstream_alloc_and_copy( uint8_t **poutbuf, int *poutbuf_size, const uint8_t *sps_pps, uint32_t sps_pps_size, const uint8_t *in, uint32_t in_size); typedef struct omx_bitstream_ctx { @@ -55,6 +55,15 @@ protected: uint8_t first_idr; uint8_t *sps_pps_data; uint32_t size; + + omx_bitstream_ctx() + { + length_size = 0; + first_idr = 0; + sps_pps_data = NULL; + size = 0; + } + } omx_bitstream_ctx; uint32_t m_sps_pps_size; diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp index 9938118a6a..e41ea34d65 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp @@ -208,6 +208,11 @@ CDVDVideoCodecVDA::CDVDVideoCodecVDA() : CDVDVideoCodec() m_bitstream = NULL; m_dllSwScale = NULL; memset(&m_videobuffer, 0, sizeof(DVDVideoPicture)); + m_dll = NULL; + m_DropPictures = false; + m_decode_async = false; + m_sort_time_offset = 0.0; + m_use_cvBufferRef = false; } CDVDVideoCodecVDA::~CDVDVideoCodecVDA() diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVideoToolBox.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVideoToolBox.cpp index 848f6d6266..bba603dd73 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVideoToolBox.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVideoToolBox.cpp @@ -1046,6 +1046,8 @@ CDVDVideoCodecVideoToolBox::CDVDVideoCodecVideoToolBox() : CDVDVideoCodec() m_dllAvUtil = NULL; m_dllAvFormat = NULL; memset(&m_videobuffer, 0, sizeof(DVDVideoPicture)); + m_DropPictures = false; + m_sort_time_offset = 0.0; } CDVDVideoCodecVideoToolBox::~CDVDVideoCodecVideoToolBox() @@ -1349,7 +1351,7 @@ int CDVDVideoCodecVideoToolBox::Decode(BYTE* pData, int iSize, double dts, doubl if(m_dllAvFormat->avio_open_dyn_buf(&pb) < 0) return VC_ERROR; - demux_size = avc_parse_nal_units(m_dllAvFormat, pb, pData, iSize); + avc_parse_nal_units(m_dllAvFormat, pb, pData, iSize); demux_size = m_dllAvFormat->avio_close_dyn_buf(pb, &demux_buff); sampleBuff = CreateSampleBufferFrom(m_fmt_desc, demux_buff, demux_size); } diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp index 466a03a13c..257c096600 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DXVA.cpp @@ -313,7 +313,7 @@ CSurfaceContext::CSurfaceContext() CSurfaceContext::~CSurfaceContext() { - for (vector<IDirect3DSurface9*>::iterator it = m_heldsurfaces.begin(); it != m_heldsurfaces.end(); it++) + for (vector<IDirect3DSurface9*>::iterator it = m_heldsurfaces.begin(); it != m_heldsurfaces.end(); ++it) SAFE_RELEASE(*it); } @@ -1490,7 +1490,7 @@ bool CProcessor::Render(CRect src, CRect dst, IDirect3DSurface9* target, REFEREN it = m_sample.erase(it); } else - it++; + ++it; } if(m_sample.empty()) @@ -1520,7 +1520,7 @@ bool CProcessor::Render(CRect src, CRect dst, IDirect3DSurface9* target, REFEREN for (int i = 0; i < count; i++) samp[i].SampleFormat.SampleFormat = DXVA2_SampleUnknown; - for(it = m_sample.begin(); it != m_sample.end() && valid < count; it++) + for(it = m_sample.begin(); it != m_sample.end() && valid < count; ++it) { if (it->sample.Start >= MinTime && it->sample.Start <= MaxTime) { diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/OpenMax.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/OpenMax.cpp index 2447cf2791..ccdab3438f 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/OpenMax.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/OpenMax.cpp @@ -103,6 +103,9 @@ COpenMax::COpenMax() m_is_open = false; m_omx_decoder = NULL; + m_omx_client_state = DEAD; + m_omx_decoder_state = 0; + sem_init(m_omx_decoder_state_change, 0, 0); /* m_omx_flush_input = (sem_t*)malloc(sizeof(sem_t)); sem_init(m_omx_flush_input, 0, 0); @@ -167,11 +170,10 @@ OMX_ERRORTYPE COpenMax::DecoderFillBufferDoneCallback( // Wait for a component to transition to the specified state OMX_ERRORTYPE COpenMax::WaitForState(OMX_STATETYPE state) { - OMX_ERRORTYPE omx_error = OMX_ErrorNone; OMX_STATETYPE test_state; int tries = 0; struct timespec timeout; - omx_error = OMX_GetState(m_omx_decoder, &test_state); + OMX_ERRORTYPE omx_error = OMX_GetState(m_omx_decoder, &test_state); #if defined(OMX_DEBUG_VERBOSE) CLog::Log(LOGDEBUG, "%s::%s - waiting for state(%d)\n", CLASSNAME, __func__, state); diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/OpenMaxVideo.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/OpenMaxVideo.cpp index f6a5213d13..dbbf42c573 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/OpenMaxVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/OpenMaxVideo.cpp @@ -86,6 +86,15 @@ COpenMaxVideo::COpenMaxVideo() m_omx_decoder_state_change = (sem_t*)malloc(sizeof(sem_t)); sem_init(m_omx_decoder_state_change, 0, 0); + memset(&m_videobuffer, 0, sizeof(DVDVideoPicture)); + m_drop_state = false; + m_decoded_width = 0; + m_decoded_height = 0; + m_omx_input_eos = false; + m_omx_input_port = 0; + m_omx_output_eos = false; + m_omx_output_port = 0; + m_videoplayback_done = false; } COpenMaxVideo::~COpenMaxVideo() @@ -861,7 +870,7 @@ OMX_ERRORTYPE COpenMaxVideo::DecoderEventHandler( if (ctx->m_omx_output_port == (int)nData2) { // Got OMX_CommandPortDisable event, alloc new buffers for the output port. - omx_err = ctx->AllocOMXOutputBuffers(); + ctx->AllocOMXOutputBuffers(); omx_err = OMX_SendCommand(ctx->m_omx_decoder, OMX_CommandPortEnable, ctx->m_omx_output_port, NULL); } break; @@ -917,7 +926,7 @@ OMX_ERRORTYPE COpenMaxVideo::DecoderEventHandler( // OMX_CommandPortDisable to component as it expects output buffers // to be freed before it will issue a OMX_CommandPortDisable event. ctx->m_portChanging = true; - omx_err = OMX_SendCommand(ctx->m_omx_decoder, OMX_CommandPortDisable, ctx->m_omx_output_port, NULL); + OMX_SendCommand(ctx->m_omx_decoder, OMX_CommandPortDisable, ctx->m_omx_output_port, NULL); omx_err = ctx->FreeOMXOutputBuffers(false); } break; @@ -1025,9 +1034,9 @@ OMX_ERRORTYPE COpenMaxVideo::StopDecoder(void) // we can free our allocated port buffers in OMX_StateIdle state. // free OpenMax input buffers. - omx_err = FreeOMXInputBuffers(true); + FreeOMXInputBuffers(true); // free OpenMax output buffers. - omx_err = FreeOMXOutputBuffers(true); + FreeOMXOutputBuffers(true); // transition decoder component from idle to loaded omx_err = SetStateForComponent(OMX_StateLoaded); diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp index 27903e3307..5d10f31fc0 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp @@ -161,7 +161,7 @@ void CDecoder::RelBuffer(AVCodecContext *avctx, AVFrame *pic) { VASurfaceID surface = GetSurfaceID(pic); - for(std::list<CSurfacePtr>::iterator it = m_surfaces_used.begin(); it != m_surfaces_used.end(); it++) + for(std::list<CSurfacePtr>::iterator it = m_surfaces_used.begin(); it != m_surfaces_used.end(); ++it) { if((*it)->m_id == surface) { @@ -184,7 +184,7 @@ int CDecoder::GetBuffer(AVCodecContext *avctx, AVFrame *pic) if(surface) { /* reget call */ - for(; it != m_surfaces_free.end(); it++) + for(; it != m_surfaces_free.end(); ++it) { if((*it)->m_id == surface) { @@ -204,7 +204,7 @@ int CDecoder::GetBuffer(AVCodecContext *avctx, AVFrame *pic) { // To avoid stutter, we scan the free surface pool (provided by decoder) for surfaces // that are 100% not in use by renderer. The pointers to these surfaces have a use_count of 1. - for (; it != m_surfaces_free.end() && it->use_count() > 1; it++) {} + for (; it != m_surfaces_free.end() && it->use_count() > 1; ++it) {} // If we have zero free surface from decoder OR all free surfaces are in use by renderer, we allocate a new surface if (it == m_surfaces_free.end()) @@ -217,7 +217,7 @@ int CDecoder::GetBuffer(AVCodecContext *avctx, AVFrame *pic) return -1; } // Set itarator position to the newly allocated surface (end-1) - it = m_surfaces_free.end(); it--; + it = m_surfaces_free.end(); --it; } /* getbuffer call */ wrapper = it->get(); @@ -452,7 +452,7 @@ bool CDecoder::GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture m_holder.surface.reset(); std::list<CSurfacePtr>::iterator it; - for(it = m_surfaces_used.begin(); it != m_surfaces_used.end() && !m_holder.surface; it++) + for(it = m_surfaces_used.begin(); it != m_surfaces_used.end() && !m_holder.surface; ++it) { if((*it)->m_id == surface) { @@ -461,7 +461,7 @@ bool CDecoder::GetPicture(AVCodecContext* avctx, AVFrame* frame, DVDVideoPicture } } - for(it = m_surfaces_free.begin(); it != m_surfaces_free.end() && !m_holder.surface; it++) + for(it = m_surfaces_free.begin(); it != m_surfaces_free.end() && !m_holder.surface; ++it) { if((*it)->m_id == surface) { diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp index 8acacd636b..621f07cfe3 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp @@ -148,6 +148,31 @@ CVDPAU::CVDPAU() dl_vdp_device_create_x11 = NULL; dl_vdp_get_proc_address = NULL; dl_vdp_preemption_callback_register = NULL; + past[0] = NULL; + past[1] = NULL; + current = NULL; + future = NULL; + tmpNoiseReduction = 0.0f; + tmpSharpness = 0.0f; + vdp_get_proc_address = NULL; + vdp_device_destroy = NULL; + vdp_video_surface_create = NULL; + vdp_video_surface_destroy = NULL; + vdp_video_surface_put_bits_y_cb_cr = NULL; + vdp_video_surface_get_bits_y_cb_cr = NULL; + vdp_output_surface_put_bits_y_cb_cr = NULL; + vdp_output_surface_put_bits_native = NULL; + vdp_output_surface_create = NULL; + vdp_output_surface_destroy = NULL; + vdp_output_surface_get_bits_native = NULL; + vdp_output_surface_render_output_surface = NULL; + vdp_output_surface_put_bits_indexed = NULL; + vdp_video_mixer_create = NULL; + vdp_video_mixer_set_feature_enables = NULL; + vdp_video_mixer_query_parameter_support = NULL; + vdp_video_mixer_query_feature_support = NULL; + vdp_video_mixer_destroy = NULL; + vdp_video_mixer_render = NULL; } bool CVDPAU::Open(AVCodecContext* avctx, const enum PixelFormat, unsigned int surfaces) @@ -502,8 +527,7 @@ void CVDPAU::CheckFeatures() tmpNoiseReduction = 0; tmpSharpness = 0; - VdpStatus vdp_st = VDP_STATUS_ERROR; - vdp_st = vdp_video_mixer_create(vdp_device, + VdpStatus vdp_st = vdp_video_mixer_create(vdp_device, m_feature_count, m_features, ARSIZE(parameters), @@ -1517,7 +1541,7 @@ int CVDPAU::Decode(AVCodecContext *avctx, AVFrame *pFrame) } } - vdp_st = vdp_presentation_queue_block_until_surface_idle(vdp_flip_queue,outputSurface,&time); + vdp_presentation_queue_block_until_surface_idle(vdp_flip_queue,outputSurface,&time); VdpRect sourceRect = {0,0,vid_width, vid_height}; diff --git a/xbmc/cores/dvdplayer/DVDDemuxSPU.cpp b/xbmc/cores/dvdplayer/DVDDemuxSPU.cpp index 7c581ba7c4..9f2905b1cc 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxSPU.cpp +++ b/xbmc/cores/dvdplayer/DVDDemuxSPU.cpp @@ -582,10 +582,10 @@ void CDVDDemuxSPU::FindSubtitleColor(int last_color, int stats[4], CDVDOverlaySp else { // old code - int i, i_inner = -1, i_shade = -1; if (last_color >= 0 && last_color < 4) { + int i, i_inner = -1, i_shade = -1; // Set the border color, the last color is probably the border color pSPU->color[last_color][0] = custom_subtitle_color[COLOR_BORDER][0]; pSPU->color[last_color][1] = custom_subtitle_color[COLOR_BORDER][1]; diff --git a/xbmc/cores/dvdplayer/DVDDemuxSPU.h b/xbmc/cores/dvdplayer/DVDDemuxSPU.h index 8f56dd8742..0b9392523f 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxSPU.h +++ b/xbmc/cores/dvdplayer/DVDDemuxSPU.h @@ -46,8 +46,8 @@ public: CDVDOverlaySpu* AddData(BYTE* data, int iSize, double pts); // returns a packet from ParsePacket if possible CDVDOverlaySpu* ParseRLE(CDVDOverlaySpu* pSPU, BYTE* pUnparsedData); - void FindSubtitleColor(int last_color, int stats[4], CDVDOverlaySpu* pSPU); - bool CanDisplayWithAlphas(int a[4], int stats[4]); + static void FindSubtitleColor(int last_color, int stats[4], CDVDOverlaySpu* pSPU); + static bool CanDisplayWithAlphas(int a[4], int stats[4]); void Reset(); void FlushCurrentPacket(); // flushes current unparsed data diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxHTSP.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxHTSP.cpp index 63b1e3d4c7..c437faf947 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxHTSP.cpp +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxHTSP.cpp @@ -102,7 +102,7 @@ bool CDVDDemuxHTSP::Open(CDVDInputStream* input) m_Input = (CDVDInputStreamHTSP*)input; m_StatusCount = 0; - while(m_Streams.size() == 0 && m_StatusCount == 0) + while(m_Streams.empty() && m_StatusCount == 0) { DemuxPacket* pkg = Read(); if(!pkg) diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxPVRClient.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxPVRClient.cpp index c162553bc3..58742de328 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxPVRClient.cpp +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxPVRClient.cpp @@ -34,6 +34,7 @@ CDemuxStreamPVRInternal::CDemuxStreamPVRInternal(CDVDDemuxPVRClient *parent) : m_parent(parent) , m_parser(NULL) , m_context(NULL) + , m_parser_split(false) { } diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxShoutcast.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxShoutcast.cpp index 0d12315f91..df074df54f 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxShoutcast.cpp +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxShoutcast.cpp @@ -118,8 +118,6 @@ void CDVDDemuxShoutcast::Flush() DemuxPacket* CDVDDemuxShoutcast::Read() { - int iRead = 0; - // XXX // if meta interval is greater than FileCurl's max read size (currently 64k) // it will simply fail becuse the meta-interval will get incorrect @@ -152,7 +150,7 @@ DemuxPacket* CDVDDemuxShoutcast::Read() // we already have read m_iMetaStreamInterval bytes of streaming data // metadata follows BYTE l; - iRead = m_pInput->Read(&l, 1); + int iRead = m_pInput->Read(&l, 1); if (iRead > 0) { int iMetaLength = l * 16; diff --git a/xbmc/cores/dvdplayer/DVDFileInfo.cpp b/xbmc/cores/dvdplayer/DVDFileInfo.cpp index f1f4b17149..5f3850ffa7 100644 --- a/xbmc/cores/dvdplayer/DVDFileInfo.cpp +++ b/xbmc/cores/dvdplayer/DVDFileInfo.cpp @@ -236,13 +236,13 @@ bool CDVDFileInfo::ExtractThumb(const CStdString &strPath, CTextureDetails &deta BYTE *pOutBuf = new BYTE[nWidth * nHeight * 4]; struct SwsContext *context = dllSwScale.sws_getContext(picture.iWidth, picture.iHeight, PIX_FMT_YUV420P, nWidth, nHeight, PIX_FMT_BGRA, SWS_FAST_BILINEAR | SwScaleCPUFlags(), NULL, NULL, NULL); - uint8_t *src[] = { picture.data[0], picture.data[1], picture.data[2], 0 }; - int srcStride[] = { picture.iLineSize[0], picture.iLineSize[1], picture.iLineSize[2], 0 }; - uint8_t *dst[] = { pOutBuf, 0, 0, 0 }; - int dstStride[] = { (int)nWidth*4, 0, 0, 0 }; if (context) { + uint8_t *src[] = { picture.data[0], picture.data[1], picture.data[2], 0 }; + int srcStride[] = { picture.iLineSize[0], picture.iLineSize[1], picture.iLineSize[2], 0 }; + uint8_t *dst[] = { pOutBuf, 0, 0, 0 }; + int dstStride[] = { (int)nWidth*4, 0, 0, 0 }; int orientation = DegreeToOrientation(hint.orientation); dllSwScale.sws_scale(context, src, srcStride, 0, picture.iHeight, dst, dstStride); dllSwScale.sws_freeContext(context); diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp index ea5493e8ed..58b29688fd 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp @@ -693,7 +693,7 @@ void CDVDInputStreamBluray::OverlayClear(SPlane& plane, int x, int y, int w, int /* if no overlap we are done */ if(rem.size() == 1 && !(rem[0] != old)) { - it++; + ++it; continue; } diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h index 6837605e0c..6fc8548fbb 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h @@ -114,8 +114,8 @@ protected: void OverlayFlush(int64_t pts); void OverlayClose(); - void OverlayClear(SPlane& plane, int x, int y, int w, int h); - void OverlayInit (SPlane& plane, int w, int h); + static void OverlayClear(SPlane& plane, int x, int y, int w, int h); + static void OverlayInit (SPlane& plane, int w, int h); IDVDPlayer* m_player; DllLibbluray *m_dll; diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHTSP.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHTSP.cpp index 6c8fc7c0f4..91e86d1c56 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHTSP.cpp +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamHTSP.cpp @@ -181,14 +181,14 @@ bool CDVDInputStreamHTSP::SetChannel(int channel) bool CDVDInputStreamHTSP::GetChannels(SChannelV &channels, SChannelV::iterator &it) { - for(SChannels::iterator it2 = m_channels.begin(); it2 != m_channels.end(); it2++) + for(SChannels::iterator it2 = m_channels.begin(); it2 != m_channels.end(); ++it2) { if(m_tag == 0 || it2->second.MemberOf(m_tag)) channels.push_back(it2->second); } sort(channels.begin(), channels.end()); - for(it = channels.begin(); it != channels.end(); it++) + for(it = channels.begin(); it != channels.end(); ++it) if(it->id == m_channel) return true; return false; diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp index 2e760cbc09..67daf84767 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp @@ -261,11 +261,10 @@ int CDVDInputStreamNavigator::ProcessBlock(BYTE* dest_buffer, int* read) int result; int len = 2048; - int iNavresult = NAVRESULT_NOP; // m_tempbuffer will be used for anything that isn't a normal data block uint8_t* buf = m_lastblock; - iNavresult = -1; + int iNavresult = -1; if(m_holdmode == HOLDMODE_HELD) return NAVRESULT_HOLD; diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.h index 8da8a9bc6c..51d731d40c 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.h +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.h @@ -56,7 +56,11 @@ struct DVDNavStreamInfo class DVDNavResult { public: - DVDNavResult(){}; + DVDNavResult() : + pData (NULL ), + type (0 ) + { + }; DVDNavResult(void* p, int t) { pData = p; type = t; }; void* pData; int type; diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp index adc2927c87..fe19a3de1f 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp @@ -387,7 +387,7 @@ bool CDVDInputStreamPVRManager::CloseAndOpen(const char* strFile) return false; } -bool CDVDInputStreamPVRManager::SupportsChannelSwitch(void) const +bool CDVDInputStreamPVRManager::SupportsChannelSwitch(void) { PVR_CLIENT client; return g_PVRClients->GetPlayingClient(client) && diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h index 3eea0c72e4..9a9580fe46 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h @@ -89,7 +89,7 @@ public: void ResetScanTimeout(unsigned int iTimeoutMs); protected: bool CloseAndOpen(const char* strFile); - bool SupportsChannelSwitch(void) const; + static bool SupportsChannelSwitch(void); IDVDPlayer* m_pPlayer; CDVDInputStream* m_pOtherStream; diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.cpp index 9e9ec0f2d7..e053642ca1 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.cpp +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamStack.cpp @@ -88,7 +88,7 @@ bool CDVDInputStreamStack::Open(const char* path, const std::string& content) m_files.push_back(segment); } - if(m_files.size() == 0) + if(m_files.empty()) return false; m_file = m_files[0].file; @@ -147,7 +147,7 @@ int64_t CDVDInputStreamStack::Seek(int64_t offset, int whence) return -1; len = 0; - for(TSegVec::iterator it = m_files.begin(); it != m_files.end(); it++) + for(TSegVec::iterator it = m_files.begin(); it != m_files.end(); ++it) { if(len + it->length > pos) { diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.h index 5f8145fcaf..33a9d3dac2 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.h +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamTV.h @@ -54,7 +54,7 @@ public: int GetTotalTime(); int GetTime(); - bool SeekTime(int iTimeInMsec); + static bool SeekTime(int iTimeInMsec); bool CanRecord(); bool IsRecording(); diff --git a/xbmc/cores/dvdplayer/DVDMessage.h b/xbmc/cores/dvdplayer/DVDMessage.h index 146befdc1d..0dac948512 100644 --- a/xbmc/cores/dvdplayer/DVDMessage.h +++ b/xbmc/cores/dvdplayer/DVDMessage.h @@ -211,7 +211,7 @@ private: class CDVDMsgPlayerSetState : public CDVDMsg { public: - CDVDMsgPlayerSetState(std::string& state) : CDVDMsg(PLAYER_SET_STATE) { m_state = state; } + CDVDMsgPlayerSetState(std::string& state) : CDVDMsg(PLAYER_SET_STATE), m_state(state) {} std::string GetState() { return m_state; } private: std::string m_state; diff --git a/xbmc/cores/dvdplayer/DVDMessageQueue.cpp b/xbmc/cores/dvdplayer/DVDMessageQueue.cpp index 7d02cd5fed..3bcf8d229f 100644 --- a/xbmc/cores/dvdplayer/DVDMessageQueue.cpp +++ b/xbmc/cores/dvdplayer/DVDMessageQueue.cpp @@ -27,9 +27,8 @@ using namespace std; -CDVDMessageQueue::CDVDMessageQueue(const string &owner) : m_hEvent(true) +CDVDMessageQueue::CDVDMessageQueue(const string &owner) : m_hEvent(true), m_owner(owner) { - m_owner = owner; m_iDataSize = 0; m_bAbortRequest = false; m_bInitialized = false; @@ -67,7 +66,7 @@ void CDVDMessageQueue::Flush(CDVDMsg::Message type) if (it->message->IsType(type) || type == CDVDMsg::NONE) it = m_list.erase(it); else - it++; + ++it; } if (type == CDVDMsg::DEMUXER_PACKET || type == CDVDMsg::NONE) @@ -121,7 +120,7 @@ MsgQueueReturnCode CDVDMessageQueue::Put(CDVDMsg* pMsg, int priority) { if(priority <= it->priority) break; - it++; + ++it; } m_list.insert(it, DVDMessageListItem(pMsg, priority)); @@ -230,7 +229,7 @@ unsigned CDVDMessageQueue::GetPacketCount(CDVDMsg::Message type) return 0; unsigned count = 0; - for(SList::iterator it = m_list.begin(); it != m_list.end();it++) + for(SList::iterator it = m_list.begin(); it != m_list.end();++it) { if(it->message->IsType(type)) count++; diff --git a/xbmc/cores/dvdplayer/DVDMessageTracker.cpp b/xbmc/cores/dvdplayer/DVDMessageTracker.cpp index 5741b941b3..32ad76c674 100644 --- a/xbmc/cores/dvdplayer/DVDMessageTracker.cpp +++ b/xbmc/cores/dvdplayer/DVDMessageTracker.cpp @@ -76,7 +76,7 @@ void CDVDMessageTracker::UnRegister(CDVDMsg* pMsg) delete pItem; break; } - iter++; + ++iter; } } @@ -108,7 +108,7 @@ void CDVDMessageTracker::Process() pItem->m_debug_logged = true; } } - iter++; + ++iter; } } diff --git a/xbmc/cores/dvdplayer/DVDOverlayContainer.cpp b/xbmc/cores/dvdplayer/DVDOverlayContainer.cpp index 50c3e671a2..2a6abbb883 100644 --- a/xbmc/cores/dvdplayer/DVDOverlayContainer.cpp +++ b/xbmc/cores/dvdplayer/DVDOverlayContainer.cpp @@ -121,14 +121,14 @@ void CDVDOverlayContainer::CleanUp(double pts) continue; } } - it++; + ++it; } } void CDVDOverlayContainer::Remove() { - if (m_overlays.size() > 0) + if (!m_overlays.empty()) { CDVDOverlay* pOverlay; @@ -144,7 +144,7 @@ void CDVDOverlayContainer::Remove() void CDVDOverlayContainer::Clear() { - while (m_overlays.size() > 0) Remove(); + while (!m_overlays.empty()) Remove(); } int CDVDOverlayContainer::GetSize() @@ -162,7 +162,7 @@ bool CDVDOverlayContainer::ContainsOverlayType(DVDOverlayType type) while (!result && it != m_overlays.end()) { if (((CDVDOverlay*)*it)->IsOverlayType(type)) result = true; - it++; + ++it; } return result; @@ -176,7 +176,7 @@ void CDVDOverlayContainer::UpdateOverlayInfo(CDVDInputStreamNavigator* pStream, CSingleLock lock(*this); //Update any forced overlays. - for(VecOverlays::iterator it = m_overlays.begin(); it != m_overlays.end(); it++ ) + for(VecOverlays::iterator it = m_overlays.begin(); it != m_overlays.end(); ++it ) { if ((*it)->IsOverlayType(DVDOVERLAY_TYPE_SPU)) { diff --git a/xbmc/cores/dvdplayer/DVDPerformanceCounter.h b/xbmc/cores/dvdplayer/DVDPerformanceCounter.h index e96be4b759..86a1bb6cc0 100644 --- a/xbmc/cores/dvdplayer/DVDPerformanceCounter.h +++ b/xbmc/cores/dvdplayer/DVDPerformanceCounter.h @@ -42,7 +42,7 @@ public: ~CDVDPerformanceCounter(); bool Initialize(); - void DeInitialize(); + static void DeInitialize(); void EnableAudioQueue(CDVDMessageQueue* pQueue) { CSingleLock lock(m_critSection); m_pAudioQueue = pQueue; } void DisableAudioQueue() { CSingleLock lock(m_critSection); m_pAudioQueue = NULL; } diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp index e075cd67ec..a48f5d6c26 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerAudio.cpp @@ -63,7 +63,7 @@ double CPTSInputQueue::Get(int64_t bytes, bool consume) CSingleLock lock(m_sync); IT it = m_list.begin(); - for(; it != m_list.end(); it++) + for(; it != m_list.end(); ++it) { if(bytes <= it->first) { @@ -368,7 +368,7 @@ int CDVDPlayerAudio::DecodeFrame(DVDAudioFrame &audioframe, bool bDropPacket) if (ret == MSGQ_TIMEOUT) return DECODE_FLAG_TIMEOUT; - if (MSGQ_IS_ERROR(ret) || ret == MSGQ_ABORT) + if (MSGQ_IS_ERROR(ret)) return DECODE_FLAG_ABORT; if (pMsg->IsType(CDVDMsg::DEMUXER_PACKET)) @@ -780,12 +780,12 @@ bool CDVDPlayerAudio::OutputPacket(DVDAudioFrame &audioframe) } else if (m_synctype == SYNC_RESAMPLE) { - double proportional = 0.0, proportionaldiv; + double proportional = 0.0; //on big errors use more proportional if (fabs(m_error / DVD_TIME_BASE) > 0.0) { - proportionaldiv = PROPORTIONAL * (PROPREF / fabs(m_error / DVD_TIME_BASE)); + double proportionaldiv = PROPORTIONAL * (PROPREF / fabs(m_error / DVD_TIME_BASE)); if (proportionaldiv < PROPDIVMIN) proportionaldiv = PROPDIVMIN; else if (proportionaldiv > PROPDIVMAX) proportionaldiv = PROPDIVMAX; diff --git a/xbmc/cores/dvdplayer/DVDPlayerAudioResampler.cpp b/xbmc/cores/dvdplayer/DVDPlayerAudioResampler.cpp index 3f985dcde3..cfb1332c5e 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerAudioResampler.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerAudioResampler.cpp @@ -142,10 +142,28 @@ void CDVDPlayerResampler::ResizeSampleBuffer(int nrframes) { if (m_buffersize < nrframes) { - m_buffersize = nrframes * 2; - m_buffer = (float*)realloc(m_buffer, m_buffersize * m_nrchannels * sizeof(float)); - m_ptsbuffer = (double*)realloc(m_ptsbuffer, m_buffersize * sizeof(double)); - CLog::Log(LOGDEBUG, "CDVDPlayerResampler: resized buffers to hold %i frames", m_buffersize); + int newBufferSize = nrframes * 2; + float* newBuffer = (float*)realloc(m_buffer, newBufferSize * m_nrchannels * sizeof(float)); + if (newBuffer) + { + m_buffer = newBuffer; + m_buffersize = newBufferSize; + + double* newPtsBuffer = (double*)realloc(m_ptsbuffer, m_buffersize * sizeof(double)); + if (newPtsBuffer) + { + m_ptsbuffer = newPtsBuffer; + CLog::Log(LOGDEBUG, "CDVDPlayerResampler: resized buffers to hold %i frames", m_buffersize); + } + else + { + CLog::Log(LOGERROR, "ResizeSampleBuffer - %s - failed : could not realloc the buffer m_ptsbuffer", __FUNCTION__); + } + } + else + { + CLog::Log(LOGERROR, "ResizeSampleBuffer - %s - failed : could not realloc the buffer m_buffer", __FUNCTION__); + } } } diff --git a/xbmc/cores/dvdplayer/DVDPlayerSubtitle.cpp b/xbmc/cores/dvdplayer/DVDPlayerSubtitle.cpp index 540d8906a6..6aeacff33d 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerSubtitle.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerSubtitle.cpp @@ -246,7 +246,7 @@ void CDVDPlayerSubtitle::GetCurrentSubtitle(CStdString& strSubtitle, double pts) VecOverlays* pOverlays = m_pOverlayContainer->GetOverlays(); if (pOverlays) { - for(vector<CDVDOverlay*>::iterator it = pOverlays->begin();it != pOverlays->end();it++) + for(vector<CDVDOverlay*>::iterator it = pOverlays->begin();it != pOverlays->end();++it) { CDVDOverlay* pOverlay = *it; diff --git a/xbmc/cores/dvdplayer/DVDPlayerTeletext.cpp b/xbmc/cores/dvdplayer/DVDPlayerTeletext.cpp index 5e1d055a36..bfc91999a9 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerTeletext.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerTeletext.cpp @@ -254,7 +254,7 @@ void CDVDTeletextData::Process() continue; } - if (MSGQ_IS_ERROR(ret) || ret == MSGQ_ABORT) + if (MSGQ_IS_ERROR(ret)) { CLog::Log(LOGERROR, "Got MSGQ_ABORT or MSGO_IS_ERROR return true (%i)", ret); break; diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp index 9ee51c01ae..f1ebec2d4a 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp @@ -92,7 +92,7 @@ public: bool enabled() { - return m_pattern.size() > 0; + return !m_pattern.empty(); } private: double m_duration; @@ -337,7 +337,7 @@ void CDVDPlayerVideo::Process() CDVDMsg* pMsg; MsgQueueReturnCode ret = m_messageQueue.Get(&pMsg, iQueueTimeOut, iPriority); - if (MSGQ_IS_ERROR(ret) || ret == MSGQ_ABORT) + if (MSGQ_IS_ERROR(ret)) { CLog::Log(LOGERROR, "Got MSGQ_ABORT or MSGO_IS_ERROR return true"); break; @@ -1297,19 +1297,19 @@ int CDVDPlayerVideo::OutputPicture(const DVDVideoPicture* src, double pts) if( m_speed != DVD_PLAYSPEED_NORMAL && limited ) { + m_droptime += iFrameDuration; +#ifndef PROFILE // calculate frame dropping pattern to render at this speed // we do that by deciding if this or next frame is closest // to the flip timestamp double current = fabs(m_dropbase - m_droptime); double next = fabs(m_dropbase - (m_droptime + iFrameDuration)); - double frametime = (double)DVD_TIME_BASE / maxfps; - m_droptime += iFrameDuration; -#ifndef PROFILE if( next < current && !(pPicture->iFlags & DVP_FLAG_NOSKIP) ) return result | EOS_DROPPED; #endif - + + double frametime = (double)DVD_TIME_BASE / maxfps; while(!m_bStop && m_dropbase < m_droptime) m_dropbase += frametime; while(!m_bStop && m_dropbase - frametime > m_droptime) m_dropbase -= frametime; diff --git a/xbmc/cores/dvdplayer/DVDStreamInfo.cpp b/xbmc/cores/dvdplayer/DVDStreamInfo.cpp index 40a750c4b1..adba6a9fbf 100644 --- a/xbmc/cores/dvdplayer/DVDStreamInfo.cpp +++ b/xbmc/cores/dvdplayer/DVDStreamInfo.cpp @@ -155,6 +155,8 @@ void CDVDStreamInfo::Assign(const CDVDStreamInfo& right, bool withextradata) forced_aspect = right.forced_aspect; orientation = right.orientation; bitsperpixel = right.bitsperpixel; + vfr = right.vfr; + software = right.software; // AUDIO channels = right.channels; diff --git a/xbmc/cores/dvdplayer/DVDStreamInfo.h b/xbmc/cores/dvdplayer/DVDStreamInfo.h index 30700944b8..0b33d94104 100644 --- a/xbmc/cores/dvdplayer/DVDStreamInfo.h +++ b/xbmc/cores/dvdplayer/DVDStreamInfo.h @@ -96,6 +96,9 @@ public: bool operator==(const CDVDStreamInfo& right) { return Equal(right, true);} bool operator!=(const CDVDStreamInfo& right) { return !Equal(right, true);} + + //'CDVDStreamInfo::operator=' should return 'CDVDStreamInfo &'. + // Is this intended? It looks more like a copy,cf. extradata, what happens if info = info? void operator=(const CDVDStreamInfo& right) { Assign(right, true); } bool operator==(const CDemuxStream& right) { return Equal( CDVDStreamInfo(right, true), true);} diff --git a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleParser.h b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleParser.h index 3cd1e9502a..c410ae5c2f 100644 --- a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleParser.h +++ b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleParser.h @@ -42,10 +42,7 @@ class CDVDSubtitleParserCollection : public CDVDSubtitleParser { public: - CDVDSubtitleParserCollection(const std::string& strFile) - { - m_filename = strFile; - } + CDVDSubtitleParserCollection(const std::string& strFile) : m_filename(strFile) {} virtual ~CDVDSubtitleParserCollection() { } virtual CDVDOverlay* Parse(double iPts) { diff --git a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleTagMicroDVD.h b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleTagMicroDVD.h index 81227d2d00..65f97dc4de 100644 --- a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleTagMicroDVD.h +++ b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleTagMicroDVD.h @@ -20,6 +20,7 @@ * */ #include <stdio.h> +#include <string.h> #define FLAG_BOLD 0 #define FLAG_ITALIC 1 @@ -33,6 +34,10 @@ class CDVDOverlayText; class CDVDSubtitleTagMicroDVD { public: + CDVDSubtitleTagMicroDVD() + { + memset(&m_flag, 0, sizeof(m_flag)); + } void ConvertLine(CDVDOverlayText* pOverlay, const char* line, int len); private: diff --git a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleTagSami.cpp b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleTagSami.cpp index 999bd075f8..cc3f89f8dd 100644 --- a/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleTagSami.cpp +++ b/xbmc/cores/dvdplayer/DVDSubtitles/DVDSubtitleTagSami.cpp @@ -31,6 +31,8 @@ CDVDSubtitleTagSami::~CDVDSubtitleTagSami() bool CDVDSubtitleTagSami::Init() { + delete m_tags; + delete m_tagOptions; m_tags = new CRegExp(true); if (!m_tags->RegComp("(<[^>]*>|\\{[^\\}]*\\})")) return false; diff --git a/xbmc/cores/dvdplayer/DVDTSCorrection.cpp b/xbmc/cores/dvdplayer/DVDTSCorrection.cpp index 1fdde1f7be..757ea0f9d8 100644 --- a/xbmc/cores/dvdplayer/DVDTSCorrection.cpp +++ b/xbmc/cores/dvdplayer/DVDTSCorrection.cpp @@ -176,7 +176,7 @@ void CPullupCorrection::GetPattern(std::vector<double>& pattern) } } - bool checkexisting = m_pattern.size() > 0; + bool checkexisting = !m_pattern.empty(); //we check for patterns to the length of DIFFRINGSIZE / 2 for (int i = 1; i <= m_ringfill / 2; i++) @@ -272,7 +272,7 @@ inline bool CPullupCorrection::MatchDifftype(int* diffs1, int* diffs2, int nrdif bool CPullupCorrection::CheckPattern(std::vector<double>& pattern) { //if no pattern was detected or if the size of the patterns differ we don't have a match - if (pattern.size() != m_pattern.size() || pattern.size() < 1) + if (pattern.empty() || pattern.size() != m_pattern.size()) return false; if (pattern.size() == 1) @@ -299,7 +299,7 @@ bool CPullupCorrection::CheckPattern(std::vector<double>& pattern) //calculate how long each frame should last from the saved pattern double CPullupCorrection::CalcFrameDuration() { - if (m_pattern.size() > 0) + if (!m_pattern.empty()) { //take the average of all diffs in the pattern double frameduration = 0.0; diff --git a/xbmc/cores/dvdplayer/Edl.cpp b/xbmc/cores/dvdplayer/Edl.cpp index 6ae8143359..47e0fb6c07 100644 --- a/xbmc/cores/dvdplayer/Edl.cpp +++ b/xbmc/cores/dvdplayer/Edl.cpp @@ -737,7 +737,7 @@ bool CEdl::AddCut(Cut& cut) else { vector<Cut>::iterator pCurrentCut; - for (pCurrentCut = m_vecCuts.begin(); pCurrentCut != m_vecCuts.end(); pCurrentCut++) + for (pCurrentCut = m_vecCuts.begin(); pCurrentCut != m_vecCuts.end(); ++pCurrentCut) { if (cut.start < pCurrentCut->start) { diff --git a/xbmc/cores/omxplayer/OMXAudio.cpp b/xbmc/cores/omxplayer/OMXAudio.cpp index 10c332959f..7eb0679cd8 100644 --- a/xbmc/cores/omxplayer/OMXAudio.cpp +++ b/xbmc/cores/omxplayer/OMXAudio.cpp @@ -96,6 +96,7 @@ COMXAudio::COMXAudio() : m_Pause (false ), m_CanPause (false ), m_CurrentVolume (0 ), + m_drc (0 ), m_Passthrough (false ), m_HWDecode (false ), m_BytesPerSec (0 ), @@ -111,6 +112,7 @@ COMXAudio::COMXAudio() : m_eEncoding (OMX_AUDIO_CodingPCM), m_extradata (NULL ), m_extrasize (0 ), + m_vizBufferSamples(0 ), m_last_pts (DVD_NOPTS_VALUE), m_omx_render (NULL ) { @@ -315,10 +317,7 @@ bool COMXAudio::Initialize(AEAudioFormat format, std::string& device, OMXClock * m_pcm_input.nChannels = m_format.m_channelLayout.Count(); m_pcm_input.nSamplingRate = m_format.m_sampleRate; - OMX_ERRORTYPE omx_err = OMX_ErrorNone; - std::string componentName = ""; - - componentName = "OMX.broadcom.audio_render"; + std::string componentName = "OMX.broadcom.audio_render"; if(!m_omx_render) m_omx_render = new COMXCoreComponent(); @@ -335,7 +334,7 @@ bool COMXAudio::Initialize(AEAudioFormat format, std::string& device, OMXClock * OMX_INIT_STRUCTURE(audioDest); strncpy((char *)audioDest.sName, device.c_str(), strlen(device.c_str())); - omx_err = m_omx_render->SetConfig(OMX_IndexConfigBrcmAudioDestination, &audioDest); + OMX_ERRORTYPE omx_err = m_omx_render->SetConfig(OMX_IndexConfigBrcmAudioDestination, &audioDest); if (omx_err != OMX_ErrorNone) return false; @@ -707,7 +706,6 @@ bool COMXAudio::SetCurrentVolume(float fVolume) { double r = fVolume; const float* coeff = downmixing_coefficients_8; - int input_channels = 0; // normally we normalalise the levels, can be skipped (boosted) at risk of distortion if(!g_guiSettings.GetBool("audiooutput.normalizelevels")) diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp index 64cab780cb..afb509d92b 100644 --- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp +++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.cpp @@ -84,6 +84,7 @@ COMXAudioCodecOMX::COMXAudioCodecOMX() m_layout = 0; m_pFrame1 = NULL; m_iSampleFormat = AV_SAMPLE_FMT_NONE; + m_iBufferSize1 = 0; } COMXAudioCodecOMX::~COMXAudioCodecOMX() diff --git a/xbmc/cores/omxplayer/OMXAudioCodecOMX.h b/xbmc/cores/omxplayer/OMXAudioCodecOMX.h index 35e9faee73..1497e07b7f 100644 --- a/xbmc/cores/omxplayer/OMXAudioCodecOMX.h +++ b/xbmc/cores/omxplayer/OMXAudioCodecOMX.h @@ -32,7 +32,7 @@ class COMXAudioCodecOMX { public: - void Upmix(void *input, unsigned int channelsInput, void *output, + static void Upmix(void *input, unsigned int channelsInput, void *output, unsigned int channelsOutput, unsigned int frames, AEDataFormat dataFormat); COMXAudioCodecOMX(); virtual ~COMXAudioCodecOMX(); @@ -44,8 +44,8 @@ public: int GetChannels(); virtual CAEChannelInfo GetChannelMap(); int GetSampleRate(); - int GetBitsPerSample(); - const char* GetName() { return "FFmpeg"; } + static int GetBitsPerSample(); + static const char* GetName() { return "FFmpeg"; } int GetBufferSize() { return m_iBuffered; } int GetBitRate(); diff --git a/xbmc/cores/omxplayer/OMXImage.cpp b/xbmc/cores/omxplayer/OMXImage.cpp index 5535f8ff37..13f0822e79 100644 --- a/xbmc/cores/omxplayer/OMXImage.cpp +++ b/xbmc/cores/omxplayer/OMXImage.cpp @@ -59,7 +59,6 @@ COMXImage::COMXImage() m_width = 0; m_height = 0; - m_is_open = false; m_decoded_buffer = NULL; m_encoded_buffer = NULL; @@ -320,12 +319,12 @@ OMX_IMAGE_CODINGTYPE COMXImage::GetCodingType() else if(marker == M_APP1) { int readBits = 2; - bool bMotorolla = false; - bool bError = false; // Exif header if(CBitstreamConverter::read_bits(&br, 32) == 0x45786966) { + bool bMotorolla = false; + bool bError = false; CBitstreamConverter::skip_bits(&br, 8 * 2); readBits += 2; diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp index c09569bf19..0339323feb 100644 --- a/xbmc/cores/omxplayer/OMXPlayer.cpp +++ b/xbmc/cores/omxplayer/OMXPlayer.cpp @@ -604,8 +604,8 @@ bool COMXPlayer::OpenInputStream() return false; } - if (m_pInputStream && ( m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD) - || m_pInputStream->IsStreamType(DVDSTREAM_TYPE_BLURAY) ) ) + if (m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD) + || m_pInputStream->IsStreamType(DVDSTREAM_TYPE_BLURAY)) { CLog::Log(LOGINFO, "COMXPlayer::OpenInputStream - DVD/BD not supported - Will try..."); } diff --git a/xbmc/cores/omxplayer/OMXPlayerAudio.cpp b/xbmc/cores/omxplayer/OMXPlayerAudio.cpp index 04590c7cc2..1a5b362365 100644 --- a/xbmc/cores/omxplayer/OMXPlayerAudio.cpp +++ b/xbmc/cores/omxplayer/OMXPlayerAudio.cpp @@ -85,6 +85,21 @@ OMXPlayerAudio::OMXPlayerAudio(OMXClock *av_clock, CDVDMessageQueue& parent) m_messageQueue.SetMaxDataSize(3 * 1024 * 1024); m_messageQueue.SetMaxTimeSize(8.0); + m_use_passthrough = false; + m_passthrough = false; + m_use_hw_decode = false; + m_hw_decode = false; + m_silence = false; + m_error = 0.0; + m_errorbuff = 0.0; + m_errorcount = 0; + m_syncclock = false; + m_integral = 0.0; + m_skipdupcount = 0; + m_prevskipped = false; + m_flush = false; + m_synctype = 0; + } diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp index 05c23be9e8..2408166d81 100644 --- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp @@ -69,6 +69,7 @@ OMXPlayerVideo::OMXPlayerVideo(OMXClock *av_clock, CDVDMessageQueue& parent) : CThread("COMXPlayerVideo") , m_messageQueue("video") +, m_codecname("") , m_messageParent(parent) { m_av_clock = av_clock; @@ -80,7 +81,6 @@ OMXPlayerVideo::OMXPlayerVideo(OMXClock *av_clock, m_hdmi_clock_sync = false; m_speed = DVD_PLAYSPEED_NORMAL; m_stalled = false; - m_codecname = ""; m_iSubtitleDelay = 0; m_FlipTimeStamp = 0.0; m_bRenderSubs = false; @@ -97,6 +97,12 @@ OMXPlayerVideo::OMXPlayerVideo(OMXClock *av_clock, m_messageQueue.SetMaxTimeSize(8.0); m_dst_rect.SetRect(0, 0, 0, 0); + m_iSleepEndTime = 0.0; + m_Deinterlace = false; + m_audio_count = 0; + m_started = false; + m_flush = false; + m_view_mode = 0; } OMXPlayerVideo::~OMXPlayerVideo() @@ -651,8 +657,7 @@ bool OMXPlayerVideo::OpenDecoder() CLog::Log(LOGINFO, "OMXPlayerVideo::OpenDecoder fps: %f %s\n", m_fFrameRate, command); m_DllBcmHost.vc_gencmd(response, sizeof response, command); - if(m_av_clock) - m_av_clock->SetRefreshRate(m_fFrameRate); + m_av_clock->SetRefreshRate(m_fFrameRate); } m_av_clock->OMXStateExecute(false); diff --git a/xbmc/cores/omxplayer/OMXVideo.cpp b/xbmc/cores/omxplayer/OMXVideo.cpp index 15bc8fafe2..a823c019f3 100644 --- a/xbmc/cores/omxplayer/OMXVideo.cpp +++ b/xbmc/cores/omxplayer/OMXVideo.cpp @@ -76,16 +76,22 @@ #define MAX_TEXT_LENGTH 1024 -COMXVideo::COMXVideo() +COMXVideo::COMXVideo() : m_video_codec_name("") { m_is_open = false; m_Pause = false; m_extradata = NULL; m_extrasize = 0; m_video_convert = false; - m_video_codec_name = ""; m_deinterlace = false; m_hdmi_clock_sync = false; + m_drop_state = false; + m_decoded_width = 0; + m_decoded_height = 0; + m_omx_clock = NULL; + m_av_clock = NULL; + m_res_callback = NULL; + m_res_ctx = NULL; } COMXVideo::~COMXVideo() @@ -310,9 +316,7 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b if(m_deinterlace) CLog::Log(LOGDEBUG, "COMXVideo::Open : enable deinterlace\n"); - std::string componentName = ""; - - componentName = decoder_name; + std::string componentName = decoder_name; if(!m_omx_decoder.Initialize((const std::string)componentName, OMX_IndexParamVideoInit)) return false; @@ -995,11 +999,11 @@ void COMXVideo::SetVideoRect(const CRect& SrcRect, const CRect& DestRect) // doesn't like negative coordinates on dest_rect. So adjust by increasing src_rect if (dx1 < 0.0f) { sx1 -= dx1 * sw; - dx1 -= dx1; + dx1 = 0; } if (dy1 < 0.0f) { sy1 -= dy1 * sh; - dy1 -= dy1; + dy1 = 0; } OMX_INIT_STRUCTURE(configDisplay); diff --git a/xbmc/cores/paplayer/AudioDecoder.cpp b/xbmc/cores/paplayer/AudioDecoder.cpp index 4009f17305..95440fa1b2 100644 --- a/xbmc/cores/paplayer/AudioDecoder.cpp +++ b/xbmc/cores/paplayer/AudioDecoder.cpp @@ -37,6 +37,12 @@ CAudioDecoder::CAudioDecoder() m_status = STATUS_NO_FILE; m_canPlay = false; + + // output buffer (for transferring data from the Pcm Buffer to the rest of the audio chain) + memset(&m_outputBuffer, 0, OUTPUT_SAMPLES * sizeof(float)); + memset(&m_pcmInputBuffer, 0, INPUT_SIZE * sizeof(BYTE)); + memset(&m_inputBuffer, 0, INPUT_SAMPLES * sizeof(float)); + } CAudioDecoder::~CAudioDecoder() diff --git a/xbmc/cores/paplayer/MP3codec.cpp b/xbmc/cores/paplayer/MP3codec.cpp index d49b83ddb0..7820502fd6 100644 --- a/xbmc/cores/paplayer/MP3codec.cpp +++ b/xbmc/cores/paplayer/MP3codec.cpp @@ -276,8 +276,6 @@ int MP3Codec::Read(int size, bool init) // Decode data if we have some to decode if ( m_InputBufferPos || m_CallAgainWithSameBuffer || (m_eof && m_Decoding) ) { - int result; - m_Decoding = true; if ( size ) @@ -306,7 +304,7 @@ int MP3Codec::Read(int size, bool init) } // Now decode data into the vacant frame buffer. - result = Decode(&outputsize); + int result = Decode(&outputsize); if ( result != DECODING_ERROR) { if (init) @@ -771,7 +769,7 @@ int MP3Codec::ReadDuration() //find lame/xing info int frequency = 0, bitrate = 0, bittable = 0; int frame_count = 0; - double tpf = 0.0, bpf = 0.0; + double tpf = 0.0; for (int i = 0; i < iScanSize; i++) { unsigned long mpegheader = (unsigned long)( @@ -886,23 +884,6 @@ int MP3Codec::ReadDuration() int freqindex = (mpegheader & 0x0C00) >> 10; bitrate = bitrate_table[bittable][layer][bitindex]; - /* Calculate bytes per frame, calculation depends on layer */ - switch (layer) - { - case 1: - bpf = bitrate; - bpf *= 48000; - bpf /= freqtab[version][freqindex] << (version - 1); - break; - case 2: - case 3: - bpf = bitrate; - bpf *= 144000; - bpf /= freqtab[version][freqindex] << (version - 1); - break; - default: - bpf = 1; - } double tpfbs[] = { 0, 384.0f, 1152.0f, 1152.0f }; frequency = freqtab[version][freqindex]; tpf = tpfbs[layer] / (double) frequency; diff --git a/xbmc/cores/paplayer/MP3codec.h b/xbmc/cores/paplayer/MP3codec.h index 37f041de5b..852757dd4e 100644 --- a/xbmc/cores/paplayer/MP3codec.h +++ b/xbmc/cores/paplayer/MP3codec.h @@ -68,7 +68,7 @@ private: static unsigned int IsID3v2Header(unsigned char* pBuf, size_t bufLen); virtual int ReadDuration(); bool ReadLAMETagInfo(unsigned char *p); - int IsMp3FrameHeader(unsigned long head); + static int IsMp3FrameHeader(unsigned long head); int64_t GetByteOffset(float fTime); int64_t GetTimeOffset(int64_t iBytes); void SetOffsets(int iSeekOffsets, const float *offsets); diff --git a/xbmc/cores/paplayer/OggCallback.h b/xbmc/cores/paplayer/OggCallback.h index fc5dc799ad..0fe3e8b986 100644 --- a/xbmc/cores/paplayer/OggCallback.h +++ b/xbmc/cores/paplayer/OggCallback.h @@ -28,7 +28,7 @@ class COggCallback public: COggCallback(XFILE::CFile& file); - ov_callbacks Get(const CStdString& strFile); + static ov_callbacks Get(const CStdString& strFile); static size_t ReadCallback(void *ptr, size_t size, size_t nmemb, void *datasource); static int SeekCallback(void *datasource, ogg_int64_t offset, int whence); diff --git a/xbmc/cores/paplayer/VGMCodec.cpp b/xbmc/cores/paplayer/VGMCodec.cpp index 1d91f38367..904ab626c2 100644 --- a/xbmc/cores/paplayer/VGMCodec.cpp +++ b/xbmc/cores/paplayer/VGMCodec.cpp @@ -201,7 +201,6 @@ bool VGMCodec::IsSupportedFormat(const CStdString& strExt) strExt == "rwsd" || strExt == "rwav" || strExt == "rws" || - strExt == "rwsd" || strExt == "rwx" || strExt == "rxw" || strExt == "sad" || diff --git a/xbmc/cores/playercorefactory/PlayerCoreFactory.cpp b/xbmc/cores/playercorefactory/PlayerCoreFactory.cpp index 87991f17a3..8775c17226 100644 --- a/xbmc/cores/playercorefactory/PlayerCoreFactory.cpp +++ b/xbmc/cores/playercorefactory/PlayerCoreFactory.cpp @@ -46,9 +46,9 @@ CPlayerCoreFactory::CPlayerCoreFactory() CPlayerCoreFactory::~CPlayerCoreFactory() { - for(std::vector<CPlayerCoreConfig *>::iterator it = m_vecCoreConfigs.begin(); it != m_vecCoreConfigs.end(); it++) + for(std::vector<CPlayerCoreConfig *>::iterator it = m_vecCoreConfigs.begin(); it != m_vecCoreConfigs.end(); ++it) delete *it; - for(std::vector<CPlayerSelectionRule *>::iterator it = m_vecCoreSelectionRules.begin(); it != m_vecCoreSelectionRules.end(); it++) + for(std::vector<CPlayerSelectionRule *>::iterator it = m_vecCoreSelectionRules.begin(); it != m_vecCoreSelectionRules.end(); ++it) delete *it; } @@ -86,7 +86,7 @@ IPlayer* CPlayerCoreFactory::CreatePlayer(const CStdString& strCore, IPlayerCall IPlayer* CPlayerCoreFactory::CreatePlayer(const PLAYERCOREID eCore, IPlayerCallback& callback) const { CSingleLock lock(m_section); - if (!m_vecCoreConfigs.size() || eCore-1 > m_vecCoreConfigs.size()-1) + if (m_vecCoreConfigs.empty() || eCore-1 > m_vecCoreConfigs.size()-1) return NULL; return m_vecCoreConfigs[eCore-1]->CreatePlayer(callback); @@ -260,7 +260,7 @@ PLAYERCOREID CPlayerCoreFactory::GetDefaultPlayer( const CFileItem& item ) const GetPlayers(item, vecCores); //If we have any players return the first one - if( vecCores.size() > 0 ) return vecCores.at(0); + if( !vecCores.empty() ) return vecCores.at(0); return EPC_NONE; } @@ -321,7 +321,7 @@ bool CPlayerCoreFactory::LoadConfiguration(const std::string &file, bool clear) if (clear) { - for(std::vector<CPlayerCoreConfig *>::iterator it = m_vecCoreConfigs.begin(); it != m_vecCoreConfigs.end(); it++) + for(std::vector<CPlayerCoreConfig *>::iterator it = m_vecCoreConfigs.begin(); it != m_vecCoreConfigs.end(); ++it) delete *it; m_vecCoreConfigs.clear(); // Builtin players; hard-coded because re-ordering them would break scripts @@ -351,7 +351,7 @@ bool CPlayerCoreFactory::LoadConfiguration(const std::string &file, bool clear) m_vecCoreConfigs.push_back(omxplayer); #endif - for(std::vector<CPlayerSelectionRule *>::iterator it = m_vecCoreSelectionRules.begin(); it != m_vecCoreSelectionRules.end(); it++) + for(std::vector<CPlayerSelectionRule *>::iterator it = m_vecCoreSelectionRules.begin(); it != m_vecCoreSelectionRules.end(); ++it) delete *it; m_vecCoreSelectionRules.clear(); } @@ -427,7 +427,7 @@ void CPlayerCoreFactory::OnPlayerDiscovered(const CStdString& id, const CStdStri std::vector<CPlayerCoreConfig *>::iterator it; for(it = m_vecCoreConfigs.begin(); it != m_vecCoreConfigs.end(); - it++) + ++it) { if ((*it)->GetId() == id) { @@ -449,7 +449,7 @@ void CPlayerCoreFactory::OnPlayerRemoved(const CStdString& id) std::vector<CPlayerCoreConfig *>::iterator it; for(it = m_vecCoreConfigs.begin(); it != m_vecCoreConfigs.end(); - it++) + ++it) { if ((*it)->GetId() == id) (*it)->m_eCore = EPC_NONE; diff --git a/xbmc/cores/playercorefactory/PlayerCoreFactory.h b/xbmc/cores/playercorefactory/PlayerCoreFactory.h index 0a60e0978e..559ee0fae1 100644 --- a/xbmc/cores/playercorefactory/PlayerCoreFactory.h +++ b/xbmc/cores/playercorefactory/PlayerCoreFactory.h @@ -98,7 +98,7 @@ public: protected: CPlayerCoreFactory(); CPlayerCoreFactory(const CPlayerCoreFactory&); - CPlayerCoreFactory const& operator=(CPlayerCoreFactory const&); + CPlayerCoreFactory& operator=(CPlayerCoreFactory const&); virtual ~CPlayerCoreFactory(); private: diff --git a/xbmc/cores/playercorefactory/PlayerSelectionRule.cpp b/xbmc/cores/playercorefactory/PlayerSelectionRule.cpp index a247d33464..2bef5e39bd 100644 --- a/xbmc/cores/playercorefactory/PlayerSelectionRule.cpp +++ b/xbmc/cores/playercorefactory/PlayerSelectionRule.cpp @@ -83,7 +83,7 @@ void CPlayerSelectionRule::Initialize(TiXmlElement* pRule) } } -int CPlayerSelectionRule::GetTristate(const char* szValue) const +int CPlayerSelectionRule::GetTristate(const char* szValue) { if (szValue) { @@ -93,12 +93,12 @@ int CPlayerSelectionRule::GetTristate(const char* szValue) const return -1; } -bool CPlayerSelectionRule::CompileRegExp(const CStdString& str, CRegExp& regExp) const +bool CPlayerSelectionRule::CompileRegExp(const CStdString& str, CRegExp& regExp) { return str.length() > 0 && regExp.RegComp(str.c_str()); } -bool CPlayerSelectionRule::MatchesRegExp(const CStdString& str, CRegExp& regExp) const +bool CPlayerSelectionRule::MatchesRegExp(const CStdString& str, CRegExp& regExp) { return regExp.RegFind(str, 0) == 0; } @@ -108,15 +108,15 @@ void CPlayerSelectionRule::GetPlayers(const CFileItem& item, VECPLAYERCORES &vec CLog::Log(LOGDEBUG, "CPlayerSelectionRule::GetPlayers: considering rule: %s", m_name.c_str()); if (m_bStreamDetails && !item.HasVideoInfoTag()) return; - if (m_tAudio >= 0 && (m_tAudio > 0) != item.IsAudio()) return; - if (m_tVideo >= 0 && (m_tVideo > 0) != item.IsVideo()) return; - if (m_tInternetStream >= 0 && (m_tInternetStream > 0) != item.IsInternetStream()) return; - if (m_tRemote >= 0 && (m_tRemote > 0) != item.IsRemote()) return; - - if (m_tBD >= 0 && (m_tBD > 0) != (item.IsBDFile() && item.IsOnDVD())) return; - if (m_tDVD >= 0 && (m_tDVD > 0) != item.IsDVD()) return; - if (m_tDVDFile >= 0 && (m_tDVDFile > 0) != item.IsDVDFile()) return; - if (m_tDVDImage >= 0 && (m_tDVDImage > 0) != item.IsDVDImage()) return; + if ((m_tAudio > 0) != item.IsAudio()) return; + if ((m_tVideo > 0) != item.IsVideo()) return; + if ((m_tInternetStream > 0) != item.IsInternetStream()) return; + if ((m_tRemote > 0) != item.IsRemote()) return; + + if ((m_tBD > 0) != (item.IsBDFile() && item.IsOnDVD())) return; + if ((m_tDVD > 0) != item.IsDVD()) return; + if ((m_tDVDFile > 0) != item.IsDVDFile()) return; + if ((m_tDVDImage > 0) != item.IsDVDImage()) return; CRegExp regExp; diff --git a/xbmc/cores/playercorefactory/PlayerSelectionRule.h b/xbmc/cores/playercorefactory/PlayerSelectionRule.h index 91543d45f8..3078f9a89e 100644 --- a/xbmc/cores/playercorefactory/PlayerSelectionRule.h +++ b/xbmc/cores/playercorefactory/PlayerSelectionRule.h @@ -36,9 +36,9 @@ public: void GetPlayers(const CFileItem& item, VECPLAYERCORES &vecCores); private: - int GetTristate(const char* szValue) const; - bool CompileRegExp(const CStdString& str, CRegExp& regExp) const; - bool MatchesRegExp(const CStdString& str, CRegExp& regExp) const; + static int GetTristate(const char* szValue); + static bool CompileRegExp(const CStdString& str, CRegExp& regExp); + static bool MatchesRegExp(const CStdString& str, CRegExp& regExp); void Initialize(TiXmlElement* pRule); PLAYERCOREID GetPlayerCore(); |