summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDahiya, Anil (A.) <adahiya@ford.com>2015-04-20 14:23:12 -0400
committerRapitis, Markos (M.J.) <mrapitis@ford.com>2015-05-06 10:39:02 -0400
commit1fbbd615a9fc39448d20e12b4cc24966fbc32f3c (patch)
treead6608b3956cf140b7276235b0fbeecaa830f6e2
parent68770af144c96083aabbce78435a820edfab94bd (diff)
downloadsdl_android-1fbbd615a9fc39448d20e12b4cc24966fbc32f3c.tar.gz
Changes for Error Handling for Encoder
-rw-r--r--sdl_android_lib/AndroidManifest.xml2
-rw-r--r--sdl_android_lib/project.properties2
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/SdlConnection/SdlConnection.java12
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/encoder/SdlEncoder.java22
4 files changed, 27 insertions, 11 deletions
diff --git a/sdl_android_lib/AndroidManifest.xml b/sdl_android_lib/AndroidManifest.xml
index 8c2db539b..515f72bc5 100644
--- a/sdl_android_lib/AndroidManifest.xml
+++ b/sdl_android_lib/AndroidManifest.xml
@@ -1,5 +1,5 @@
<manifest package="com.smartdevicelink" xmlns:android="http://schemas.android.com/apk/res/android">
- <uses-sdk android:minSdkVersion="12"/>
+ <uses-sdk android:minSdkVersion="19"/>
<!-- Required to use the USB Accessory mode -->
<uses-feature android:name="android.hardware.usb.accessory"/>
<application android:debuggable="true"/>
diff --git a/sdl_android_lib/project.properties b/sdl_android_lib/project.properties
index e61077f79..7002f279d 100644
--- a/sdl_android_lib/project.properties
+++ b/sdl_android_lib/project.properties
@@ -8,5 +8,5 @@
# project structure.
# Project target.
-target=android-17
+target=android-18
android.library=true
diff --git a/sdl_android_lib/src/com/smartdevicelink/SdlConnection/SdlConnection.java b/sdl_android_lib/src/com/smartdevicelink/SdlConnection/SdlConnection.java
index ae44f73a2..b3e50d86a 100644
--- a/sdl_android_lib/src/com/smartdevicelink/SdlConnection/SdlConnection.java
+++ b/sdl_android_lib/src/com/smartdevicelink/SdlConnection/SdlConnection.java
@@ -398,15 +398,21 @@ public class SdlConnection implements IProtocolListener, ITransportListener, ISt
}
public void startEncoder () {
- mSdlEncoder.startEncoder();
+ if(mSdlEncoder != null) {
+ mSdlEncoder.startEncoder();
+ }
}
public void releaseEncoder() {
- mSdlEncoder.releaseEncoder();
+ if(mSdlEncoder != null) {
+ mSdlEncoder.releaseEncoder();
+ }
}
public void drainEncoder(boolean endOfStream) {
- mSdlEncoder.drainEncoder(endOfStream);
+ if(mSdlEncoder != null) {
+ mSdlEncoder.drainEncoder(endOfStream);
+ }
}
@Override
diff --git a/sdl_android_lib/src/com/smartdevicelink/encoder/SdlEncoder.java b/sdl_android_lib/src/com/smartdevicelink/encoder/SdlEncoder.java
index 05dd95dad..bf4af07c3 100644
--- a/sdl_android_lib/src/com/smartdevicelink/encoder/SdlEncoder.java
+++ b/sdl_android_lib/src/com/smartdevicelink/encoder/SdlEncoder.java
@@ -71,13 +71,19 @@ public class SdlEncoder {
try {
mEncoder = MediaCodec.createEncoderByType(_MIME_TYPE);
} catch (Exception e) {e.printStackTrace();}
-
- mEncoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
- return mEncoder.createInputSurface();
+
+ if(mEncoder != null) {
+ mEncoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
+ return mEncoder.createInputSurface();
+ } else {
+ return null;
+ }
}
public void startEncoder () {
- mEncoder.start();
+ if(mEncoder != null) {
+ mEncoder.start();
+ }
}
/**
@@ -95,6 +101,7 @@ public class SdlEncoder {
} catch (IOException e) {
e.printStackTrace();
}
+ mOutputStream = null;
}
}
@@ -109,8 +116,11 @@ public class SdlEncoder {
public void drainEncoder(boolean endOfStream) {
final int TIMEOUT_USEC = 10000;
+ if(mEncoder == null || mOutputStream == null) {
+ return;
+ }
if (endOfStream) {
- mEncoder.signalEndOfInputStream();
+ mEncoder.signalEndOfInputStream();
}
ByteBuffer[] encoderOutputBuffers = mEncoder.getOutputBuffers();
@@ -135,7 +145,7 @@ public class SdlEncoder {
try {
mOutputStream.write(dataToWrite, 0, mBufferInfo.size);
- } catch (IOException e) {}
+ } catch (Exception e) {}
}
mEncoder.releaseOutputBuffer(encoderStatus, false);