aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xbmc/android/jni/ConnectivityManager.cpp2
-rw-r--r--xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp2
-rw-r--r--xbmc/cores/dvdplayer/DVDCodecs/Video/StageFrightVideo.cpp11
-rw-r--r--xbmc/guilib/TextureGL.cpp3
-rw-r--r--xbmc/guilib/TextureManager.cpp1
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);
}