/
Steps to use Transmitter-backend
Steps to use Transmitter-backend
Instructions
- To build wayland-protocols with 1.18 version(Required for weston 7.0.0):
- Copy wayland-protocols_1.18.bb file in "meta-agl/meta-agl-bsp/recipes-graphics/wayland" path.
- To build Weston with Transmitter-backend:
- Copy weston_7.0.0.bb file in "meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/" path.
- Add below line in local.conf
BBMASK += "${METADIR}/meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/weston_%.bbappend"
IMAGE_INSTALL_remove = " weston-conf"
- To Build wayland-ivi-extension compatible with weston 7.0.0:
- For AGL 8.0.2: Apply 0001-make-ivi-extension-compatible-with-weston-7.0.0.patch in "meta-agl/" folder.
OR
instead of above steps just checkout the below sandbox for met-agl below. The sand box has updated weston_7.0.0.bb file which fetch the latest source code with fixes.
Rebuild weston and wayland-ivi-extension and copy the libraries to target
$bitbake -c cleansstate weston wayland-ivi-extension $bitbake wayland-ivi-extension
copy waltham libraries
build/tmp/work/aarch64-agl-linux/waltham/git-r0/image/usr/* to target /usr- run, use below files in rcar board:
- /etc/xdg/weston/weston.ini
[core] shell=ivi-shell.so backend=transmitter-backend.so require-input=false modules=ivi-controller.so #repaint-window=34 # A display is connected to HDMI-A-1 and needs to be rotated 270 degrees # to have a proper orientation of the homescreen. For example the various sizes # of the GeChic display or the Dell display. #[output] #name=HDMI-A-1 #transform=270 [desktop-app-default] default-surface-id=2000000 default-surface-id-max=2001000 [ivi-shell] ivi-input-module=ivi-input-controller.so ivi-id-agent-module=ivi-id-agent.so transition-duration=300 cursor-theme=default [shell] locking=true panel-position=none [transmitter-output] output-name=transmitter_1 server-address=192.168.2.52 port=34400 width=1920 height=1080
define pipeline
jpeg enc/dec
/etc/xdg/weston/transmitter_pipeline.cfg on transitter sideappsrc name=src max-bytes=0 ! vspfilter ! video/x-raw,format=I420 ! jpegenc ! rtpjpegpay ! udpsink name=sink host=192.168.2.52 port=34400 sync=false async=false
/etc/xdg/weston/receiver_pipeline.cfg on receiver sideudpsrc port=34400 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG,payload=(int)26" ! rtpjpegdepay ! jpegdec ! waylandsink name=sink
rcar specific HW end/dec
This ticked should be fixed to use HW setup on v8.0.2. https://jira.automotivelinux.org/browse/SPEC-2934/etc/xdg/weston/transmitter_pipeline.cfg on transitter sideappsrc name=src ! videoconvert ! video/x-raw,format=I420 ! omxh264enc bitrate=3000000 control-rate=2 ! rtph264pay ! udpsink name=sink host=192.168.2.52 port=34400 sync=false async=false
/etc/xdg/weston/receiver_pipeline.cfg on receiver sideudpsrc port=34400 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264,payload=(int)96" ! rtpjitterbuffer latency=0 ! rtph264depay ! h264parse config-interval=1 disable-passthrough=true ! omxh264dec no-reorder=true ! waylandsink name=sink
Command to run in following sequence:
Steps Transmitter side Receiver side 1 ifconfig eth0 192.168.2.51
2 systemctl stop weston ifconfig eth0 192.168.2.52 export XDG_RUNTIME_DIR=/tmp sleep 1 weston --tty=1 & sleep 1 waltham-receiver -p 34400 & sleep 1 layer-add-surfaces -s 1 -l 1 -d HDMI-A-1 &
3 weston --tty=2 & layer-add-surfaces 1 1 & EGLWLMockNavigation
Issues and Limitations
- weston doesn't start from systemd service file.
→ ADIT has a patch to fix it. But still systemd notification doesn't work and should be fixed. - EGLWLInputEventExample doen't appear at first frame need mouse to be connected.
→ ADIT has a patch to fix it. - When weston run without receiver side, weston dump core occasionally.
→ ADIT has a patch to fix it. - weston gets hang occasionally. In this case, if you execute LayerManagerControl, it has never returned.
→ ADIT has a patch to fix it. - waltham backend can transmitt only one surface. If virtual screen has two more surfaces, waltham backend does nothing.
→ ADIT has draft patches to composite multiple surfaces to one and transmit.
Q&A
How to change ip address of receiver (server) side?
Tow files in transmitter side should be changed.
- weston.ini for waltham protocol itself.
- [transmitter-output]
server-address=192.168.2.52
- [transmitter-output]
- transmitter_pipeline.cfg for gstreamer.
- udpsink name=sink host=192.168.2.52
Todo
waltham transmitter recipe has unnecessary dependency. gstreamer and gstreamer1.0. should be one.
Related content
Container development base environment
Container development base environment
More like this
Proposed 2023 Development Roadmap
Proposed 2023 Development Roadmap
More like this
How to build
How to build
More like this
Meeting Notes 2025
Meeting Notes 2025
More like this
AGL Integration Session Yokohama
AGL Integration Session Yokohama
More like this
How to build Basesystem feature
How to build Basesystem feature
More like this