Moved to https://git.opendlv.org.
This repository provides source code to transform an input image in (A)RGB/(A)BGR format residing in a shared memory to an image in I420 residing in a new shared memory suitable for subsequent video compression.
You need a C++14-compliant compiler to compile this project.
The following dependency is part of the source distribution:
- libcluon -
The following dependency is downloaded and installed during the Docker-ized build:
To run this microservice using docker-compose
, you can simply add the following
section to your docker-compose.yml
:
version: '2' # Must be present exactly once at the beginning of the docker-compose.yml file
services: # Must be present exactly once at the beginning of the docker-compose.yml file
argb2i420:
image: chalmersrevere/argb2i420-multi:v0.0.1
restart: on-failure
ipc: "host"
volumes:
- /tmp:/tmp
environment:
- DISPLAY=${DISPLAY}
command: "--in=img.argb --width=640 --height=480 --argb --out=imgout.i420"
As this microservice is connecting to an existing shared memory to read the (A)RGB/(A)BGR
image for transform it into a new shared memory area using SysV IPC, the docker-compose.yml
file specifies the use of ipc:host
. The folder /tmp
is shared into the Docker
container to provide tokens describing the shared memory areas.
The parameters to the application are:
--in
: Name of the shared memory area containing the (A)RBG/(A)BGR image--out
: Name of the shared memory area to be created for the I420 image--width
: Width of the input image--height
: Height of the input image--argb
: Format of the input image (choose exactly one!)--rgb
: Format of the input image (choose exactly one!)--abgr
: Format of the input image (choose exactly one!)--bgr
: Format of the input image (choose exactly one!)--verbose
: Display decoding information and render the image to screen (requires X11; runxhost +
to allow access to you X11 server)
To build this software, you need cmake, C++14 or newer, libyuv, libvpx, and make.
Having these preconditions, just run cmake
and make
as follows:
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release ..
make && make test && make install
- This project is released under the terms of the GNU GPLv3 License