diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 635d0068..d628e58f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -85,6 +85,7 @@ jobs: uses: actions/checkout@v2 - name: Install dependencies run: | + sudo apt-get update sudo apt-get install -y libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools - name: Build repository run: | @@ -123,6 +124,7 @@ jobs: uses: actions/checkout@v2 - name: Install dependencies run: | + sudo apt-get update sudo apt-get install -y libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools - name: Build repository run: | @@ -156,6 +158,7 @@ jobs: uses: actions/checkout@v2 - name: Install dependencies run: | + sudo apt-get update sudo apt-get install -y libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools - name: Build repository run: | @@ -326,7 +329,7 @@ jobs: steps: - name: Install dependencies run: | - sudo apt update + sudo apt-get update sudo apt-get -y install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu binutils-aarch64-linux-gnu sudo apt-get install libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools - name: Clone repository @@ -347,7 +350,7 @@ jobs: steps: - name: Install dependencies run: | - sudo apt update + sudo apt-get update sudo apt-get -y install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi binutils-arm-linux-gnueabi sudo apt-get install libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools - name: Clone repository diff --git a/docs/linux.md b/docs/linux.md index df0189c3..1fc431f6 100644 --- a/docs/linux.md +++ b/docs/linux.md @@ -54,7 +54,7 @@ $ gst-launch-1.0 -v rtspsrc location=rtsp://YourCameraRtspUrl short-header=TRUE ``` $ gst-launch-1.0 -v rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! kvssink stream-name="iot-stream" iot-certificate="iot-certificate,endpoint=endpoint,cert-path=/path/to/certificate,key-path=/path/to/private/key,ca-path=/path/to/ca-cert,role-aliases=role-aliases" ``` -You can find the RTSP URL from your IP camera manual or manufacturers product page. +You can find the RTSP URL from your IP camera manual or manufacturers product page. For more information on how to set up IoT/role policies and role-aliases, please refer to [iot-based-credential-provider](auth.md#iot-based-credential-provider) and https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-iot.html. ###### Running the `gst-launch-1.0` command to start streaming from USB camera source in **Ubuntu**. ``` diff --git a/src/JNI/com/amazonaws/kinesis/video/producer/jni/Parameters.cpp b/src/JNI/com/amazonaws/kinesis/video/producer/jni/Parameters.cpp index 2ce79984..1d98ef32 100644 --- a/src/JNI/com/amazonaws/kinesis/video/producer/jni/Parameters.cpp +++ b/src/JNI/com/amazonaws/kinesis/video/producer/jni/Parameters.cpp @@ -225,6 +225,14 @@ BOOL setClientInfo(JNIEnv *env, jobject clientInfo, PClientInfo pClientInfo) { CHK_JVM_EXCEPTION(env); } + methodId = env->GetMethodID(cls, "getAutomaticStreamingFlags", "()I"); + if (methodId == NULL) { + DLOGW("Couldn't find method id getAutomaticStreamingFlags"); + } else { + pClientInfo->automaticStreamingFlags = (AUTOMATIC_STREAMING_FLAGS) env->CallIntMethod(clientInfo, methodId); + CHK_JVM_EXCEPTION(env); + } + CleanUp: return STATUS_FAILED(retStatus) ? FALSE : TRUE; } @@ -713,6 +721,14 @@ BOOL setStreamInfo(JNIEnv* env, jobject streamInfo, PStreamInfo pStreamInfo) CHK_JVM_EXCEPTION(env); } + methodId = env->GetMethodID(cls, "getStorePressurePolicy", "()I"); + if (methodId == NULL) { + DLOGW("Couldn't find method id getStorePressurePolicy"); + } else { + pStreamInfo->streamCaps.storePressurePolicy = (CONTENT_STORE_PRESSURE_POLICY) env->CallIntMethod(streamInfo, methodId); + CHK_JVM_EXCEPTION(env); + } + CleanUp: return STATUS_FAILED(retStatus) ? FALSE : TRUE; }