Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ The *Signed Video Framework* is an open-source project that secures an H264, or
## Getting started with the repo
This repository contains a set of application examples which aims to enrich the developers implementation experience. All examples are using the [signed-video-framework](https://github.com/AxisCommunications/signed-video-framework) and has a README file in its directory with instructions on how to build and run it.

The repository uses meson + ninja as default build method. Further, all application examples uses gStreamer APIs.
The repository uses meson + ninja as default build method. Further, all application examples uses GStreamer APIs.
- [meson](https://mesonbuild.com/Getting-meson.html) Getting meson and ninja. Meson version 0.49.0 or newer is required.
- [gStreamer](https://gstreamer.freedesktop.org/documentation/installing/index.html?gi-language=c) All applications are built around the gStreamer framework to handle coded video.
- [GStreamer](https://gstreamer.freedesktop.org/documentation/installing/index.html?gi-language=c) All applications are built around the GStreamer framework to handle coded video.

## Example applications
Below is a list of example applications available in the repository.
Expand Down
8 changes: 4 additions & 4 deletions apps/signer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ Note: This example application code also serves as example code for how to imple
*Signed Video Framework*.

## Prerequisites
This application relies on gStreamer and signed-video-framework.
- [gStreamer](https://gstreamer.freedesktop.org/documentation/installing/index.html?gi-language=c)
This application relies on GStreamer and signed-video-framework.
- [GStreamer](https://gstreamer.freedesktop.org/documentation/installing/index.html?gi-language=c)
- [signed-video-framework](https://github.com/AxisCommunications/signed-video-framework)

## Description
The application processes a file NALU by NALU and adds signatures in SEIs, provided by the
*Signed Video Framework*. A successfully signed GOP prints it on the screen.

It is implemented as a gStreamer element that process every NALU and adds SEI NALs to the stream repeatedly.
It is implemented as a GStreamer element that process every NALU and adds SEI NALs to the stream repeatedly.
The signed video is written to a new file, prepending the filenamne with `signed_`. That is, `test_h264.mp4` becomes `signed_test_h264.mp4`. The application requires the file to process to be in the current directory.

## Building the signer application
Expand All @@ -33,7 +33,7 @@ Build and install the library locally in `./my_installs/`.
meson --prefix $PWD/my_installs signed-video-framework build_lib
meson install -C build_lib
```
Then build and install the `signer` in the same place. Since this application is implemented as a gStreamer element set `GST_PLUGIN_PATH` for gStreamer to find it.
Then build and install the `signer` in the same place. Since this application is implemented as a GStreamer element set `GST_PLUGIN_PATH` for GStreamer to find it.
```
export GST_PLUGIN_PATH=$PWD/my_installs
meson --prefix $PWD/my_installs -Dsigner=true signed-video-framework-examples build_apps
Expand Down
10 changes: 5 additions & 5 deletions apps/signer/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,11 +227,11 @@ main(gint argc, gchar *argv[])
filesink = gst_element_factory_make("filesink", NULL);

if (!filesrc || !demuxer || !parser || !muxer || !filesink) {
if (!filesrc) g_message("gStreamer element 'filesrc' not found");
if (!demuxer) g_message("gStreamer element '%s' not found", demux_str);
if (!parser) g_message("gStreamer element '%sparse' not found", codec_str);
if (!muxer) g_message("gStreamer element '%s' not found", mux_str);
if (!filesink) g_message("gStreamer element 'filesink' not found");
if (!filesrc) g_message("GStreamer element 'filesrc' not found");
if (!demuxer) g_message("GStreamer element '%s' not found", demux_str);
if (!parser) g_message("GStreamer element '%sparse' not found", codec_str);
if (!muxer) g_message("GStreamer element '%s' not found", mux_str);
if (!filesink) g_message("GStreamer element 'filesink' not found");

goto out;
} else if (!signedvideo) {
Expand Down
4 changes: 2 additions & 2 deletions apps/validator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ Note: This example application code also serves as example code for how to imple
the *Signed Video Framework*.

## Prerequisites
This application relies on GstAppSink (part of gStreamer) and signed-video-framework.
- [gStreamer](https://gstreamer.freedesktop.org/documentation/installing/index.html?gi-language=c)
This application relies on GstAppSink (part of GStreamer) and signed-video-framework.
- [GStreamer](https://gstreamer.freedesktop.org/documentation/installing/index.html?gi-language=c)
- [signed-video-framework](https://github.com/AxisCommunications/signed-video-framework)

## Description
Expand Down
2 changes: 1 addition & 1 deletion apps/validator/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ is_signed_video_sei(const guint8 *nalu, SignedVideoCodec codec)
idx++;
} else {
// Start code NOT present. Assume the first 4 bytes have been replaced with size,
// which is common in, e.g., gStreamer.
// which is common in, e.g., GStreamer.
idx = 4;
}

Expand Down
2 changes: 1 addition & 1 deletion meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ signedvideoframework_dep = declare_dependency(
include_directories : include_directories(sv_header_dir),
)

# gStreamer is used by all applications
# GStreamer is used by all applications
gst_req = '>= 1.0.0'
api_version = '1.0'
gst_dep = dependency(
Expand Down