summaryrefslogtreecommitdiffstats
path: root/waltham-transmitter/transmitter-plugin/README
blob: 345142d517e73d2053f4e3616085ccb47b2336b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Transmitter plugin

The current implementation of Transmitter is a stub which interfaces to
other Weston parts appropriately, but all networking is just a mockup.

Sections in this file describe:
- How to build
- How to write weston.ini
- How to test

How to build
============
Configure Weston with --enable-surface-remoting to build the Transmitter
plugin.

How to write weston.ini
=======================
To load transmitter plugin to weston, add 'transmitter.so' to the 'modules'
key under '[core]', and make sure the 'shell' is 'ivi-shell.so'.

The destination of remoting is configured in weston.ini.
Add output name, server address, port number, output's width and height key
under '[remote-output]'.
You can speficy multiple [remote-output].

In details, see 'weston.ini.transmitter'.

How to test
===========
You can use server side test application in waltham-server directory.

If you set 'WALTHAM_DEBUG=1' to your environment valuable, you can
see the log like this:

 [13:24:08.345] Loading module '/usr/lib64/weston/transmitter.so'
 [13:24:08.345] Registered plugin API 'transmitter_v1' of size 88
 [13:24:08.345] Registered plugin API 'transmitter_ivi_v1' of size 16
 [13:24:08.345] Transmitter initialized.
 [13:24:08.345] Loading module '/usr/lib64/libweston-2/waltham-renderer.so'
 [13:24:08.352] gst-setting are :-->
 [13:24:08.352] ip = 192.168.2.52
 [13:24:08.352] port = 34400
 [13:24:08.352] bitrate = 3000000
 [13:24:08.352] crop = 384 x 368
 [13:24:08.352] width = 1920
 [13:24:08.352] width = 1080
 [13:24:08.531] open media device: platform:fe960000.vsp (fe960000.vsp)
 [13:24:08.532] input pad setup ('fe960000.vsp rpf.0 input':'/dev/video0')
 [13:24:08.533] output pad setup (fe960000.vsp wpf.0 output:/dev/video5)
 [13:24:08.533] vsp-device '/dev/media0' created
 [13:24:08.533] gst_recorder_create (1920x1080) crop 384x368 at 0,0
 [13:24:08.533] gst_pipeline: starting: appsrc name=src ! omxh264enc target-bitrate=3000000 control-rate=2 no-copy=k
 [13:24:08.582] goot 1 pools
 [13:24:08.583]  pool settings size 211968, min 5, max 5
 [13:24:08.583] gst_recorder_create done
 [13:24:08.583] [gst recorder] transmitter-192.168.2.52:34400-1: recorder initialized
 [13:24:08.583] Transmitter weston_seat 0x15424630
 [13:24:08.583] Transmitter created pointer=0x15625df0 for seat 0x15424630
 [13:24:08.583] Transmitter created keyboard=0x154247c0 for seat 0x15424630
 [13:24:08.583] Transmitter created touch=0x15625f10 for seat 0x15424630

The connection is established, you can see following debug messages:

 debug: wth_connection_insert_new_object: new object id: 1
 debug: wth_connection_insert_new_object: new object id: 2
 2018-01-09T13:24:22Z 00001000030000000100000002000000 wth_display_get_registry
 debug: wth_connection_insert_new_object: new object id: 3
 2018-01-09T13:24:22Z 00001000020000000100000003000000 wth_display_sync
 debug: Message received on conn 0x15572730: (9) 40 bytes
 debug: wthp_registry_send_global(2, 1, [variable type const char *], 4) (opcode 9) called.
 debug: wth_connection_insert_new_object: new object id: 4
 2018-01-09T13:24:22Z 00002c000800000002000000010000000400000010000000777468705f636f6d706f7369746f720001000000 wthpd
 debug: Message received on conn 0x15572730: (9) 48 bytes
 debug: wthp_registry_send_global(2, 1, [variable type const char *], 1) (opcode 9) called.
 debug: wth_connection_insert_new_object: new object id: 5
 2018-01-09T13:24:22Z 000034000800000002000000010000000500000015000000777468705f6976695f6170706c69636174696f6e00010d
 debug: Message received on conn 0x15572730: (9) 44 bytes
 debug: wthp_registry_send_global(2, 1, [variable type const char *], 4) (opcode 9) called.
 debug: wth_connection_insert_new_object: new object id: 6
 2018-01-09T13:24:22Z 000030000800000002000000010000000600000012000000777468705f626c6f625f666163746f72790001000000 d
 debug: Message received on conn 0x15572730: (9) 36 bytes
 debug: wthp_registry_send_global(2, 1, [variable type const char *], 4) (opcode 9) called.
 debug: wth_connection_insert_new_object: new object id: 7
 2018-01-09T13:24:22Z 00002800080000000200000001000000070000000a000000777468705f736561740001000000 wthp_registry_bid
 debug: Message received on conn 0x15572730: (11) 16 bytes
 debug: wthp_callback_send_done(3, 0) (opcode 11) called.

Start remoting :
- Start an IVI application.
- Put surface on transmitter output

Weston log will indicate remoting has started:

[13:18:24.572] HMI transmitting surface 0x1c3dad0, ivi-id 0x9ff6
[13:18:24.572] Transmitter: update surface 0x1c3dad0 (0, 0), 0 cb
[13:18:24.572] transmitter_surface_set_ivi_id(0x1c3dad0, 0x9ff6)
[13:18:24.972] Transmitter: surface 0x1c3dad0 entered output transmitter-0.0.0.0:66-1