Conversation
|
Pull request must be merged with a description containing the required fields, Summary: If there is no jira releated to this change, please put 'Jira: NO-JIRA'. Description can be changed by editing the top comment on your pull request and making a new commit. |
There was a problem hiding this comment.
Pull request overview
This PR adds additional diagnostic logging and pipeline flush event emission to help investigate a playback/teardown issue in the media server.
Changes:
- Add a WARN log when deferring DRM key session release due to a non-zero refCounter.
- Send GStreamer flush-start/flush-stop events in
GstGenericPlayer::termPipeline()immediately before stopping the pipeline.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
media/server/service/source/CdmService.cpp |
Adds extra WARN logging when key session release is deferred. |
media/server/gstplayer/source/GstGenericPlayer.cpp |
Sends flush events prior to Stop during pipeline teardown and logs that action. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| RIALTO_SERVER_LOG_INFO("Deferring releasing of key session %d", keySessionId); | ||
| RIALTO_SERVER_LOG_WARN("DPS:::::: Deferring releasing of key session %d (refCounter=%d) - " |
| m_gstWrapper->gstElementSendEvent(m_context.pipeline, m_gstWrapper->gstEventNewFlushStart()); | ||
| m_gstWrapper->gstElementSendEvent(m_context.pipeline, m_gstWrapper->gstEventNewFlushStop(FALSE)); |
| { | ||
| m_gstWrapper->gstElementSendEvent(m_context.pipeline, m_gstWrapper->gstEventNewFlushStart()); | ||
| m_gstWrapper->gstElementSendEvent(m_context.pipeline, m_gstWrapper->gstEventNewFlushStop(FALSE)); | ||
| RIALTO_SERVER_LOG_WARN("DPS::Sent flush events to drain encrypted buffers before Stop"); |
| m_gstWrapper->gstElementSendEvent(m_context.pipeline, m_gstWrapper->gstEventNewFlushStart()); | ||
| m_gstWrapper->gstElementSendEvent(m_context.pipeline, m_gstWrapper->gstEventNewFlushStop(FALSE)); |
|
|
||
| if (m_context.pipeline) | ||
| { | ||
| m_gstWrapper->gstElementSendEvent(m_context.pipeline, m_gstWrapper->gstEventNewFlushStart()); |
There was a problem hiding this comment.
Coverity Issue - Unchecked return value
Calling "gstElementSendEvent" without checking return value (as is done elsewhere 7 out of 8 times).
Medium Impact, CWE-252
CHECKED_RETURN
| if (m_context.pipeline) | ||
| { | ||
| m_gstWrapper->gstElementSendEvent(m_context.pipeline, m_gstWrapper->gstEventNewFlushStart()); | ||
| m_gstWrapper->gstElementSendEvent(m_context.pipeline, m_gstWrapper->gstEventNewFlushStop(FALSE)); |
There was a problem hiding this comment.
Coverity Issue - Unchecked return value
Calling "gstElementSendEvent" without checking return value (as is done elsewhere 7 out of 8 times).
Medium Impact, CWE-252
CHECKED_RETURN
No description provided.