aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
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.