Skip to content

Commit

Permalink
Release 3.4.0 (#1041)
Browse files Browse the repository at this point in the history
* Update for develop (#740)

* Minor syntax fix

.. is required for fetching files from parent dir ... without .. it throws error

* Update README and travis.yml to acknowledge develop

* Fix typo in readme

* add free missing (#746)

Co-authored-by: David D <david.desbiens@tentaq.com>

* Update readme (#744)

* Fix typo in readme

* Update Readme

Debug section: add solution to cmake error "could not find JNI"

Co-authored-by: Hassan Sahibzada <hsahibza@amazon.com>

* Add instruction to set offline mode (#741)

Co-authored-by: Hassan Sahibzada <hsahibza@amazon.com>

Co-authored-by: Ketul shah <ketulshah1993@gmail.com>
Co-authored-by: Jeremy Gunawan <jggunawa@amazon.com>
Co-authored-by: waikup83 <waikup@hotmail.com>
Co-authored-by: David D <david.desbiens@tentaq.com>
Co-authored-by: Hassan Sahibzada <hsahibza@amazon.com>
Co-authored-by: Divya Sampath Kumar <disa6302@colorado.edu>

* updated cmake verison from 2.8 to 3.6.3

* Fix bug that leads to losing initial frames

* Update to top of producer C commit

* Untie stream-name and thing-name (#785)

* untie stream-name and thing-name

* fixup spacing

Co-authored-by: tom schuring <tschuring@mtdata.com.au>

* update docs for iot-thing-name usage

* Expose file logging jni develop (#770)

* expose addFileLoggerPlatformCallbacksProvider in Java with JNI

* updated addFileLoggerPlatformCallbacksProvider to parse file path

* added a callback from JNI to a Java function for logging

* updated logPrintFunc calback

* missed client_handle initialization in constructor

* added comments

* white space change to trigger travis

* GitHub actions setup (#815)

* github actions setup; disable travis for develop

* fix syntax error:

* fix syntax error

* fix linux builds

* fix linux builds

* fix linux builds

* add missing packages

* add keys to env vars

* check env vars

* check env vars

* fix builds

* fix builds on ga

* test mac clang on ga

* test mac clang on ga

* test mac clang on ga

* test mac clang on ga

* test mac clang on ga

* unsetting the token

* unsetting the token

* test macos clang

* test macos clang

* stop travis builds on each push

* use oidc

* fix windows build

* fix test instruction

* comment failing builds on travis and ga

* update gcc and macos versions

* update cmake

* update cmake

* use latest os, update log levels, uncomment travis

* update failing build

* update failing build

* trigger travis

* trigger travis

* Revert "trigger travis"

This reverts commit d511f15.

* update msvc path, add windows to ga, remove from travis

* trigger travis

* trigger travis w/o passing builds

* add cpath and ldflags for mac build

* Revert "add cpath and ldflags for mac build"

This reverts commit fafad7b.

* test ubsan build

* fix cmake instruction for mac-gcc

* remove travis file

* remove travis checks

* Fix OIDC for GitHub Actions (#824)

* use oidc right before tests

* run ga builds for branch

* fix test path

* update branches

* set creds expiration time

* Add ARM build to GA, log4cplus host name fix for cross compilation (#831)

* setup arm cross compilation

* update the package list

* fix  in

* specify host in log4cplus

* specify host in log4cplus

* specify host in log4cplus

* run all builds with new host config in log4cplus

* build with gstreamer and dependencies

* build with gstreamer and dependencies

* build with gstreamer and dependencies and openssl

* build with gstreamer and openssl

* specify build and host

* specify build and host

* specify build host and target

* specify same build and host

* specify build and host in all cmake files

* use a different compiler

* use a different compiler

* echo compiler

* set CC and CXX correctly

* set CC and CXX correctly

* set openssl platform

* set openssl platform

* set openssl platform

* expose host name for log4cplus

* change log4cplus host name

* fix cmake syntax error

* fix cmke log4plus condition

* fix cmake log4plus condition

* fix cmake log4plus condition

* change var name cmake

* change var name in ci

* update cmake instruction in ci

* check conditions for log4cplus in cmake

* check conditions for log4cplus in cmake

* use set instead of option in cmake

* check messages

* fix ci cmake instruction

* fix ci cmake instruction

* add definition

* use env var

* use env var

* use build args

* update readme

* remove host-name from qemu arm build

* update readme for cross-compile instructions

* add aarch64; move log config file

* remove qemu

* fix config file path (#835)

* expose streaming flags in java with jni (#849)

* expose streaming flags in java with jni

* fix indentation

* Elaborated on how to work with IoT credentials. (#851)

It is not a straight-forward process to enable KVS and IoT credentials.
It is required to read and follow through https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-iot.html.

* Add storePressurePolicy call to JNI (#859)

* add store pressure policy

* update ci to add update

* set flag in pClientInfo (#863)

* Allow using CPP SDK as a dependency (#905)

* Allow using CPP SDK as a dependency

* Update README

* Fix static build (#910)

* Add static build to CI

* gstkvssink should have static linkage in a static build

* log4cplus should be a static lib in a static build

* Don't force full static link

* Update libkvscproducer-CMakeLists.txt

Update Producer C Commit hash

Co-authored-by: Hassan Sahibzada <hsahibza@amazon.com>

* create new sample that uses kvssink and increase timeout for CI tests (#917)

* Fix GHA CI (#944)

* fix failing builds + upgrade gtest to 1.12

* install missing package

* change os and gcc versions

* exclude windows build

* use event triggers

* Fix CI for forked branches (#946)

* fix ci for fork

* blank space change to trigger CI

* Add support for milliseconds in the file upload sample (#947)

* Minor syntax fix

.. is required for fetching files from parent dir ... without .. it throws error

* Fix typo in readme

* add free missing (#746)

Co-authored-by: David D <david.desbiens@tentaq.com>

* Update readme (#744)

* Fix typo in readme

* Update Readme

Debug section: add solution to cmake error "could not find JNI"

Co-authored-by: Hassan Sahibzada <hsahibza@amazon.com>

* Add instruction to set offline mode (#741)

Co-authored-by: Hassan Sahibzada <hsahibza@amazon.com>

* Update README and travis.yml to acknowledge develop (#739)

Co-authored-by: Hassan Sahibzada <hsahibza@amazon.com>

* Gstreamer RTSP Docs Update (#712)

Hoping this help others avoid hours of frustration.

As noted in the helpful but well hidden issue comment #193 (comment), the Gstreamer examples for RTSP do not run at all.  I'm no Gstreamer expert but using `h264parse` works perfectly, while `video/x-h264, format=avc,alignment=au` just causes the pipeline to hang.

* free missing property (#767)

Co-authored-by: David D <david.desbiens@tentaq.com>

* Update gstkvssink.cpp

* Added millisecond support to kvs_gstreamer_file_upload_sample + gstkvssink

---------

Co-authored-by: Ketul shah <ketulshah1993@gmail.com>
Co-authored-by: waikup83 <waikup@hotmail.com>
Co-authored-by: David D <david.desbiens@tentaq.com>
Co-authored-by: Hassan Sahibzada <hsahibza@amazon.com>
Co-authored-by: Divya Sampath Kumar <disa6302@colorado.edu>
Co-authored-by: jdelapla <delaplan@amazon.com>
Co-authored-by: Anton Vattay <3martini@gmail.com>
Co-authored-by: bkneff <bkneff@amazon.com>

* Add gstreamer debug instructions for mac (#948)

Co-authored-by: Divya Sampath Kumar <disa6302@colorado.edu>

* Pass parameter by reference to avoid copy constructor (#949)

* pass parameter by reference to avoid copy constructor

* nit style

---------

Co-authored-by: James Delaplane <delaplan@amazon.com>

* Update openssl version (#950)

* Replace pull_request_target with pull_request (#955)

* replace pull_request_target with pull_request; update versions for codeql

* add develop to codeql

* Kvssink canary producer cpp (#984)

* Cmake changes after release 3.3.1

* Added fragment ack handler, reverting changes related to edge

* Added gsignal element for fragment ack

* Fixed cmake dependency for canarydemos

* Reverted c++ versrion to 11

* Commented out g signal in fragment  act handler

* Re-Added the g signal

* Kvs sink initialized to avoid bad memory access

* Intialized custom objet kvssink

* Moved part of cloud watch metrics and logs

* Resolved constructor issue

* Added remaining functions for cloud watch logs

* Reverted changes for cloudwatch shift

* Reverted Cmake changes

* Reverted remaining changes

* Added stream metric signal

* G signal changes

* G signal parameter changes

* Removed persisted ack check

* Changed return type in g signal

* Added custome object for put frame

* Metric struct update

* Intialized custome object metrics

* Added check for key frame

* Added client metrics element

* Name changed

* Added first frame emit

* First frame changes

* Reverted first frame changes

* Left change

* Added g signal emit on first successfull frame

* Fixed compile error

* Startup latency test_1

* Added first frame check

* Resolved comments on PR 984

* Resolved comments on PR 984-remaining

* Resolved comments in PR 984_03-16

* resolved comment in PR-276_03-21

* Uncomment windows (#990)

* Signals in develop (#957)

* Signals in develop

* Add signals and static analysis fixes

* Signals in develop

* Add better logging

* Pull in new producer C commit

* Update gstkvssink.cpp

* use get metric property

* Use log and throw and catch

---------

Co-authored-by: NikunjSarda <sardanik@amazon.com>

* Timeouts setup (#992)

* Adding timeouts configurability

* Add jni for new timeouts and create stream flag

* Revert log4cplus version and cxx standard

* Revert versions

* Revert C++ version to 11

* fix warnings (#994)

* Disable caching by default (#995)

* Update CMakeLists.txt (#997)

* Update CMakeLists.txt

when building shared the kvs_gstreamer_sample.cpp example fails LINKING
fix #930

* Additional CI Build

---------

Co-authored-by: tro <throos@amazon.de>

* fix timestamp bug (#999)

* Enable caching by default (#1020)

* Invoke stopSync in NULL state transition (#1023)

* Add EOS specific handling

* New logging

* New logging 1

* New logging 2

* New logging 4

* New logging 5

* New logging 5

* Check with bool

* listen on NULL state transition

* Version user agent string from kvssink (#1033)

* Use permalinks in buffering.md (#1038)

* fix ci

* resolve missed git conflicts

* remove duplicate decl

* update producer c

* Auth segfault fix (#1046)

* Auth segfault fix

* Added unit tests

* Update raspberry-pi.md (#1048)

* Update raspberry-pi.md

* Update raspberry-pi.md

---------

Co-authored-by: Josh McMenemy <josh.mcmenemy@gmail.com>

* fix(kvs/sink_gstreamer_sample): Use videotestsrc and add additional debug logging (#1047)

* Switch from autovideosrc to videotestsrc and add additional debug logging

* Add null check for ksvideosrc and adjust comments

* Revise logging again

* Exit early if one of the elements cant be created, log which one

* Check return value of gstreamer_init

* Update commit to use release 1.5.0 of producer SDK

---------

Co-authored-by: jdelapla <delaplan@amazon.com>
Co-authored-by: Ketul shah <ketulshah1993@gmail.com>
Co-authored-by: Jeremy Gunawan <jggunawa@amazon.com>
Co-authored-by: waikup83 <waikup@hotmail.com>
Co-authored-by: David D <david.desbiens@tentaq.com>
Co-authored-by: Divya Sampath Kumar <disa6302@colorado.edu>
Co-authored-by: Niyati Maheshwari <niyatim23@gmail.com>
Co-authored-by: clogwog <tomschuring@gmail.com>
Co-authored-by: tom schuring <tschuring@mtdata.com.au>
Co-authored-by: Byong-Wu Chong <69205204+byongwu@users.noreply.github.com>
Co-authored-by: Greg Breen <greg@footyforecaster.com>
Co-authored-by: Benjamin Kim <114961775+benwkim@users.noreply.github.com>
Co-authored-by: Anton Vattay <3martini@gmail.com>
Co-authored-by: bkneff <bkneff@amazon.com>
Co-authored-by: NikunjSarda <sardanik@amazon.com>
Co-authored-by: Jeremy Gunawan <sirknightj@gmail.com>
Co-authored-by: tro <throos@amazon.de>
Co-authored-by: Yuma Mihira <yuma-m@users.noreply.github.com>
Co-authored-by: Josh McMenemy <josh.mcmenemy@gmail.com>
  • Loading branch information
20 people authored Aug 25, 2023
1 parent e8125ee commit 072ed19
Show file tree
Hide file tree
Showing 48 changed files with 2,011 additions and 387 deletions.
169 changes: 107 additions & 62 deletions .github/workflows/ci.yml

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ name: "CodeQL"

on:
push:
branches: [ master ]
branches: [ master, develop ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
branches: [ master, develop ]
schedule:
- cron: '41 13 * * 2'

Expand All @@ -35,11 +35,11 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
Expand All @@ -50,7 +50,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
uses: github/codeql-action/autobuild@v2

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
Expand All @@ -64,4 +64,4 @@ jobs:
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v2
4 changes: 2 additions & 2 deletions CMake/Dependencies/libgtest-CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ cmake_minimum_required(VERSION 3.6.3)
project(libgtest-download NONE)

include(ExternalProject)

ExternalProject_Add(libgtest-download
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.8.1
GIT_TAG release-1.12.1
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX}
Expand Down
2 changes: 1 addition & 1 deletion CMake/Dependencies/libkvscproducer-CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include(ExternalProject)
# clone repo only
ExternalProject_Add(libkvscproducer-download
GIT_REPOSITORY https://github.com/awslabs/amazon-kinesis-video-streams-producer-c.git
GIT_TAG 79da5b6d6ad67560cc08530f967e9187a6d1c594
GIT_TAG 7d1b76f53680c1e23afb6f35f0cca97ccdb35e3f
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/kvscproducer-src"
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/kvscproducer-build"
CONFIGURE_COMMAND ""
Expand Down
16 changes: 11 additions & 5 deletions CMake/Dependencies/liblog4cplus-CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,16 @@ find_program(MAKE_EXE NAMES make)

project(log4cplus-download NONE)

set(BUILD_SHARED_LIBS 1)
if (BUILD_STATIC)
set(BUILD_SHARED_LIBS 0)
set(CONFIGURE_STATIC --disable-shared --enable-static)
endif()

if (DEFINED BUILD_LOG4CPLUS_HOST AND NOT BUILD_LOG4CPLUS_HOST STREQUAL OFF)
SET(CONFIGURE_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/build/src/project_log4cplus/configure "CFLAGS=${CMAKE_C_FLAGS}" --prefix=${OPEN_SRC_INSTALL_PREFIX} --host=${BUILD_LOG4CPLUS_HOST})
SET(CONFIGURE_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/build/src/project_log4cplus/configure "CFLAGS=${CMAKE_C_FLAGS}" --prefix=${OPEN_SRC_INSTALL_PREFIX} ${CONFIGURE_STATIC} --host=${BUILD_LOG4CPLUS_HOST})
else()
SET(CONFIGURE_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/build/src/project_log4cplus/configure "CFLAGS=${CMAKE_C_FLAGS}" --prefix=${OPEN_SRC_INSTALL_PREFIX})
SET(CONFIGURE_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/build/src/project_log4cplus/configure "CFLAGS=${CMAKE_C_FLAGS}" --prefix=${OPEN_SRC_INSTALL_PREFIX} ${CONFIGURE_STATIC})
endif()

if (DEFINED CMAKE_OSX_SYSROOT AND NOT CMAKE_OSX_SYSROOT STREQUAL "")
Expand All @@ -19,15 +25,15 @@ include(ExternalProject)
if (WIN32)
ExternalProject_Add(project_log4cplus
GIT_REPOSITORY https://github.com/log4cplus/log4cplus
GIT_TAG REL_1_2_2
GIT_TAG REL_2_0_1
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build
TEST_COMMAND ""
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX} -DLOG4CPLUS_BUILD_TESTING=0 -DLOG4CPLUS_BUILD_LOGGINGSERVER=0 -DUNICODE=0
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${OPEN_SRC_INSTALL_PREFIX} -DLOG4CPLUS_BUILD_TESTING=0 -DLOG4CPLUS_BUILD_LOGGINGSERVER=0 -DUNICODE=0 -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS}
)
else()
ExternalProject_Add(project_log4cplus
GIT_REPOSITORY https://github.com/log4cplus/log4cplus
GIT_TAG REL_1_2_2
GIT_TAG REL_2_0_1
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build
CONFIGURE_COMMAND ${CONFIGURE_COMMAND}
BUILD_COMMAND ${MAKE_EXE}
Expand Down
2 changes: 1 addition & 1 deletion CMake/Dependencies/libopenssl-CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ endif()
include(ExternalProject)
ExternalProject_Add(project_libopenssl
GIT_REPOSITORY https://github.com/openssl/openssl.git
GIT_TAG OpenSSL_1_1_1g
GIT_TAG OpenSSL_1_1_1t
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/build
CONFIGURE_COMMAND ${CONFIGURE_COMMAND}
BUILD_COMMAND ${MAKE_EXE}
Expand Down
2 changes: 1 addition & 1 deletion CMake/Utilities.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ function(build_dependency lib_name)

# build library
configure_file(
${CMAKE_SOURCE_DIR}/CMake/Dependencies/lib${lib_name}-CMakeLists.txt
${CMAKE_CURRENT_SOURCE_DIR}/CMake/Dependencies/lib${lib_name}-CMakeLists.txt
${KINESIS_VIDEO_OPEN_SOURCE_SRC}/lib${lib_name}/CMakeLists.txt COPYONLY)
execute_process(
COMMAND ${CMAKE_COMMAND} ${build_args}
Expand Down
36 changes: 27 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
if(APPLE AND NOT DEFINED ENV{MACOSX_DEPLOYMENT_TARGET} AND NOT DEFINED ENV{SDKROOT})
set(CMAKE_OSX_DEPLOYMENT_TARGET ${CMAKE_SYSTEM_VERSION})
endif()

cmake_minimum_required(VERSION 3.6.3)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
include(Utilities)
project(KinesisVideoProducerCpp)

project(KinesisVideoProducerCpp VERSION 3.4.0)

set(CMAKE_CXX_STANDARD 11)
include(GNUInstallDirs)

# User Flags
option(BUILD_GSTREAMER_PLUGIN "Build kvssink GStreamer plugin" OFF)
Expand All @@ -28,12 +27,14 @@ option(MEMORY_SANITIZER "Build with MemorySanitizer" OFF)
option(THREAD_SANITIZER "Build with ThreadSanitizer" OFF)
option(UNDEFINED_BEHAVIOR_SANITIZER "Build with UndefinedBehaviorSanitizer" OFF)

add_definitions(-DCPP_VERSION_STRING=\"${PROJECT_VERSION}\")

set(CMAKE_MACOSX_RPATH TRUE)
get_filename_component(ROOT "${CMAKE_CURRENT_SOURCE_DIR}" ABSOLUTE)

# static settings
if(BUILD_STATIC)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++")
set(LINKAGE STATIC)
elseif(WIN32)
set(LINKAGE STATIC)
Expand Down Expand Up @@ -79,9 +80,9 @@ if(BUILD_DEPENDENCIES)

if(BUILD_LOG4CPLUS_HOST)
set(BUILD_ARGS -DBUILD_LOG4CPLUS_HOST=${BUILD_LOG4CPLUS_HOST})
build_dependency(log4cplus ${BUILD_ARGS})
build_dependency(log4cplus ${BUILD_ARGS} -DBUILD_STATIC=${BUILD_STATIC})
else()
build_dependency(log4cplus)
build_dependency(log4cplus -DBUILD_STATIC=${BUILD_STATIC})
endif()

message(STATUS "Finished building dependencies.")
Expand Down Expand Up @@ -177,6 +178,10 @@ include_directories(${KINESIS_VIDEO_PRODUCER_CPP_SRC}/src/credential-providers)
include_directories(${KINESIS_VIDEO_PRODUCER_CPP_SRC}/src/common)
include_directories(${KINESIS_VIDEO_PRODUCER_CPP_SRC}/src/JNI/include)

install(
DIRECTORY ${KINESIS_VIDEO_PRODUCER_CPP_SRC}/src
DESTINATION .)

add_library(KinesisVideoProducer ${LINKAGE} ${PRODUCER_CPP_SOURCE_FILES})
target_link_libraries(
KinesisVideoProducer
Expand All @@ -185,6 +190,12 @@ target_link_libraries(
${Log4cplus}
${LIBCURL_LIBRARIES})

install(
TARGETS KinesisVideoProducer
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")

if(BUILD_JNI)
find_package(JNI REQUIRED)
include_directories(${JNI_INCLUDE_DIRS})
Expand All @@ -199,11 +210,18 @@ if(BUILD_GSTREAMER_PLUGIN)
include_directories(${GST_APP_INCLUDE_DIRS})
link_directories(${GST_APP_LIBRARY_DIRS})

add_library(gstkvssink MODULE ${GST_PLUGIN_SOURCE_FILES})
if(BUILD_STATIC)
add_library(gstkvssink STATIC ${GST_PLUGIN_SOURCE_FILES})
else()
add_library(gstkvssink MODULE ${GST_PLUGIN_SOURCE_FILES})
endif()
target_link_libraries(gstkvssink PRIVATE ${GST_APP_LIBRARIES} KinesisVideoProducer)

add_executable(kvssink_gstreamer_sample samples/kvssink_gstreamer_sample.cpp)
target_link_libraries(kvssink_gstreamer_sample ${GST_APP_LIBRARIES} KinesisVideoProducer)

add_executable(kvs_gstreamer_sample samples/kvs_gstreamer_sample.cpp)
target_link_libraries(kvs_gstreamer_sample ${GST_APP_LIBRARIES} KinesisVideoProducer)
target_link_libraries(kvs_gstreamer_sample ${GST_APP_LIBRARIES} KinesisVideoProducer kvspic)

add_executable(kvs_gstreamer_multistream_sample samples/kvs_gstreamer_multistream_sample.cpp)
target_link_libraries(kvs_gstreamer_multistream_sample ${GST_APP_LIBRARIES} KinesisVideoProducer)
Expand Down
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,8 @@ On Windows you should run `nmake` instead of `make`

In your build directory you will now have shared objects for all the targets you have selected.

### Installing the library
If the library needs to be installed, run `make install`. This will install in default directory based on system. To install in another directory, run `cmake` with the `-DCMAKE_INSTALL_PREFIX` option with the desired directory before running `make install`
## Run
### GStreamer Plugin (kvssink)

Expand Down Expand Up @@ -207,6 +209,11 @@ By default, the samples run in near realtime mode. To set offline mode, set stre
`export JAVA_INCLUDE_PATH2=/Library/Java/JavaVirtualMachines/<YOUR_JDK_VERSION>/Contents/Home/include` or `export JAVA_INCLUDE_PATH2=$JAVA_HOME/include` for Mac OS.
`export JAVA_INCLUDE_PATH2='/usr/java/<JDK_VERSION>/include'` for Linux.
* If you are successfully streaming but run into issue with playback. You can do `export KVS_DEBUG_DUMP_DATA_FILE_DIR=/path/to/directory` before streaming. Producer will then dump MKV files into that path. The file is exactly what KVS will receive. You can use [MKVToolNIX](https://mkvtoolnix.download/index.html) to check that everything looks correct. You can also try to play the MKV file in compatible players.
* If you would like to visualize the GStreamer pipeline being constructed in a GStreamer application, include the following after the elements have been linked:
`GST_DEBUG_BIN_TO_DOT_FILE(<gst-bin-object>, GST_DEBUG_GRAPH_SHOW_ALL, <file-name>);`
For example, if the application created a pipeline object `GstPipeline* pipeline = gst_pipeline_new("test-pipeline")`, and you would like to see the visualized pipeline with filename pipeline, add:
`GST_DEBUG_BIN_TO_DOT_FILE((GstBin*) pipeline, GST_DEBUG_GRAPH_SHOW_ALL, "pipeline");`. Also ensure to set the path to where you would like the file to be stored. `export GST_DEBUG_DUMP_DOT_DIR=.`. The file generated would be a `.dot` format. Convert to PDF to check the visualized pipeline. Also, this requires `graphviz` to be installed. So make sure to install that.


## FAQ
* Is CPP-SDK and GStreamer supported on Mac/Windows/Linux (Supported Platforms)?
Expand Down
Loading

0 comments on commit 072ed19

Please sign in to comment.