summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2020-10-16 00:05:51 +0300
committerMarius Vlad <marius.vlad@collabora.com>2020-10-20 00:14:19 +0300
commit0e79ab59165bf925f1288476dad66109aa01b3fa (patch)
treecbabf8c3649c014fc996b97a753ec4e51e9f7949 /README.md
parent13e791f0158ca79a0cfdb00613f69eaaf255da55 (diff)
Add waltham-transmitter-plugin
This adds the waltham-transmiter-plugin, which is a copy-pasta version of the wayland-ivi-plugins developed by ADIT-J. It has been split into a different repository. The major change from the initial version is the fact that remote output has been completely removed, and it only takes care of remote input. The renderer side has been moved/migrated into attic/ directory for further posterity. Bug-AGL: 3601 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ifc1a6f58567d8b86cbe6e84dc1de79246dd95435
Diffstat (limited to 'README.md')
-rw-r--r--README.md125
1 files changed, 125 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..25b54ad
--- /dev/null
+++ b/README.md
@@ -0,0 +1,125 @@
+# Waltham Transmitter #
+
+Waltham transmitter is a weston plugin which uses waltham IPC library to
+connect to remote and transmit input events from the remote client back
+to the compositor.
+
+Transmitter plugin provides the API to create remote connections and push
+surfaces over the network and handles remote input. The remote output creation
+and handling is being done by the remoting plug-in.
+
+
+### Architecture
+
+````
+ ECU 1 ECU 2
+ +-----------------------------------------------------+ +----------------------------------------------+
+ | +-----------------+ | | |
+ | | IVI-Application | | | +-----------+-----------+ |
+ | +-----------------+ | | | Gstreamer | | |
+ | ^ | Buffer -----------------------> (Decode) | | |
+ | wayland | +----------------------/ | +-----------+ | |
+ | v | | (Ethernet) | | Waltham-receiver | |
+ | +----+---------------------+ | | ----------------------------> | |
+ | | | Transmitter Plugin |<-----------------------------/ | +-----------------------+ |
+ | | | | | | Waltham-Protocol | ^ |
+ | | |---------------------+ | | | wayland | |
+ | | | Remoting plug-in |------------+ | | v |
+ | | | | | | +---------------------+ |
+ | | +-+-------------------+ | | | | |
+ | | | | | | compositor | |
+ | | compositor | | | | | |
+ | +------+-------------------+ | | +----------------+----+ |
+ | | | | | |
+ | v | | v |
+ | +------------+ | | +----------+ |
+ | | Display | | | | Display | |
+ | | | | | | | |
+ | +------------+ | | +----------+ |
+ +-----------------------------------------------------+ +----------------------------------------------+
+
+````
+
+### How to build
+
+1. Prerequisite before building
+
+ weston, wayland, gstreamer plugins and waltham should be built and
+ available.
+
+2. Get the source code from the repository.
+
+ $ git clone https://gerrit.automotivelinux.org/gerrit/src/waltham-transmitter
+
+3. Create build folder
+
+ $ cd waltham-transmitter
+ $ meson -Dprefix=$PREFIX_PATH build/
+
+4. Run ninja
+
+ $ ninja -C build/ install
+
+5. waltham-transmitter.so should be available in the
+ $PREFIX_PATH/lib/x86_64-linux-gnu/libweston-$MAJOR
+
+### How to configure the compositor and gstreamer pipeline
+
+1. weston.ini:
+
+The transmitter plugin will be loaded automatically is found in the plug-ins
+directory of weston.
+
+The destination of remoting output is configured in weston.ini and it matches
+the key entries from the remoting plug-in -- the output being actually created
+by the remoting plug-in. Add output name, server address, mode ini entries
+under '[transmitter-output]'. You can specify multiple [transmitter-output].
+
+You can specify which application to be started/placed on the remote output
+by adding agl-shell-app-id=app_id_name.
+
+2. gstreamer pipeline:
+
+You can customize the gstreamer pipeline as you want by configuring the
+pipeline entry.
+
+Some pipeline gstreamer examples are in the following files:
+
+- pipeline_example_general.cfg : Does not use any HW encoder.
+- pipeline_example_intel.cfg : Use Intel's HW encoder.
+- pipeline_example_rcar.cfg : Use Rcar's HW encoder.
+
+### Connection Establishment
+
+1. Connect two board over ethernet.
+
+2. Assign IP to both the boards and check if the simple ping works.
+
+ For example: if transmitter IP: 192.168.2.51 and Waltham-Receiver IP:
+ 192.168.2.52 then
+
+ $ ping 192.168.2.52 (you can also ping vice versa)
+
+3. Make sure that IP address specified in the weston.ini under
+ [transmitter-output] matches the Waltham-Receiver IP. The section is
+ identical to that of the remoting plug-in, only the name of the section is
+ different.
+
+### How to test
+
+Start the compositor with modified weston.ini mention above. You can confirm
+the transmitter is loaded properly from weston log as below.
+
+````
+[07:14:23.032] Transmitter weston_seat 0xaaaad0079e50
+[07:14:23.032] Transmitter created pointer=0xaaaad00977c0 for seat 0xaaaad0079e50
+[07:14:23.032] Transmitter created keyboard=0xaaaad0079fe0 for seat 0xaaaad0079e50
+[07:14:23.032] Transmitter created touch=0xaaaacffe1010 for seat 0xaaaad0079e50
+````
+
+Start remoting:
+
+- Start the remote compositor and start the receiver application.
+- Start the compositor on the transmitter side and the application mentioned in
+'[transmitter-output]' section, under agl-shell-app-id in order to 'forward'
+the application to that output.