From 026f890c7b8975e423c859062a807220e290bd23 Mon Sep 17 00:00:00 2001 From: chehefen Date: Wed, 10 Jul 2019 01:30:24 +0000 Subject: [PATCH] Release 1.9.4 (9 July 2019) License update: KVS SDK is under Apache 2.0 license now. Stablization updates in C layer. Added internal retry logic to handle error case that SDK can recover, i.e. network unstability. Skip over error fragments - SDK will continue skip any invalid fragments are ingested through SDK earlier and continue streaming. Automatic CPD (codec private data) extraction from the stream when CPD is part of the first H264 AnnexB frame. --- .gitignore | 3 + README.md | 9 +- pom.xml | 6 + .../client/StreamingReadAsyncClient.java | 121 +++++++++++++++ .../kinesisvideo/http/HttpClientBase.java | 115 ++++++++++++++ .../KinesisVideoApacheHttpAsyncClient.java | 111 ++++++++++++++ .../http/KinesisVideoApacheHttpClient.java | 145 +++--------------- .../kinesisvideo/http/TrustAllStrategy.java | 15 ++ .../client/NativeKinesisVideoClient.java | 20 ++- .../jni/NativeKinesisVideoProducerJni.java | 2 +- .../producer/jni/NativeLibraryLoader.java | 4 +- .../kinesisvideo/producer/ClientInfo.java | 74 +++++++++ .../kinesisvideo/producer/DeviceInfo.java | 26 +++- .../kinesisvideo/producer/FrameOrderMode.java | 51 ++++++ .../producer/KinesisVideoFrame.java | 15 ++ .../producer/StreamDescription.java | 20 ++- .../kinesisvideo/producer/StreamInfo.java | 48 +++++- .../kinesisvideo/producer/TrackInfo.java | 16 ++ .../lib/mac/libKinesisVideoProducerJNI.dylib | Bin 331268 -> 262748 bytes .../lib/raspian/libKinesisVideoProducerJNI.so | Bin 591824 -> 436532 bytes .../lib/ubuntu/libKinesisVideoProducerJNI.so | Bin 413232 -> 368200 bytes .../lib/windows/KinesisVideoProducerJNI.dll | Bin 336896 -> 369152 bytes 22 files changed, 659 insertions(+), 142 deletions(-) create mode 100644 src/main/java/com/amazonaws/kinesisvideo/client/StreamingReadAsyncClient.java create mode 100644 src/main/java/com/amazonaws/kinesisvideo/http/HttpClientBase.java create mode 100644 src/main/java/com/amazonaws/kinesisvideo/http/KinesisVideoApacheHttpAsyncClient.java create mode 100644 src/main/java/com/amazonaws/kinesisvideo/http/TrustAllStrategy.java create mode 100644 src/main/java/com/amazonaws/kinesisvideo/producer/ClientInfo.java create mode 100644 src/main/java/com/amazonaws/kinesisvideo/producer/FrameOrderMode.java diff --git a/.gitignore b/.gitignore index ccfa7cc1..837eb8d5 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ .settings /eclipse-bin/ .idea +*.key +*.gpg +cm-file \ No newline at end of file diff --git a/README.md b/README.md index 7b9ebfa0..b33c4c2d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ The Amazon Kinesis Video Streams Producer SDK Java makes it easy to build an on- * [Developer Guide](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk-javaapi.html) - For in-depth getting started and usage information. * [Release Notes](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java/releases) - To see the latest features, bug fixes, and changes in the SDK -* [Issues](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java/issues) - Report issues and submit pull requests +* [Issues](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java/issues) - Report issues and submit pull requests ### Prerequisites @@ -132,6 +132,13 @@ export LD_LIBRARY_PATH=//amazon-kinesis-video-st This should resolve native library loading issues. ## Release Notes +### Release 1.9.4 (9 July 2019) +* License update: KVS SDK is under Apache 2.0 license now. +* Stablization updates in C layer. +* Added internal retry logic to handle error case that SDK can recover, i.e. network unstability. +* Skip over error fragments - SDK will continue skip any invalid fragments are ingested through SDK earlier and continue streaming. +* Automatic CPD (codec private data) extraction from the stream when CPD is part of the first H264 AnnexB frame. + ### Release 1.9.3 (12 March 2019) * Bug fix to avoid crash due to access to freed native stream object. diff --git a/pom.xml b/pom.xml index 0fbf59c9..6baea9d6 100644 --- a/pom.xml +++ b/pom.xml @@ -141,6 +141,12 @@ commons-io 2.4 + + + org.apache.httpcomponents + httpasyncclient + 4.1.4 + diff --git a/src/main/java/com/amazonaws/kinesisvideo/client/StreamingReadAsyncClient.java b/src/main/java/com/amazonaws/kinesisvideo/client/StreamingReadAsyncClient.java new file mode 100644 index 00000000..a43d1fdb --- /dev/null +++ b/src/main/java/com/amazonaws/kinesisvideo/client/StreamingReadAsyncClient.java @@ -0,0 +1,121 @@ +package com.amazonaws.kinesisvideo.client; + +import java.io.IOException; +import java.net.URI; +import org.apache.http.HttpResponse; +import org.apache.http.concurrent.FutureCallback; +import org.apache.http.entity.ContentType; +import org.apache.http.nio.protocol.HttpAsyncResponseConsumer; +import com.amazonaws.kinesisvideo.http.HttpMethodName; +import com.amazonaws.kinesisvideo.http.KinesisVideoApacheHttpAsyncClient; +import com.amazonaws.kinesisvideo.signing.KinesisVideoSigner; + +/** + * Async Client which wraps around Apache Http Async client which takes care + * of massaging the request to be made using the apache client + */ +public final class StreamingReadAsyncClient { + private static final String CONTENT_TYPE_HEADER_KEY = "Content-Type"; + private URI uri; + private KinesisVideoSigner signer; + private String inputInJson; + private Integer connectionTimeoutInMillis; + private Integer readTimeoutInMillis; + private HttpAsyncResponseConsumer httpAsyncResponseConsumer; + private FutureCallback futureCallback; + private KinesisVideoApacheHttpAsyncClient asyncClient; + + private StreamingReadAsyncClient(final URI uri, final KinesisVideoSigner signer, final String inputInJson, final Integer connectionTimeoutInMillis, final Integer readTimeoutInMillis, final HttpAsyncResponseConsumer httpAsyncResponseConsumer, final FutureCallback futureCallback) { + this.uri = uri; + this.signer = signer; + this.inputInJson = inputInJson; + this.connectionTimeoutInMillis = connectionTimeoutInMillis; + this.readTimeoutInMillis = readTimeoutInMillis; + this.httpAsyncResponseConsumer = httpAsyncResponseConsumer; + this.futureCallback = futureCallback; + this.asyncClient = getHttpClient(); + } + + public void execute() { + asyncClient.executeRequest(); + } + + public void close() throws IOException { + asyncClient.close(); + } + + private KinesisVideoApacheHttpAsyncClient getHttpClient() { + KinesisVideoApacheHttpAsyncClient.Builder clientBuilder = KinesisVideoApacheHttpAsyncClient.builder().withUri(uri).withContentType(ContentType.APPLICATION_JSON).withMethod(HttpMethodName.POST).withContentInJson(inputInJson).withHeader(CONTENT_TYPE_HEADER_KEY, ContentType.APPLICATION_JSON.getMimeType()).withFutureCallback(futureCallback).withHttpAsyncResponseConsumer(httpAsyncResponseConsumer); + if (connectionTimeoutInMillis != null) { + clientBuilder = clientBuilder.withConnectionTimeoutInMillis(connectionTimeoutInMillis.intValue()); + } + if (readTimeoutInMillis != null) { + clientBuilder = clientBuilder.withSocketTimeoutInMillis(readTimeoutInMillis.intValue()); + } + final KinesisVideoApacheHttpAsyncClient client = clientBuilder.build(); + signer.sign(client); + return client; + } + + + public static class StreamingReadAsyncClientBuilder { + private URI uri; + private KinesisVideoSigner signer; + private String inputInJson; + private Integer connectionTimeoutInMillis; + private Integer readTimeoutInMillis; + private HttpAsyncResponseConsumer httpAsyncResponseConsumer; + private FutureCallback futureCallback; + + StreamingReadAsyncClientBuilder() { + } + + public StreamingReadAsyncClientBuilder uri(final URI uri) { + this.uri = uri; + return this; + } + + public StreamingReadAsyncClientBuilder signer(final KinesisVideoSigner signer) { + this.signer = signer; + return this; + } + + public StreamingReadAsyncClientBuilder inputInJson(final String inputInJson) { + this.inputInJson = inputInJson; + return this; + } + + public StreamingReadAsyncClientBuilder connectionTimeoutInMillis(final Integer connectionTimeoutInMillis) { + this.connectionTimeoutInMillis = connectionTimeoutInMillis; + return this; + } + + public StreamingReadAsyncClientBuilder readTimeoutInMillis(final Integer readTimeoutInMillis) { + this.readTimeoutInMillis = readTimeoutInMillis; + return this; + } + + public StreamingReadAsyncClientBuilder httpAsyncResponseConsumer(final HttpAsyncResponseConsumer httpAsyncResponseConsumer) { + this.httpAsyncResponseConsumer = httpAsyncResponseConsumer; + return this; + } + + public StreamingReadAsyncClientBuilder futureCallback(final FutureCallback futureCallback) { + this.futureCallback = futureCallback; + return this; + } + + public StreamingReadAsyncClient build() { + return new StreamingReadAsyncClient(uri, signer, inputInJson, connectionTimeoutInMillis, readTimeoutInMillis, httpAsyncResponseConsumer, futureCallback); + } + + @Override + public String toString() { + return "StreamingReadAsyncClient.StreamingReadAsyncClientBuilder(uri=" + this.uri + ", signer=" + this.signer + ", inputInJson=" + this.inputInJson + ", connectionTimeoutInMillis=" + this.connectionTimeoutInMillis + ", readTimeoutInMillis=" + this.readTimeoutInMillis + ", httpAsyncResponseConsumer=" + this.httpAsyncResponseConsumer + ", futureCallback=" + this.futureCallback + ")"; + } + } + + public static StreamingReadAsyncClientBuilder builder() { + return new StreamingReadAsyncClientBuilder(); + } +} diff --git a/src/main/java/com/amazonaws/kinesisvideo/http/HttpClientBase.java b/src/main/java/com/amazonaws/kinesisvideo/http/HttpClientBase.java new file mode 100644 index 00000000..3dee314b --- /dev/null +++ b/src/main/java/com/amazonaws/kinesisvideo/http/HttpClientBase.java @@ -0,0 +1,115 @@ +package com.amazonaws.kinesisvideo.http; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; + +import org.apache.http.entity.ContentType; + +public abstract class HttpClientBase implements HttpClient { + + private static final String HOST_HEADER = "Host"; + private static final int DEFAULT_CONNECTION_TIMEOUT_IN_MILLIS = 10000; //magic number + private static final int DEFAULT_SOCKET_TIMEOUT_IN_MILLIS = 10000; //magic number + + protected final BuilderBase mBuilder; + + public HttpClientBase(final BuilderBase builder) { + this.mBuilder = builder; + } + + /** + * This method is intended for testing use only. + * + * @param key header key + * @param value header value + */ + public void addHeaderUnsafe(final String key, final String value) { + mBuilder.withHeader(key, value); + } + + @Override + public HttpMethodName getMethod() { + return mBuilder.mMethod; + } + + @Override + public URI getUri() { + return mBuilder.mUri; + } + + @Override + public Map getHeaders() { + return mBuilder.mHeaders; + } + + @Override + public InputStream getContent() { + return new ByteArrayInputStream(mBuilder.mContentInJson.getBytes(StandardCharsets.US_ASCII)); + } + + @Override + public void close() throws IOException { + this.closeClient(); + } + + public abstract void closeClient() throws IOException; + + public abstract static class BuilderBase { + protected final Map mHeaders; + protected URI mUri; + protected HttpMethodName mMethod; + protected int mConnectionTimeoutInMillis; + protected int mSocketTimeoutInMillis; + protected ContentType mContentType; + protected String mContentInJson; + + public abstract T builderType(); + + public BuilderBase() { + mHeaders = new HashMap(); + mConnectionTimeoutInMillis = DEFAULT_CONNECTION_TIMEOUT_IN_MILLIS; + mSocketTimeoutInMillis = DEFAULT_SOCKET_TIMEOUT_IN_MILLIS; + } + + public T withUri(final URI uri) { + mUri = uri; + mHeaders.put(HOST_HEADER, uri.getHost()); + return builderType(); + } + + public T withMethod(final HttpMethodName method) { + mMethod = method; + return builderType(); + } + + public T withHeader(final String key, final String value) { + mHeaders.put(key, value); + return builderType(); + } + + public T withConnectionTimeoutInMillis(final int connectionTimeoutInMillis) { + mConnectionTimeoutInMillis = connectionTimeoutInMillis; + return builderType(); + } + + public T withSocketTimeoutInMillis(final int socketTimeoutInMillis) { + mSocketTimeoutInMillis = socketTimeoutInMillis; + return builderType(); + } + + public T withContentType(final ContentType contentType) { + mContentType = contentType; + return builderType(); + } + + public T withContentInJson(final String contentInJson) { + mContentInJson = contentInJson; + return builderType(); + } + } +} diff --git a/src/main/java/com/amazonaws/kinesisvideo/http/KinesisVideoApacheHttpAsyncClient.java b/src/main/java/com/amazonaws/kinesisvideo/http/KinesisVideoApacheHttpAsyncClient.java new file mode 100644 index 00000000..9c40d6e2 --- /dev/null +++ b/src/main/java/com/amazonaws/kinesisvideo/http/KinesisVideoApacheHttpAsyncClient.java @@ -0,0 +1,111 @@ +package com.amazonaws.kinesisvideo.http; + +import static com.amazonaws.kinesisvideo.common.preconditions.Preconditions.checkNotNull; + +import java.io.IOException; +import java.security.KeyManagementException; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.concurrent.FutureCallback; +import org.apache.http.conn.ssl.NoopHostnameVerifier; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.nio.client.CloseableHttpAsyncClient; +import org.apache.http.impl.nio.client.HttpAsyncClientBuilder; +import org.apache.http.nio.client.methods.HttpAsyncMethods; +import org.apache.http.nio.conn.ssl.SSLIOSessionStrategy; +import org.apache.http.nio.protocol.HttpAsyncRequestProducer; +import org.apache.http.nio.protocol.HttpAsyncResponseConsumer; +import org.apache.http.ssl.SSLContextBuilder; + +/** + * Http Async Client which uses Apache HttpAsyncClient internally to make + * the http request and invoke callbacks when there is data ready to consume. + */ +public final class KinesisVideoApacheHttpAsyncClient extends HttpClientBase { + + private final CloseableHttpAsyncClient mHttpClient; + + private KinesisVideoApacheHttpAsyncClient(final BuilderBase builder) { + super(builder); + this.mHttpClient = buildHttpAsyncClient(); + this.mHttpClient.start(); + } + + public static Builder builder() { + return new Builder(); + } + + public void executeRequest() { + final HttpPost request = new HttpPost(mBuilder.mUri); + for (Map.Entry entry : mBuilder.mHeaders.entrySet()) { + request.addHeader(entry.getKey(), entry.getValue()); + } + final HttpEntity entity = new StringEntity(mBuilder.mContentInJson, mBuilder.mContentType); + request.setEntity(entity); + final HttpAsyncRequestProducer requestProducer = HttpAsyncMethods.create(request); + this.mHttpClient.execute(requestProducer, ((Builder) mBuilder).mHttpAsyncResponseConsumer, + ((Builder) mBuilder).mFutureCallback); + } + + private CloseableHttpAsyncClient buildHttpAsyncClient() { + final SSLContextBuilder builder = new SSLContextBuilder(); + try { + builder.loadTrustMaterial(new TrustAllStrategy()); + final SSLIOSessionStrategy sslSessionStrategy = new SSLIOSessionStrategy(builder.build(), + new String[] {"TLSv1.2"}, + null, + new NoopHostnameVerifier()); + return HttpAsyncClientBuilder.create() + .setSSLStrategy(sslSessionStrategy) + .setDefaultRequestConfig(RequestConfig.custom() + .setConnectTimeout(mBuilder.mConnectionTimeoutInMillis) + .setSocketTimeout(mBuilder.mSocketTimeoutInMillis) + .build()) + .build(); + } catch (final KeyManagementException e) { + throw new RuntimeException("Exception while building Apache http client", e); + } catch (final NoSuchAlgorithmException e) { + throw new RuntimeException("Exception while building Apache http client", e); + } catch (final KeyStoreException e) { + throw new RuntimeException("Exception while building Apache http client", e); + } + } + + public static final class Builder extends BuilderBase { + + private HttpAsyncResponseConsumer mHttpAsyncResponseConsumer; + private FutureCallback mFutureCallback; + + public Builder withHttpAsyncResponseConsumer(final HttpAsyncResponseConsumer + httpAsyncResponseConsumer) { + mHttpAsyncResponseConsumer = httpAsyncResponseConsumer; + return this; + } + + public Builder withFutureCallback(final FutureCallback futureCallback) { + mFutureCallback = futureCallback; + return this; + } + + public KinesisVideoApacheHttpAsyncClient build() { + checkNotNull(mUri); + return new KinesisVideoApacheHttpAsyncClient(this); + } + + @Override + public Builder builderType() { + return this; + } + } + + @Override + public void closeClient() throws IOException { + this.mHttpClient.close(); + } +} diff --git a/src/main/java/com/amazonaws/kinesisvideo/http/KinesisVideoApacheHttpClient.java b/src/main/java/com/amazonaws/kinesisvideo/http/KinesisVideoApacheHttpClient.java index fde3f12f..c49c0b82 100644 --- a/src/main/java/com/amazonaws/kinesisvideo/http/KinesisVideoApacheHttpClient.java +++ b/src/main/java/com/amazonaws/kinesisvideo/http/KinesisVideoApacheHttpClient.java @@ -1,55 +1,40 @@ package com.amazonaws.kinesisvideo.http; +import static com.amazonaws.kinesisvideo.common.preconditions.Preconditions.checkNotNull; + +import java.io.IOException; +import java.security.KeyManagementException; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.util.Map; + import org.apache.http.HttpEntity; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.config.SocketConfig; +import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.conn.ssl.TrustStrategy; -import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.ssl.SSLContextBuilder; -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.SSLSession; - -import static com.amazonaws.kinesisvideo.common.preconditions.Preconditions.checkNotNull; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URI; -import java.nio.charset.StandardCharsets; -import java.security.KeyManagementException; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; -import java.util.HashMap; -import java.util.Map; - /** * Http Client which uses Apache HttpClient internally to make * the http request and get the response. */ -public final class KinesisVideoApacheHttpClient implements HttpClient { - private static final String HOST_HEADER = "Host"; - private static final int DEFAULT_CONNECTION_TIMEOUT_IN_MILLIS = 10000; //magic number - private static final int DEFAULT_SOCKET_TIMEOUT_IN_MILLIS = 10000; //magic number +public final class KinesisVideoApacheHttpClient extends HttpClientBase { - private final Builder mBuilder; private final CloseableHttpClient mHttpClient; - private KinesisVideoApacheHttpClient(final Builder builder) { - this.mBuilder = builder; + private KinesisVideoApacheHttpClient(final BuilderBase builder) { + super(builder); this.mHttpClient = buildHttpClient(); } public static Builder builder() { - return new Builder(); + return new KinesisVideoApacheHttpClient.Builder(); } public CloseableHttpResponse executeRequest() { @@ -74,7 +59,7 @@ private CloseableHttpClient buildHttpClient() { final SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(builder.build(), new String[] {"TLSv1.2"}, // TLS protocol, use 1.2 only null, // TLS ciphers, use default - new NoOpHostNameVerifier()); + new NoopHostnameVerifier()); return HttpClients.custom() .setSSLSocketFactory(sslSocketFactory) .setDefaultRequestConfig(RequestConfig.custom() @@ -93,111 +78,21 @@ private CloseableHttpClient buildHttpClient() { } } - /** - * This method is intended for testing use only. - * - * @param key header key - * @param value header value - */ - public void addHeaderUnsafe(final String key, final String value) { - mBuilder.withHeader(key, value); - } - - @Override - public HttpMethodName getMethod() { - return mBuilder.mMethod; - } - - @Override - public URI getUri() { - return mBuilder.mUri; - } - - @Override - public Map getHeaders() { - return mBuilder.mHeaders; - } - @Override - public InputStream getContent() { - return new ByteArrayInputStream(mBuilder.mContentInJson.getBytes(StandardCharsets.US_ASCII)); - } - - @Override - public void close() throws IOException { + public void closeClient() throws IOException { this.mHttpClient.close(); } - - public static final class Builder { - private final Map mHeaders; - private URI mUri; - private HttpMethodName mMethod; - private int mConnectionTimeoutInMillis; - private int mSocketTimeoutInMillis; - private ContentType mContentType; - private String mContentInJson; - - private Builder() { - mHeaders = new HashMap(); - mConnectionTimeoutInMillis = DEFAULT_CONNECTION_TIMEOUT_IN_MILLIS; - mSocketTimeoutInMillis = DEFAULT_SOCKET_TIMEOUT_IN_MILLIS; - } - - public Builder withUri(final URI uri) { - mUri = uri; - mHeaders.put(HOST_HEADER, uri.getHost()); - return this; - } - - public Builder withMethod(final HttpMethodName method) { - mMethod = method; - return this; - } - - public Builder withHeader(final String key, final String value) { - mHeaders.put(key, value); - return this; - } - - public Builder withConnectionTimeoutInMillis(final int connectionTimeoutInMillis) { - mConnectionTimeoutInMillis = connectionTimeoutInMillis; - return this; - } - - public Builder withSocketTimeoutInMillis(final int socketTimeoutInMillis) { - mSocketTimeoutInMillis = socketTimeoutInMillis; - return this; - } - - public Builder withContentType(final ContentType contentType) { - mContentType = contentType; - return this; - } - - public Builder withContentInJson(final String contentInJson) { - mContentInJson = contentInJson; - return this; - } - + + public static final class Builder extends BuilderBase { + public KinesisVideoApacheHttpClient build() { checkNotNull(mUri); return new KinesisVideoApacheHttpClient(this); } - } - - private static class TrustAllStrategy implements TrustStrategy { @Override - public boolean isTrusted(final X509Certificate[] chain, final String authType) throws CertificateException { - //Trust all certificates - return true; - } - } - - private static class NoOpHostNameVerifier implements HostnameVerifier { - @Override - public boolean verify(final String hostname, final SSLSession session) { - return true; + public Builder builderType() { + return this; } } } diff --git a/src/main/java/com/amazonaws/kinesisvideo/http/TrustAllStrategy.java b/src/main/java/com/amazonaws/kinesisvideo/http/TrustAllStrategy.java new file mode 100644 index 00000000..f0aeb224 --- /dev/null +++ b/src/main/java/com/amazonaws/kinesisvideo/http/TrustAllStrategy.java @@ -0,0 +1,15 @@ +package com.amazonaws.kinesisvideo.http; + +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; + +import org.apache.http.conn.ssl.TrustStrategy; + +public class TrustAllStrategy implements TrustStrategy { + + @Override + public boolean isTrusted(final X509Certificate[] chain, final String authType) throws CertificateException { + //Trust all certificates + return true; + } +} diff --git a/src/main/java/com/amazonaws/kinesisvideo/internal/client/NativeKinesisVideoClient.java b/src/main/java/com/amazonaws/kinesisvideo/internal/client/NativeKinesisVideoClient.java index 1cde40ef..5275b063 100644 --- a/src/main/java/com/amazonaws/kinesisvideo/internal/client/NativeKinesisVideoClient.java +++ b/src/main/java/com/amazonaws/kinesisvideo/internal/client/NativeKinesisVideoClient.java @@ -141,7 +141,7 @@ public void unregisterMediaSource(@Nonnull final MediaSource mediaSource) throws mediaSource.stop(); super.unregisterMediaSource(mediaSource); - final KinesisVideoProducerStream producerStream = mMediaSourceToStreamMap.get(mediaSource);; + final KinesisVideoProducerStream producerStream = mMediaSourceToStreamMap.remove(mediaSource); try { // The following call will blocked till the stopped event completes producerStream.stopStreamSync(); @@ -156,7 +156,7 @@ public void freeMediaSource(@Nonnull final MediaSource mediaSource) throws Kines Preconditions.checkNotNull(mediaSource); super.freeMediaSource(mediaSource); - final KinesisVideoProducerStream producerStream = mMediaSourceToStreamMap.get(mediaSource); + final KinesisVideoProducerStream producerStream = mMediaSourceToStreamMap.remove(mediaSource); try { // The following call will not blocked during the stopped event producerStream.streamClosed(INVALID_UPLOAD_HANDLE_VALUE); @@ -169,13 +169,17 @@ public void freeMediaSource(@Nonnull final MediaSource mediaSource) throws Kines @Override public void stopAllMediaSources() throws KinesisVideoException { super.stopAllMediaSources(); - for (final MediaSource mediaSource : mMediaSources) { - final KinesisVideoProducerStream producerStream = mMediaSourceToStreamMap.get(mediaSource); - try { - producerStream.stopStreamSync(); - } catch (final KinesisVideoException e) { - mLog.exception(e, "Failed to stop media source %s due to Exception ", mediaSource); + try { + for (final MediaSource mediaSource : mMediaSources) { + final KinesisVideoProducerStream producerStream = mMediaSourceToStreamMap.get(mediaSource); + try { + producerStream.stopStreamSync(); + } catch (final KinesisVideoException e) { + mLog.exception(e, "Failed to stop media source %s due to Exception ", mediaSource); + } } + } finally { + mMediaSourceToStreamMap.clear(); } } diff --git a/src/main/java/com/amazonaws/kinesisvideo/internal/producer/jni/NativeKinesisVideoProducerJni.java b/src/main/java/com/amazonaws/kinesisvideo/internal/producer/jni/NativeKinesisVideoProducerJni.java index 1f1ee0ce..2a269f71 100644 --- a/src/main/java/com/amazonaws/kinesisvideo/internal/producer/jni/NativeKinesisVideoProducerJni.java +++ b/src/main/java/com/amazonaws/kinesisvideo/internal/producer/jni/NativeKinesisVideoProducerJni.java @@ -57,7 +57,7 @@ public class NativeKinesisVideoProducerJni implements KinesisVideoProducer { /** * The expected library version. */ - private static final String EXPECTED_LIBRARY_VERSION = "1.11"; + public static final String EXPECTED_LIBRARY_VERSION = "2.0"; /** * The manifest handle will be set after call to parse() diff --git a/src/main/java/com/amazonaws/kinesisvideo/internal/producer/jni/NativeLibraryLoader.java b/src/main/java/com/amazonaws/kinesisvideo/internal/producer/jni/NativeLibraryLoader.java index f6d44b04..69c1befe 100644 --- a/src/main/java/com/amazonaws/kinesisvideo/internal/producer/jni/NativeLibraryLoader.java +++ b/src/main/java/com/amazonaws/kinesisvideo/internal/producer/jni/NativeLibraryLoader.java @@ -10,7 +10,7 @@ * Static helper for loading libraries */ @ThreadSafe -class NativeLibraryLoader { +public class NativeLibraryLoader { private final Log mLog; @@ -85,4 +85,4 @@ private boolean loadNativeLibraryIndirect(final @Nonnull String libraryName) { // This is the error return case. return false; } -} \ No newline at end of file +} diff --git a/src/main/java/com/amazonaws/kinesisvideo/producer/ClientInfo.java b/src/main/java/com/amazonaws/kinesisvideo/producer/ClientInfo.java new file mode 100644 index 00000000..223fa932 --- /dev/null +++ b/src/main/java/com/amazonaws/kinesisvideo/producer/ClientInfo.java @@ -0,0 +1,74 @@ +package com.amazonaws.kinesisvideo.producer; + +/** + * Client information object. + * + * NOTE: This should follow the structure defined in /client/Include.h + * + * NOTE: Suppressing Findbug error as this code will be accessed from native codebase. + */ +public class ClientInfo { + /** + * Current version for the structure as defined in the native code + */ + public static final int CLIENT_INFO_CURRENT_VERSION = 0; + public static final int DEFAULT_LOGGER_LOG_LEVEL = 4; + + private final int mVersion; + private final long mCreateClientTimeout; + private final long mCreateStreamTimeout; + private final long mStopStreamTimeout; + private final long mOfflineBufferAvailabilityTimeout; + private final int mLoggerLogLevel; + private final boolean mLogMetric; + + public ClientInfo() { + mVersion = CLIENT_INFO_CURRENT_VERSION; + mCreateClientTimeout = 0L; + mCreateStreamTimeout = 0L; + mStopStreamTimeout = 0L; + mOfflineBufferAvailabilityTimeout = 0L; + mLoggerLogLevel = DEFAULT_LOGGER_LOG_LEVEL; + mLogMetric = true; + } + + public ClientInfo(final long createClientTimeout, final long createStreamTimeout, final long stopStreamTimeout, + final long offlineBufferAvailabilityTimeout, + final int loggerLogLevel, final boolean logMetric) { + mVersion = CLIENT_INFO_CURRENT_VERSION; + mCreateClientTimeout = createClientTimeout; + mCreateStreamTimeout = createStreamTimeout; + mStopStreamTimeout = stopStreamTimeout; + mOfflineBufferAvailabilityTimeout = offlineBufferAvailabilityTimeout; + mLoggerLogLevel = DEFAULT_LOGGER_LOG_LEVEL; + mLogMetric = logMetric; + } + + public int getVersion() { + return mVersion; + } + + public long getCreateClientTimeout() { + return mCreateClientTimeout; + } + + public long getCreateStreamTimeout() { + return mCreateStreamTimeout; + } + + public long getStopStreamTimeout() { + return mStopStreamTimeout; + } + + public long getOfflineBufferAvailabilityTimeout() { + return mOfflineBufferAvailabilityTimeout; + } + + public int getLoggerLogLevel() { + return mLoggerLogLevel; + } + + public boolean getLogMetric() { + return mLogMetric; + } +} diff --git a/src/main/java/com/amazonaws/kinesisvideo/producer/DeviceInfo.java b/src/main/java/com/amazonaws/kinesisvideo/producer/DeviceInfo.java index 0b7d366c..c5a70555 100644 --- a/src/main/java/com/amazonaws/kinesisvideo/producer/DeviceInfo.java +++ b/src/main/java/com/amazonaws/kinesisvideo/producer/DeviceInfo.java @@ -1,7 +1,6 @@ package com.amazonaws.kinesisvideo.producer; -import com.amazonaws.kinesisvideo.producer.StorageInfo; -import com.amazonaws.kinesisvideo.producer.Tag; +import com.amazonaws.kinesisvideo.internal.producer.jni.NativeKinesisVideoProducerJni; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import javax.annotation.Nonnull; @@ -21,21 +20,32 @@ public class DeviceInfo { /** * Current version for the structure as defined in the native code */ - public static final int DEVICE_INFO_CURRENT_VERSION = 0; + public static final int DEVICE_INFO_CURRENT_VERSION = 1; private final int mVersion; private final String mName; private final StorageInfo mStorageInfo; private final int mStreamCount; private final Tag[] mTags; + private final String mClientId; + private final ClientInfo mClientInfo; public DeviceInfo(int version, @Nullable final String name, @Nonnull final StorageInfo storageInfo, int streamCount, @Nullable final Tag[] tags) { + this(version, name, storageInfo, streamCount, tags, + "JNI " + NativeKinesisVideoProducerJni.EXPECTED_LIBRARY_VERSION, new ClientInfo()); + } + + public DeviceInfo(int version, @Nullable final String name, @Nonnull final StorageInfo storageInfo, + int streamCount, @Nullable final Tag[] tags, @Nonnull final String clientId, + @Nonnull final ClientInfo clientInfo) { mStorageInfo = Preconditions.checkNotNull(storageInfo); mName = name; mTags = tags; mVersion = version; mStreamCount = streamCount; + mClientId = clientId; + mClientInfo = clientInfo; } public int getVersion() { @@ -80,4 +90,14 @@ public String getRootDirectory() { public Tag[] getTags() { return mTags; } + + @Nonnull + public String getClientId() { + return mClientId; + } + + @Nonnull + public ClientInfo getClientInfo() { + return mClientInfo; + } } diff --git a/src/main/java/com/amazonaws/kinesisvideo/producer/FrameOrderMode.java b/src/main/java/com/amazonaws/kinesisvideo/producer/FrameOrderMode.java new file mode 100644 index 00000000..408651b9 --- /dev/null +++ b/src/main/java/com/amazonaws/kinesisvideo/producer/FrameOrderMode.java @@ -0,0 +1,51 @@ +package com.amazonaws.kinesisvideo.producer; + +/** + * Definition of the FrameOrderMode. + * + * NOTE: This enum must be the same as defined in /client/Include.h + * + */ +public enum FrameOrderMode { + /** + * When in FRAME_ORDER_MODE_PASS_THROUGH, when putKinesisVideoFrame is called, the frame is submitted immediately + */ + FRAME_ORDER_MODE_PASS_THROUGH(0), + /** + * When in FRAME_ORDERING_MODE_MULTI_TRACK_AV, frames are submitted in the order of their dts. In case of two frames + * having the same mkv timestamp, and one of them being key frame, the key frame flag is moved to the earliest frame + * to make sure we dont have cluster end timestamp being equal to the next cluster beginning timestamp. + */ + FRAME_ORDERING_MODE_MULTI_TRACK_AV(1), + + /** + * If frames from different tracks have dts difference less than mkv timecode scale, then add 1 unit of mkv timecode + * scale to the latter frame to avoid backend reporting fragment overlap. This will be deprecated once backend is + * fixed. + */ + FRAME_ORDERING_MODE_MULTI_TRACK_AV_COMPARE_DTS_ONE_MS_COMPENSATE(2), + + /** + * same as the dts counter part, but compares pts instead. + */ + FRAME_ORDERING_MODE_MULTI_TRACK_AV_COMPARE_PTS_ONE_MS_COMPENSATE(3); + + private final int mValue; + + public static final int getFrameOrderMode(String status) { + for (FrameOrderMode frameOrderMode : FrameOrderMode.values()) { + if (frameOrderMode.name().equals(status)) { + return frameOrderMode.mValue; + } + } + return FRAME_ORDER_MODE_PASS_THROUGH.intValue(); + } + + FrameOrderMode(int value) { + this.mValue = value; + } + + public final int intValue() { + return mValue; + } +} diff --git a/src/main/java/com/amazonaws/kinesisvideo/producer/KinesisVideoFrame.java b/src/main/java/com/amazonaws/kinesisvideo/producer/KinesisVideoFrame.java index f7719d6f..cc1bef4b 100644 --- a/src/main/java/com/amazonaws/kinesisvideo/producer/KinesisVideoFrame.java +++ b/src/main/java/com/amazonaws/kinesisvideo/producer/KinesisVideoFrame.java @@ -15,6 +15,16 @@ */ public class KinesisVideoFrame { + /** + * Current version for the structure as defined in the native code + */ + public static final int FRAME_CURRENT_VERSION = 0; + + /** + * Version of frame structure + */ + private final int mVersion; + /** * Index of the frame */ @@ -53,6 +63,7 @@ public class KinesisVideoFrame { public KinesisVideoFrame(int index, int flags, long decodingTs, long presentationTs, long duration, @Nonnull ByteBuffer data, long trackId) { + mVersion = FRAME_CURRENT_VERSION; mIndex = index; mFlags = flags; mDecodingTs = decodingTs; @@ -120,4 +131,8 @@ public long getTrackId() { .append(", mData=").append(mData).append(", mTrackId=").append(mTrackId).append("}") .toString(); } + + public int getVersion() { + return mVersion; + } } diff --git a/src/main/java/com/amazonaws/kinesisvideo/producer/StreamDescription.java b/src/main/java/com/amazonaws/kinesisvideo/producer/StreamDescription.java index 08bfbc0b..901bf6e7 100644 --- a/src/main/java/com/amazonaws/kinesisvideo/producer/StreamDescription.java +++ b/src/main/java/com/amazonaws/kinesisvideo/producer/StreamDescription.java @@ -9,7 +9,7 @@ public class StreamDescription { /** * Current version for the structure as defined in the native code */ - public static final int STREAM_DESCRIPTION_CURRENT_VERSION = 0; + public static final int STREAM_DESCRIPTION_CURRENT_VERSION = 1; private final int mVersion; private final String mDeviceName; @@ -19,8 +19,16 @@ public class StreamDescription { private final String mStreamArn; private final StreamStatus mStreamStatus; private final long mCreationTime; + private final long mRetention; + private final String mKmsKeyId; public StreamDescription(int version, String deviceName, String streamName, String contentType, String updateVersion, String streamArn, StreamStatus streamStatus, long creationTime) { + this(version, deviceName, streamName, contentType, updateVersion, streamArn, streamStatus, creationTime, 0,""); + } + + public StreamDescription(int version, String deviceName, String streamName, String contentType, + String updateVersion, String streamArn, StreamStatus streamStatus, long creationTime, + long retention, String kmsKeyId) { this.mVersion = version; this.mDeviceName = deviceName; this.mStreamName = streamName; @@ -29,6 +37,8 @@ public StreamDescription(int version, String deviceName, String streamName, Stri this.mStreamArn = streamArn; this.mStreamStatus = streamStatus; this.mCreationTime = creationTime; + this.mRetention = retention; + this.mKmsKeyId = kmsKeyId; } public int getVersion() { @@ -62,4 +72,12 @@ public int getStreamStatus() { public long getCreationTime() { return mCreationTime; } + + public long getRetention() { + return mRetention; + } + + public String getKmsKeyId() { + return mKmsKeyId; + } } diff --git a/src/main/java/com/amazonaws/kinesisvideo/producer/StreamInfo.java b/src/main/java/com/amazonaws/kinesisvideo/producer/StreamInfo.java index ef17f575..28b4575d 100644 --- a/src/main/java/com/amazonaws/kinesisvideo/producer/StreamInfo.java +++ b/src/main/java/com/amazonaws/kinesisvideo/producer/StreamInfo.java @@ -29,7 +29,7 @@ public class StreamInfo { * StreamInfo structure current version. * IMPORTANT: Must be kept in sync with the native counterpart. */ - public static final int STREAM_INFO_CURRENT_VERSION = 0; + public static final int STREAM_INFO_CURRENT_VERSION = 1; /** * Streaming types that must correspond to the native counterparts @@ -138,6 +138,7 @@ public int getIntValue() { private final NalAdaptationFlags mNalAdaptationFlags; private final TrackInfo[] mTrackInfoList; private final UUID mSegmentUuid; + private final FrameOrderMode mFrameOrderMode; /** * Generates a track name from a content type @@ -216,6 +217,7 @@ public StreamInfo(final int version, @Nullable final String name, @Nonnull final null, new TrackInfo[] {new TrackInfo(DEFAULT_TRACK_ID, codecId, trackName, codecPrivateData, VIDEO)}); } + public StreamInfo(final int version, @Nullable final String name, @Nonnull final StreamingType streamingType, @Nonnull final String contentType, @Nullable final String kmsKeyId, final long retentionPeriod, final boolean adaptive, final long maxLatency, final long fragmentDuration, @@ -227,6 +229,39 @@ public StreamInfo(final int version, @Nullable final String name, @Nonnull final @Nonnull final NalAdaptationFlags nalAdaptationFlags, @Nullable final UUID segmentUuid, @Nonnull final TrackInfo[] trackInfoList) { + this(version, name, streamingType, contentType, kmsKeyId, retentionPeriod, adaptive, maxLatency, + fragmentDuration, keyFrameFragmentation, frameTimecodes, absoluteFragmentTimes, fragmentAcks, + recoverOnError, avgBandwidthBps, frameRate, bufferDuration, replayDuration, + connectionStalenessDuration, timecodeScale, recalculateMetrics, tags, + nalAdaptationFlags, + segmentUuid, + trackInfoList, + fixUpFrameOrderMode(trackInfoList)); + } + + private static FrameOrderMode fixUpFrameOrderMode(TrackInfo[] trackInfos) { + if (trackInfos.length == 2 && ((trackInfos[0].getTrackType().equals(MkvTrackInfoType.VIDEO) + && trackInfos[1].getTrackType().equals(MkvTrackInfoType.AUDIO)) + || (trackInfos[0].getTrackType().equals(MkvTrackInfoType.AUDIO) + && trackInfos[1].getTrackType().equals(MkvTrackInfoType.VIDEO)))) { + // TODO change back to FRAME_ORDERING_MODE_MULTI_TRACK_AV once backend is fixed. + return FrameOrderMode.FRAME_ORDERING_MODE_MULTI_TRACK_AV_COMPARE_PTS_ONE_MS_COMPENSATE; + } + return FrameOrderMode.FRAME_ORDER_MODE_PASS_THROUGH; + } + + public StreamInfo(final int version, @Nullable final String name, @Nonnull final StreamingType streamingType, + @Nonnull final String contentType, @Nullable final String kmsKeyId, final long retentionPeriod, + final boolean adaptive, final long maxLatency, final long fragmentDuration, + final boolean keyFrameFragmentation, final boolean frameTimecodes, + final boolean absoluteFragmentTimes, final boolean fragmentAcks, final boolean recoverOnError, + final int avgBandwidthBps, final int frameRate, final long bufferDuration, + final long replayDuration, final long connectionStalenessDuration, final long timecodeScale, + final boolean recalculateMetrics, @Nullable final Tag[] tags, + @Nonnull final NalAdaptationFlags nalAdaptationFlags, + @Nullable final UUID segmentUuid, + @Nonnull final TrackInfo[] trackInfoList, + FrameOrderMode frameOrderMode) { mVersion = version; mName = name; mStreamingType = streamingType; @@ -252,6 +287,7 @@ public StreamInfo(final int version, @Nullable final String name, @Nonnull final mNalAdaptationFlags = nalAdaptationFlags; mSegmentUuid = segmentUuid; mTrackInfoList = trackInfoList; + mFrameOrderMode = frameOrderMode; } public int getVersion() { @@ -411,6 +447,12 @@ public int getTrackInfoType(final int trackIndex) { return mTrackInfoList[trackIndex].getTrackType().intValue(); } + public int getTrackInfoVersion(final int trackIndex) { + Preconditions.checkState(mTrackInfoList != null && trackIndex < mTrackInfoList.length, + "Requested track is not available in track info list."); + return mTrackInfoList[trackIndex].getVersion(); + } + @Nullable public Tag[] getTags() { return mTags; @@ -420,4 +462,8 @@ public Tag[] getTags() { public int getNalAdaptationFlags() { return mNalAdaptationFlags.getIntValue(); } + + public int getFrameOrderMode() { + return mFrameOrderMode.intValue(); + } } diff --git a/src/main/java/com/amazonaws/kinesisvideo/producer/TrackInfo.java b/src/main/java/com/amazonaws/kinesisvideo/producer/TrackInfo.java index 851e1726..30fe7765 100644 --- a/src/main/java/com/amazonaws/kinesisvideo/producer/TrackInfo.java +++ b/src/main/java/com/amazonaws/kinesisvideo/producer/TrackInfo.java @@ -4,8 +4,19 @@ import javax.annotation.Nullable; +/** + * Track information object. + * + * NOTE: This should follow the structure defined in /mkvgen/Include.h + * + * NOTE: Suppressing Findbug error as this code will be accessed from native codebase. + */ @SuppressFBWarnings("EI_EXPOSE_REP") public class TrackInfo { + public static final int TRACK_INFO_CURRENT_VERSION = 0; + + private final int version; + // Unique Identifier for TrackInfo private final long trackId; @@ -23,6 +34,7 @@ public class TrackInfo { public TrackInfo(final long trackId, @Nullable final String codecId, @Nullable final String trackName, @Nullable final byte[] codecPrivateData, final MkvTrackInfoType trackType) { + this.version = TRACK_INFO_CURRENT_VERSION; this.trackId = trackId; this.codecId = codecId; this.trackName = trackName; @@ -30,6 +42,10 @@ public TrackInfo(final long trackId, @Nullable final String codecId, @Nullable f this.trackType = trackType; } + public int getVersion() { + return version; + } + public long getTrackId() { return trackId; } diff --git a/src/main/resources/lib/mac/libKinesisVideoProducerJNI.dylib b/src/main/resources/lib/mac/libKinesisVideoProducerJNI.dylib index 68a932af15e916cdec2c1ef09be5027ea667d3c6..89c3dd4c8d403cbff722810c2a6f41e30e775913 100755 GIT binary patch literal 262748 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 BQhWda literal 331268 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