VPAAMP-474 [AAMP][Xione-Dhruv]- CC fails to resume after midroll ad when user performs Play/Pause actions during ad playback#185
VPAAMP-474 [AAMP][Xione-Dhruv]- CC fails to resume after midroll ad when user performs Play/Pause actions during ad playback#185cpc005 wants to merge 3 commits into
Conversation
|
I have read the CLA Document and I hereby sign the CLA Patrick Conduit seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. |
There was a problem hiding this comment.
Pull request overview
This PR aims to fix closed captions/subtitle resume issues (VPAAMP-474) by deferring subtitle unmute until the GStreamer pipeline is confirmed ready (PLAYING), avoiding an early unmute that can be lost during pipeline setup.
Changes:
- Introduces
setSubtitlePendingto defer subtitle unmute until the pipeline reaches PLAYING. - Updates bus state-change handling to apply the deferred subtitle unmute.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| interfacePlayerPriv->gstPrivateContext->subtitle_sink = GST_ELEMENT(gst_object_ref(stream->sinkbin)); | ||
| g_object_set(stream->sinkbin, "mute", interfacePlayerPriv->gstPrivateContext->subtitleMuted ? TRUE : FALSE, NULL); | ||
| interfacePlayerPriv->gstPrivateContext->setSubtitlePending = true; | ||
| return 0; |
| // Subtitle unmute lost in SetupStream() because gstreamer pipeline not ready | ||
| // Set subtitle state now we know pipeline is ready | ||
| if (privatePlayer->gstPrivateContext->subtitle_sink && privatePlayer->gstPrivateContext->setSubtitlePending && !privatePlayer->gstPrivateContext->subtitleMuted) | ||
| { | ||
| pInterfacePlayerRDK->SetSubtitleMute(false); | ||
| privatePlayer->gstPrivateContext->setSubtitlePending = false; | ||
| } |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
InterfacePlayerRDK.cpp:4524
- The deferred subtitle logic only applies an unmute when
subtitleMutedis false. IfsubtitleMutedis true (default), the sink’smuteproperty is never applied once the pipeline becomes ready, so subtitles may render even thoughsubtitleMutedindicates they should be muted; additionallysetSubtitlePendingis never cleared in that case.
Apply the pending subtitle mute state (true/false) once PLAYING is reached and clear the pending flag unconditionally.
if (privatePlayer->gstPrivateContext->subtitle_sink && privatePlayer->gstPrivateContext->setSubtitlePending && !privatePlayer->gstPrivateContext->subtitleMuted)
{
pInterfacePlayerRDK->SetSubtitleMute(false);
privatePlayer->gstPrivateContext->setSubtitlePending = false;
}
Also VPAAMP-187 [RDKE][Xione UK][VOD]Subtitles not displayed after enabling un-skippable ads
Reason for change: In InterfacePlayerRDK::SetupStream() an attempt is made to unmute the subtitles before gstreamer has configured the pipeline. The unmute gets lost.