Compare commits

..

11 Commits

Author SHA1 Message Date
Cameron Gutman 8086c3d46b Bump version to 4.8.2 2016-12-13 21:28:45 -08:00
Cameron Gutman 928fca843f Update moonlight-common to support GFE 3.2 2016-12-13 21:27:28 -08:00
Cameron Gutman 25d74785d0 Update build tools to 25.0.2 2016-12-13 20:54:24 -08:00
Cameron Gutman e12a8e7946 Update Gradle to 2.2.3 2016-12-13 20:51:39 -08:00
colin-foster-in-advantage b14f2ce219 Fixed typo in NAL parser (#311)
Added a missing "()" in the NAL parser script
2016-12-06 09:36:17 -08:00
Cameron Gutman d31be3d64e Prevent the help activity from reloading across config changes 2016-11-24 11:25:08 -08:00
Cameron Gutman 0704f2aaf6 Set noHistory for the Game activity 2016-11-24 11:23:18 -08:00
Cameron Gutman 832e52ac74 Reload PcView and AppView if the locale changes 2016-11-24 11:22:06 -08:00
Cameron Gutman f5444551b2 Avoid looping when the thread is trying to be interrupted 2016-11-22 23:20:00 -08:00
Cameron Gutman 3143797b55 Fix transparent background when switching apps in multi-window 2016-11-22 23:18:55 -08:00
Cameron Gutman cc9b1aeaab Use a MediaCodecInfo object to describe a codec rather than a codec name 2016-11-20 17:56:53 -08:00
8 changed files with 55 additions and 36 deletions
+1 -1
View File
@@ -20,7 +20,7 @@ function p_h264raw.dissector(buf, pkt, root)
local i = 0
local data_start = -1
while i < buf:len do
while i < buf:len() do
-- Make sure we have a potential start sequence and type
if buf:len() - i < 5 then
-- We need more data
+3 -3
View File
@@ -5,14 +5,14 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
buildToolsVersion "25.0.2"
defaultConfig {
minSdkVersion 16
targetSdkVersion 25
versionName "4.8.1"
versionCode = 113
versionName "4.8.2"
versionCode = 114
}
productFlavors {
Binary file not shown.
+10 -3
View File
@@ -41,7 +41,7 @@
<activity
android:name=".PcView"
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize|layoutDirection">
android:configChanges="mcc|mnc|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize|layoutDirection">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -62,7 +62,7 @@
</activity>
<activity
android:name=".AppView"
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize|layoutDirection">
android:configChanges="mcc|mnc|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize|layoutDirection">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.limelight.PcView" />
@@ -85,6 +85,7 @@
android:name=".Game"
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize|layoutDirection"
android:screenOrientation="sensorLandscape"
android:noHistory="true"
android:theme="@style/StreamTheme">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
@@ -101,7 +102,13 @@
android:name=".binding.input.driver.UsbDriverService"
android:label="Usb Driver Service" />
<activity android:name=".HelpActivity"></activity>
<activity
android:name=".HelpActivity"
android:configChanges="mcc|mnc|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize|layoutDirection">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.limelight.PcView" />
</activity>
</application>
</manifest>
@@ -30,8 +30,8 @@ public class MediaCodecDecoderRenderer extends EnhancedDecoderRenderer {
// Used on versions < 5.0
private ByteBuffer[] legacyInputBuffers;
private String avcDecoderName;
private String hevcDecoderName;
private MediaCodecInfo avcDecoder;
private MediaCodecInfo hevcDecoder;
private MediaCodec videoDecoder;
private Thread rendererThread;
@@ -94,19 +94,17 @@ public class MediaCodecDecoderRenderer extends EnhancedDecoderRenderer {
public MediaCodecDecoderRenderer(int videoFormat) {
//dumpDecoders();
MediaCodecInfo avcDecoder = findAvcDecoder();
avcDecoder = findAvcDecoder();
if (avcDecoder != null) {
avcDecoderName = avcDecoder.getName();
LimeLog.info("Selected AVC decoder: "+avcDecoderName);
LimeLog.info("Selected AVC decoder: "+avcDecoder.getName());
}
else {
LimeLog.warning("No AVC decoder found");
}
MediaCodecInfo hevcDecoder = findHevcDecoder(videoFormat);
hevcDecoder = findHevcDecoder(videoFormat);
if (hevcDecoder != null) {
hevcDecoderName = hevcDecoder.getName();
LimeLog.info("Selected HEVC decoder: "+hevcDecoderName);
LimeLog.info("Selected HEVC decoder: "+hevcDecoder.getName());
}
else {
LimeLog.info("No HEVC decoder found");
@@ -117,24 +115,24 @@ public class MediaCodecDecoderRenderer extends EnhancedDecoderRenderer {
// library. The limitation of this is that we don't know whether we're using HEVC or AVC, so
// we just assume AVC. This isn't really a problem because the capabilities are usually
// shared between AVC and HEVC decoders on the same device.
if (avcDecoderName != null) {
directSubmit = MediaCodecHelper.decoderCanDirectSubmit(avcDecoderName);
adaptivePlayback = MediaCodecHelper.decoderSupportsAdaptivePlayback(avcDecoderName);
if (avcDecoder != null) {
directSubmit = MediaCodecHelper.decoderCanDirectSubmit(avcDecoder.getName());
adaptivePlayback = MediaCodecHelper.decoderSupportsAdaptivePlayback(avcDecoder.getName());
if (directSubmit) {
LimeLog.info("Decoder "+avcDecoderName+" will use direct submit");
LimeLog.info("Decoder "+avcDecoder.getName()+" will use direct submit");
}
}
}
@Override
public boolean isHevcSupported() {
return hevcDecoderName != null;
return hevcDecoder != null;
}
@Override
public boolean isAvcSupported() {
return avcDecoderName != null;
return avcDecoder != null;
}
@Override
@@ -148,9 +146,9 @@ public class MediaCodecDecoderRenderer extends EnhancedDecoderRenderer {
if (videoFormat == VideoFormat.H264) {
mimeType = "video/avc";
selectedDecoderName = avcDecoderName;
selectedDecoderName = avcDecoder.getName();
if (avcDecoderName == null) {
if (avcDecoder == null) {
LimeLog.severe("No available AVC decoder!");
return false;
}
@@ -175,9 +173,9 @@ public class MediaCodecDecoderRenderer extends EnhancedDecoderRenderer {
}
else if (videoFormat == VideoFormat.H265) {
mimeType = "video/hevc";
selectedDecoderName = hevcDecoderName;
selectedDecoderName = hevcDecoder.getName();
if (hevcDecoderName == null) {
if (hevcDecoder == null) {
LimeLog.severe("No available HEVC decoder!");
return false;
}
@@ -812,11 +810,11 @@ public class MediaCodecDecoderRenderer extends EnhancedDecoderRenderer {
@Override
public void directSubmitDecodeUnit(DecodeUnit du) {
int inputIndex;
int inputIndex = -1;
notifyDuReceived(du);
for (;;) {
while (!Thread.currentThread().isInterrupted()) {
try {
inputIndex = dequeueInputBuffer(true, true);
break;
@@ -854,8 +852,8 @@ public class MediaCodecDecoderRenderer extends EnhancedDecoderRenderer {
String str = "";
str += "Format: "+renderer.videoFormat+"\n";
str += "AVC Decoder: "+renderer.avcDecoderName+"\n";
str += "HEVC Decoder: "+renderer.hevcDecoderName+"\n";
str += "AVC Decoder: "+((renderer.avcDecoder != null) ? renderer.avcDecoder.getName():"(none)")+"\n";
str += "HEVC Decoder: "+((renderer.hevcDecoder != null) ? renderer.hevcDecoder.getName():"(none)")+"\n";
str += "Initial video dimensions: "+renderer.initialWidth+"x"+renderer.initialHeight+"\n";
str += "In stats: "+renderer.numVpsIn+", "+renderer.numSpsIn+", "+renderer.numPpsIn+", "+renderer.numIframeIn+"\n";
str += "Total frames: "+renderer.totalFrames+"\n";
+12
View File
@@ -0,0 +1,12 @@
<resources>
<!--
Use a black background to avoid the transparent background when switching apps.
android:windowBackgroundFallback is supposed to do this, but it wasn't working for
me as of Android 7.1
-->
<style name="StreamBaseTheme" parent="AppBaseTheme">
<item name="android:windowBackground">@android:color/black</item>
</style>
</resources>
+8 -6
View File
@@ -22,14 +22,16 @@
<item name="android:windowNoTitle">true</item>
</style>
<!-- Stream activity theme -->
<style name="StreamTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<style name="StreamBaseTheme" parent="AppBaseTheme">
<!-- Transparent streaming background to avoid extra overdraw -->
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<!-- Stream activity theme -->
<style name="StreamTheme" parent="StreamBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
</resources>
+1 -1
View File
@@ -4,7 +4,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
classpath 'com.android.tools.build:gradle:2.2.3'
}
}