FIX: [stagefright] fixup kitkat; remove hardcoded api limitation
authorChris "Koying" Browet <cbro@semperpax.com>
Mon, 25 Nov 2013 11:47:40 +0000 (12:47 +0100)
committerChris "Koying" Browet <cbro@semperpax.com>
Tue, 26 Nov 2013 08:27:02 +0000 (09:27 +0100)
xbmc/Application.cpp
xbmc/cores/dvdplayer/DVDCodecs/Video/libstagefrightICS/StageFrightVideo.cpp
xbmc/settings/Settings.cpp

index 240bbec..7bab9e9 100644 (file)
@@ -1723,11 +1723,8 @@ bool CApplication::OnSettingUpdate(CSetting* &setting, const char *oldSettingId,
   }
   else if (settingId == "videoplayer.usestagefright")
   {
-    if (CAndroidFeatures::GetVersion() >= 19)
-    {
-      CSettingBool *usestagefright = (CSettingBool*)setting;
-      usestagefright->SetValue(false);
-    }
+    CSettingBool *usestagefright = (CSettingBool*)setting;
+    usestagefright->SetValue(false);
   }
 #endif
 
index 089b3e9..9ca2245 100644 (file)
@@ -55,8 +55,6 @@
 #define EGL_NATIVE_BUFFER_ANDROID 0x3140
 #define EGL_IMAGE_PRESERVED_KHR   0x30D2
 
-const char *MEDIA_MIMETYPE_VIDEO_WMV  = "video/x-ms-wmv";
-
 using namespace android;
 
 static int64_t pts_dtoi(double pts)
@@ -430,33 +428,37 @@ bool CStageFrightVideo::Open(CDVDStreamInfo &hints)
   case CODEC_ID_H264:
     if (p->m_g_advancedSettings->m_stagefrightConfig.useAVCcodec == 0)
       return false;
-    mimetype = MEDIA_MIMETYPE_VIDEO_AVC;
+    mimetype = "video/avc";
     if ( *(char*)hints.extradata == 1 )
       p->meta->setData(kKeyAVCC, kTypeAVCC, hints.extradata, hints.extrasize);
     break;
   case CODEC_ID_MPEG4:
     if (p->m_g_advancedSettings->m_stagefrightConfig.useMP4codec == 0)
       return false;
-    mimetype = MEDIA_MIMETYPE_VIDEO_MPEG4;
+    mimetype = "video/mp4v-es";
     break;
   case CODEC_ID_MPEG2VIDEO:
     if (p->m_g_advancedSettings->m_stagefrightConfig.useMPEG2codec == 0)
       return false;
-    mimetype = MEDIA_MIMETYPE_VIDEO_MPEG2;
+    mimetype = "video/mpeg2";
     break;
   case CODEC_ID_VP3:
   case CODEC_ID_VP6:
   case CODEC_ID_VP6F:
+      if (p->m_g_advancedSettings->m_stagefrightConfig.useVPXcodec == 0)
+        return false;
+      mimetype = "video/vp6";
+      break;
   case CODEC_ID_VP8:
     if (p->m_g_advancedSettings->m_stagefrightConfig.useVPXcodec == 0)
       return false;
-    mimetype = MEDIA_MIMETYPE_VIDEO_VPX;
+    mimetype = "video/x-vnd.on2.vp8";
     break;
   case CODEC_ID_VC1:
   case CODEC_ID_WMV3:
     if (p->m_g_advancedSettings->m_stagefrightConfig.useVC1codec == 0)
       return false;
-    mimetype = MEDIA_MIMETYPE_VIDEO_WMV;
+    mimetype = "video/vc1";
     break;
   default:
     return false;
index 13fd236..9c1c1db 100644 (file)
@@ -911,6 +911,9 @@ void CSettings::InitializeConditions()
   if (CAndroidFeatures::GetVersion() > 15)
     m_settingsManager->AddCondition("has_mediacodec");
 #endif
+#ifdef HAS_LIBSTAGEFRIGHT
+  m_settingsManager->AddCondition("have_libstagefrightdecoder");
+#endif
 #ifdef HAVE_VIDEOTOOLBOXDECODER
   m_settingsManager->AddCondition("have_videotoolboxdecoder");
   if (g_sysinfo.HasVideoToolBoxDecoder())
@@ -920,10 +923,6 @@ void CSettings::InitializeConditions()
   if (aml_present())
     m_settingsManager->AddCondition("have_amcodec");
 #endif
-#ifdef HAS_LIBSTAGEFRIGHT
-  if (CAndroidFeatures::GetVersion() < 19)
-    m_settingsManager->AddCondition("have_libstagefrightdecoder");
-#endif
 #ifdef TARGET_DARWIN_IOS_ATV2
   if (g_sysinfo.IsAppleTV2())
     m_settingsManager->AddCondition("isappletv2");