...
RDK Shell + Rialto Architecture (Proposed)
Image Removed
Image Removed
Image Added
App'n Launch Life cycle
| draw.io Diagram |
|---|
| border | true |
|---|
| diagramName | test |
|---|
| simpleViewer | false |
|---|
| width | 600 |
|---|
| links | auto |
|---|
| tbstyle | top |
|---|
| lbox | true |
|---|
| diagramWidth | 911 |
|---|
| revision | 16 | 19 |
|---|
|
- initiateApplication - creates a new RialtoSessionServer/RialtoServer instance.
- changeSessionServerState - requests Rialtosessionserver/RailtoServer to change its state
- socketpair is used to create the point-to-point IPC channel used for all Rialto Server Manager to Rialto Application Session Server communications
- Application Session Server sends first message so Server Manager knows that it is now up and running
- Session server creates the socket that the app will use for sending AV data and control respectively.
App'n Suspend Life cycle
| draw.io Diagram |
|---|
| border | true |
|---|
| diagramName | suspend |
|---|
| simpleViewer | false |
|---|
| width | 600 |
|---|
| links | auto |
|---|
| tbstyle | top |
|---|
| lbox | true |
|---|
| diagramWidth | 941 |
|---|
| revision | 11 |
|---|
|
...
- Initial approach was to run RialtoServer RialtoServerManager using systemd during the boot up sequence.
| View file |
|---|
| name | rialto-servermanager.patch |
|---|
| height | 250 |
|---|
|
This approach had flaws as considering the fact that RialtoServer After further review it was decided RialtoServerManager shouldn't be started by service file directly.
libRialtoServerManager.so should be responsible for creating an insatnce instance of RialtoServer RialtoServerManager which should spawn the socket for running rialto.
...
initiateApplication - causes for a new RialtoSessionServer instance to be spawned.
https://github.com/vijith-tv/rdkservices/blob/sprint/23Q2/RDKShell/RDKShell.cpp#L3517 places for invoking the API suggetsed by Michael
changeSessionServerState - requests an session server to change its state
https://github.com/vijith-tv/rdkservices/blob/sprint/23Q2/RDKShell/RDKShell.cpp#L4011 - suspend
https://github.com/vijith-tv/rdkservices/blob/sprint/23Q2/RDKShell/RDKShell.cpp#L4086 - destroy
Linking libRialtoServerManager.so to RDKShell
https://code.rdkcentral.com/r/c/components/generic/rdk-oe/meta-cmf-video/+/83909 pushed the code review to feature brach cretaed for upstareming the changes
- Rialto Distro feature was enabled in rdk_next to build Rialto components in RDK builds.
https://code.rdkcentral.com/r/plugins/gitiles/rdk/components/generic/rdk-oe/meta-cmf/+/refs/heads/rdk-next/recipes-core/packagegroups/packagegroup-rdk-media-common.bbappend#20
https://code.rdkcentral.com/r/plugins/gitiles/components/generic/rdk-oe/meta-cmf-video/+/refs/heads/rdk-next/recipes-extended/rialto/
- RDK shell session management will handle following Rialto state changes
...