Feature/rialto hdmi issue#503
Open
balasaraswathy-n wants to merge 29 commits into
Open
Conversation
Summary: Performance improvements in play request and flush Type: Fix Test Plan: UT/CT, Fullstack Jira: ENTDAI-1750 ENTDAI-1738 ENTDAI-485
Summary: Change Wayland Display for TextTrack Type: Fix Test Plan: UT/ CT, Fullstack Jira: ENTDAI-2218
Summary: Fixed playback info reporting for not asynchronous playbacks Type: Fix Test Plan: UT/CT, Fullstack Jira: ENTDAI-2231
…minor changes added to make code safer. (#437) Summary: Session server app changed to shared ptr to avoid invalid ptrs. Some minor changes added to make code safer. Type: Fix Test Plan: UT/CT, Fullstack Jira: VPLAY-12448
Summary: Asure correct data & flush order during multiple flushes Type: Fix Test Plan: UT/CT, Fullstack Jira: NO-JIRA
Summary: Removed gstreamer interaction during RemoveSource Type: Fix Test Plan: UT/CT, Fullstack Jira: LLAMA-18057
Summary: Allow to switch audio codec, when audio is re-attached Type: Fix Test Plan: UT/CT, Fullstack Jira: LLAMA-18057
Summary: Microsoft Playready support for Amazon Prime RDK app Type: Feature Test Plan: UT/CT, Fullstack Jira: NO-JIRA
Summary: Re-enabled CT Type: Fix Test Plan: UT/CT, Fullstack Jira: NO-JIRA
Summary: 'report-decode-errors' and 'queued-frames' properties missing from RialtoMSEVideoSink Type: Feature Test Plan: UT/CT, Fullstack Jira: RDKEMW-12692
Summary: Added support for getting text-sink in getSink method Type: Fix Test Plan: UT/CT, Fullstack Jira: VPLAY-12522
Summary: Removed blocking get_state calls from aml codec switch Type: Fix Test Plan: UT/CT, Fullstack Jira: DELIA-70115
…from RialtoMSEVideoSink (#462) Summary: Temporary revert of 'report-decode-errors' and 'queued-frames' properties missing from RialtoMSEVideoSink. It revealed issues in some apps. Type: Feature Test Plan: UT/CT, Fullstack Jira: RDKEMW-12692
Summary: Switch unnecessary copy constructors with move semantics
Type: Fix
Test Plan: UT/CT, Fullstack
Jira: RDKEMW-12966
Summary: Dedicated script to install dependencies and build native build Type: Feature Test Plan: UT/CT, Fullstack Jira: RDKEMW-15078
Fix memory leaks in Rialto master Summary: Finding potential memory leak points and adding fixes Type: Fix Test Plan: UT/CT, Fullstack Jira: RDKEMW-15495
…t. Added linking of typefind and the parser after the audio switch (#481) Summary: Fixed initialisation of playbackGroup elements in GenericPlayerContext. Added linking of typefind and the parser after the audio switch Type: Feature Test Plan: UT/CT, Fullstack Jira: RDKEMW-16807
…properties (#485) Summary: 'report-decode-errors' and 'queued-frames' properties missing from RialtoMSEVideoSink Type: Feature Test Plan: UT/CT, Fullstack Jira: RDKEMW-12692
Summary: IMediaPipeline::GetDuration method added Type: Feature Test Plan: UT/CT, Fullstack Jira: RDKEMW-16798
Summary: Implementation of the isLive parameter Type: Fix Test Plan: UT/CT, Fullstack Jira: RDKEMW-15424
Summary: Added profiling to Rialto Server. IProfiler for use throughout server and IGstProfiler for use on server GST media pipeline. Added IGstProfiler method calls throughout media/server pipeline for recording points of interest. Added metrics calculation on top, with following one line log. Type: Feature Test Plan: UT/CT, Fullstack Jira: RDKEMW-11764 --------- Co-authored-by: Sasa Mudri <Sasa_Mudri@comcast.com>
Summary: retain preroll frames count Type: Fix Test Plan: UT/CT, Fullstack Jira: RDKEMW-13498 --------- Co-authored-by: rkandh015 <rekha_kandhavelan@comcast.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Marcin Wojciechowski <marcin.wojciechowski@sky.uk>
#492) Revert "Bringing back support for "queued-frames" and "report-decode-errors" properties (#485)" Summary: Temporary revert of 'report-decode-errors' and 'queued-frames' properties missing from RialtoMSEVideoSink. It revealed issues in some apps. Type: Feature Test Plan: UT/CT, Fullstack Jira: RDKEMW-12692
Summary: Do not treat server as deadlocked when outdated acks are received Type: Fix Test Plan: UT/CT, Fullstack Jira: RDKEMW-18258
…tions (#494) Summary: Disable synchronous play in RialtoServer as it caused some race conditions Type: Fix Test Plan: UT/CT, Fullstack Jira: RDKEMW-18286
Reason for change: HCDP reauth retry logic needed Test Procedure: Hot pug hdmi and observe retry log messages Risks: Low Priority: High Signed-off-by: Adler, Douglas <Douglas_Adler2+comcast@comcast.com>
Contributor
Contributor
There was a problem hiding this comment.
Pull request overview
This PR is a very large, cross-cutting change titled "Feature/rialto hdmi issue" with only "test PR" as the description. The changes span the public API, IPC protocol, server-side gstreamer player, CDM/media-keys handling, server manager, common utilities, and the corresponding unit/component tests.
Changes:
- Public API changes:
IMediaPipeline::loadnow takesisLive,playreturns anasyncflag, newgetDurationAPI;IMediaKeys::createKeySessiondropsisLDLandgenerateRequestgains aLimitedDurationLicenseparameter; newOUTPUT_RESTRICTEDerror andLimitedDurationLicenseenum. - Server-side gstplayer refactor: removal of
RemoveSourcetask andaudioSourceRemovedflag, newIGstProfiler/FlushOnPrerollControllermodel, new playback-info timer,isLivepropagation to setup-element, new gst wrapper APIs (probes, pad link/unlink, query duration, etc.),notifyNeedMediaDatanow uses a smallerkPrerollNumFramescount in non-PLAYING states. - Server-manager and common-lib changes:
SessionServerAppFactorynow returnsshared_ptr, healthcheck failed-pings tracked as a set, newProfiler/ProfilerFactory, timer cancel-from-callback support, IPC server callbacks taken by const-ref.
Reviewed changes
Copilot reviewed 296 out of 296 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| media/public/include/IMediaPipeline.h, IMediaKeys.h, MediaCommon.h | Public API: load(isLive), play(async), getDuration, LimitedDurationLicense, OUTPUT_RESTRICTED. |
| media/client/** | Client/IPC plumbing for the new load/play/getDuration and updated createKeySession/generateRequest. |
| media/server/service/, media/server/main/ | Service-layer signature updates; isExtendedInterfaceUsed rename; NeedMediaData prerolling frame count; ActiveRequests id-collision handling; MainThread task done flag. |
| media/server/gstplayer/** | Removal of RemoveSource/audioSourceRemoved; new GstProfiler, FlushOnPrerollController waitIfRequired/setPrerolling flow, notifyPlaybackInfo timer, audio-rate-correction for live, link-typefind-with-parser logic. |
| proto/mediakeysmodule.proto | Adds ldl_state to GenerateRequestRequest. |
| serverManager/** | ISessionServerAppFactory now returns shared_ptr; SessionServerApp kill no longer resets m_pid; healthcheck failed-pings map value type changed to set<int>. |
| common/** | New Profiler/ProfilerFactory; Timer supports cancellation from its own callback; EventThread dtor scope cleanup. |
| ipc/server/** | addSocket callbacks now passed by const-ref. |
| tests/** | Extensive updates: new GetDuration/Profiler/GstProfiler mocks, IsNetflixPlayreadyKeySystem and RemoveSource test suites deleted, fixture and test updates for the API signature changes, new component tests for switch-audio playback, set-drm-header, etc. |
| build_native.sh, install_dependencies_for_native_build.sh, .github/workflows/native_rialto_build.yml | Native build refactored into helper shell scripts. |
| scripts/gtest/build_and_run_tests.py | Sets PROFILER_ENABLED=true for all test suites. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| // Step 7: Remove sources | ||
| willRemoveAudioSource(); | ||
| // Step 7: Remove sources, kFrameCountInPlayingState |
| INTERFACE_NOT_IMPLEMENTED, /**< The interface is not implemented. */ | ||
| BUFFER_TOO_SMALL /**< The size of the buffer is too small. */ | ||
| BUFFER_TOO_SMALL, /**< The size of the buffer is too small. */ | ||
| OUTPUT_RESTRICTED |
| constexpr std::uint32_t kBufferLen{7 * 1024 * 1024}; | ||
| constexpr std::uint32_t kMetadataOffset{1024}; | ||
| constexpr int kRequestId{0}; | ||
| constexpr int kPrerollingNumFrames{3}; |
Comment on lines
298
to
301
| if (m_pid > 0) | ||
| { | ||
| m_linuxWrapper->kill(m_pid, SIGKILL); | ||
| m_pid = -1; | ||
| } |
Comment on lines
+52
to
69
|
|
||
| if (m_currentId == std::numeric_limits<std::uint32_t>::max()) | ||
| { | ||
| m_currentId = 1; | ||
| } | ||
|
|
||
| auto [it, inserted] = m_requestMap.emplace(m_currentId, ActiveRequestsData(mediaSourceType, maxMediaBytes)); | ||
| if (!inserted) | ||
| { | ||
| do | ||
| { | ||
| ++m_currentId; | ||
| } while (m_requestMap.find(m_currentId) != m_requestMap.end()); | ||
|
|
||
| m_requestMap.emplace(m_currentId, ActiveRequestsData(mediaSourceType, maxMediaBytes)); | ||
| } | ||
|
|
||
| return m_currentId++; |
Contributor
Contributor
|
b'## WARNING: A Blackduck scan failure has been waived A prior failure has been upvoted
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
test PR