diff options
-rw-r--r-- | xbmc/android/jni/ConnectivityManager.cpp | 2 | ||||
-rw-r--r-- | xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp | 2 | ||||
-rw-r--r-- | xbmc/cores/dvdplayer/DVDCodecs/Video/StageFrightVideo.cpp | 11 | ||||
-rw-r--r-- | xbmc/guilib/TextureGL.cpp | 3 | ||||
-rw-r--r-- | xbmc/guilib/TextureManager.cpp | 1 |
5 files changed, 15 insertions, 4 deletions
diff --git a/xbmc/android/jni/ConnectivityManager.cpp b/xbmc/android/jni/ConnectivityManager.cpp index f31035ff3d..2acd939cdb 100644 --- a/xbmc/android/jni/ConnectivityManager.cpp +++ b/xbmc/android/jni/ConnectivityManager.cpp @@ -38,7 +38,7 @@ int CJNIConnectivityManager::DEFAULT_NETWORK_PREFERENCE(0); void CJNIConnectivityManager::PopulateStaticFields() { - jhclass clazz = find_class("android.net.ConnectivityManager"); + jhclass clazz = find_class("android/net/ConnectivityManager"); TYPE_MOBILE = (get_static_field<int>(clazz, "TYPE_MOBILE")); TYPE_WIFI = (get_static_field<int>(clazz, "TYPE_WIFI")); TYPE_MOBILE_MMS = (get_static_field<int>(clazz, "TYPE_MOBILE_MMS")); diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp index efe8460580..4a8948b916 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp +++ b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp @@ -291,7 +291,7 @@ void CAESinkAUDIOTRACK::EnumerateDevicesEx(AEDeviceInfoList &list, bool force) m_info.m_sampleRates.push_back(44100); m_info.m_sampleRates.push_back(48000); m_info.m_dataFormats.push_back(AE_FMT_S16LE); -#if defined(__ARM_NEON__) +#if 0 && defined(__ARM_NEON__) if (g_cpuInfo.GetCPUFeatures() & CPU_FEATURE_NEON) m_info.m_dataFormats.push_back(AE_FMT_FLOAT); #endif diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/StageFrightVideo.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/StageFrightVideo.cpp index 4ca0a27ea9..d2373eabee 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/StageFrightVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/StageFrightVideo.cpp @@ -616,6 +616,7 @@ int CStageFrightVideo::Decode(uint8_t *pData, int iSize, double dts, double pts Frame *frame; int demuxer_bytes = iSize; uint8_t *demuxer_content = pData; + int ret = 0; if (demuxer_content) { @@ -628,12 +629,21 @@ int CStageFrightVideo::Decode(uint8_t *pData, int iSize, double dts, double pts frame->pts = (dts != DVD_NOPTS_VALUE) ? pts_dtoi(dts) : ((pts != DVD_NOPTS_VALUE) ? pts_dtoi(pts) : 0); else frame->pts = (pts != DVD_NOPTS_VALUE) ? pts_dtoi(pts) : ((dts != DVD_NOPTS_VALUE) ? pts_dtoi(dts) : 0); + + // No valid pts? libstagefright asserts on this. + if (frame->pts < 0) + { + free(frame); + return ret; + } + frame->medbuf = p->getBuffer(demuxer_bytes); if (!frame->medbuf) { free(frame); return VC_ERROR; } + fast_memcpy(frame->medbuf->data(), demuxer_content, demuxer_bytes); frame->medbuf->meta_data()->clear(); frame->medbuf->meta_data()->setInt64(kKeyTime, frame->pts); @@ -645,7 +655,6 @@ int CStageFrightVideo::Decode(uint8_t *pData, int iSize, double dts, double pts p->in_mutex.unlock(); } - int ret = 0; if (p->inputBufferAvailable() && p->in_queue.size() < INBUFCOUNT) ret |= VC_BUFFER; else diff --git a/xbmc/guilib/TextureGL.cpp b/xbmc/guilib/TextureGL.cpp index 2bce969ef4..97da5e2810 100644 --- a/xbmc/guilib/TextureGL.cpp +++ b/xbmc/guilib/TextureGL.cpp @@ -23,6 +23,7 @@ #include "windowing/WindowingFactory.h" #include "utils/log.h" #include "utils/GLUtils.h" +#include "guilib/TextureManager.h" #if defined(HAS_GL) || defined(HAS_GLES) @@ -50,7 +51,7 @@ void CGLTexture::CreateTextureObject() void CGLTexture::DestroyTextureObject() { if (m_texture) - glDeleteTextures(1, (GLuint*) &m_texture); + g_TextureManager.ReleaseHwTexture(m_texture); } void CGLTexture::LoadToGPU() diff --git a/xbmc/guilib/TextureManager.cpp b/xbmc/guilib/TextureManager.cpp index 18257d5a47..eff53151a8 100644 --- a/xbmc/guilib/TextureManager.cpp +++ b/xbmc/guilib/TextureManager.cpp @@ -487,6 +487,7 @@ void CGUITextureManager::FreeUnusedTextures(unsigned int timeDelay) void CGUITextureManager::ReleaseHwTexture(unsigned int texture) { + CSingleLock lock(g_graphicsContext); m_unusedHwTextures.push_back(texture); } |