Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Reverted from v. 171

...

    • There is a small correction in the below "Run YouTube" Command mentioned in rdk wiki page

    • remove "$PWD" in COBALT_CONTENT_DIR

    • Make sure rialto-registry.bin is cleared
      rm /tmp/rialto-registry.bin

Pipeline Diagram

Image Modified

Application Session Management - Overview

Image Added

RDK Shell + Rialto Architecture (Proposed)


Image Added


App'n Launch Life cycle

draw.io Diagram
bordertrue
diagramNametest
simpleViewerfalse
width600
linksauto
tbstyletop
lboxtrue
diagramWidth911
revision19

  • 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
bordertrue
diagramNamesuspend
simpleViewerfalse
width600
linksauto
tbstyletop
lboxtrue
diagramWidth941
revision11

App'n Destroy Life cycle

draw.io Diagram
bordertrue
diagramNamedestroy
simpleViewerfalse
width600
linksauto
tbstyletop
lboxtrue
diagramWidth898
revision5


Design Approach

  • Initial approach was to run RialtoServerManager using systemd during the boot up sequence. 

View file
namerialto-servermanager.patch
height250

After further review it was decided RialtoServerManager shouldn't be started by service file directly.

libRialtoServerManager.so should be responsible for creating an instance of RialtoServerManager which should spawn the socket for running rialto.

  • Later it was decided to link RialtoServerManager.so with RDKShell, no need to run the system service. 

As mentioned above the latest approach was to integrate libRialtoServerManager.so to RDKShell which would give RDKShell the access to invoke API's.

API's to be invoked via RDKShell.

https://github.com/rdkcentral/rialto/blob/master/serverManager/public/include/IServerManagerService.h

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 
    • Launch
    • Suspend
    • Destroy


Known issues / Limitations

Encrypted playback is not verified as a part of POC.

...