Skip to content

Conversation

akodanka
Copy link
Contributor

@akodanka akodanka commented Feb 4, 2025

Variable bitrate video gets stuck after playing for a few seconds.

For variable bitrate video, the DecodeFrameAsync frequently gives null value for surface_out. In such cases, the WaitWork is not called, and hence, the NotifyWorkDone doesn't get called.

Changes done:

  • When surface_out is null, call NotifyWorkDone on all pending works.

Tests done:

  • Play VBR and non-VBR video files, and ensure smooth playback.

Tracked-On: OAM-129739

Variable bitrate video gets stuck after playing for a few seconds.

For variable bitrate video, the DecodeFrameAsync frequently gives null
value for surface_out. In such cases, the WaitWork is not called, and
hence, the NotifyWorkDone doesn't get called.

Changes done:
- When surface_out is null, call NotifyWorkDone on all pending works.

Tests done:
- Play VBR and non-VBR video files, and ensure smooth playback.

Tracked-On: OAM-129739
Signed-off-by: Anoob Anto K <[email protected]>
@Shao-Feng
Copy link
Contributor

Could you give comments what is the mfx_sts? in this case when surface_out is null?
It must be MORE_DATA or MORE_SURFACE, right?
If it is MFX_ERR_NONE, non-null surface_out is expected.
This patch looks like a WA, and hide the unexpected null surface_out, and will cause some expected frame missed

++m_uSyncedPointsCount;
}
}
} else {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is value returned by mfx_sts?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Engineering Build Not Started Engineering Build Not Started Pending Developer Approval Pending Developer Approval Pending PR Review Pending PR Review Valid commit message
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants