Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[webOS] Audio sink improvements #23295

Merged
merged 6 commits into from May 30, 2023

Conversation

sundermann
Copy link
Contributor

Description

Fix a couple of issues with Starfish sink

Fixes #23288

Motivation and context

As reported in #23288 E-AC3 was broken. It also fixes a couple of A/V sync problems that had to be tackled for proper E-AC3 support

How has this been tested?

OLED77C28LB / webOS 7/22

What is the effect on users?

Screenshots (if appropriate):

Types of change

  • Bug fix (non-breaking change which fixes an issue)
  • Clean up (non-breaking change which removes non-working, unmaintained functionality)
  • Improvement (non-breaking change which improves existing functionality)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that will cause existing functionality to change)
  • Cosmetic change (non-breaking change that doesn't touch code)
  • None of the above (please explain below)

Checklist:

  • My code follows the Code Guidelines of this project
  • My change requires a change to the documentation, either Doxygen or wiki
  • I have updated the documentation accordingly
  • I have read the Contributing document
  • I have added tests to cover my change
  • All new and existing tests passed

Since we set the queue and source buffer each to 8 * frameSize the cache was returning a too small duration
This was just really a magic number and it seems it's not needed anymore with the cache size fix
This is intended for game mode and seems to make things worse and disables some TV processing features
We should only increase the audio pts when the packet was fully consumed by the sink. With the first feed we don't increase pts because we want the pipeline to start at timestamp 0
We assume the channel count here because the information from AEStreamInfo is incorrect. This is probably correct for a lot of files and additionally it seems that the pipeline is fine with a wrong channel count (this might only be true for certain devices, because there is probably a reason for why the pipeline wants this information) We are also missing out on the EAC3-JOC information for the pipeline.
The field m_ac3FrameSize was never updated with the concatenated value of the independent and dependent substream
@sundermann sundermann changed the title Feature/web os audio sink [webOS] Audio sink improvements May 17, 2023
@wsnipex wsnipex added Type: Fix non-breaking change which fixes an issue Type: Improvement non-breaking change which improves existing functionality Component: Audio v21 Omega Platform: webOS labels May 18, 2023
@wsnipex wsnipex added this to the Omega 21.0 Alpha 2 milestone May 18, 2023
@csdougliss
Copy link
Contributor

csdougliss commented May 18, 2023

Can confirm EAC-3 is working and A/V sync appears improved following this PR.

@csdougliss
Copy link
Contributor

@fritsch @enen92 Can this PR be reviewed? Thanks

@wsnipex wsnipex requested a review from fritsch May 25, 2023 08:43
Copy link
Member

@fritsch fritsch left a comment

Choose a reason for hiding this comment

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

Thanks much. The delay calculation of the sink itself still looks like a bit of guess work ;-). But yeah, most likely not possible to get that 100% right.

Thanks for the AEStreamInfo change, makes sense.

@sundermann sundermann merged commit 9c07f61 into xbmc:master May 30, 2023
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Audio Platform: webOS Type: Fix non-breaking change which fixes an issue Type: Improvement non-breaking change which improves existing functionality v21 Omega
Projects
None yet
Development

Successfully merging this pull request may close these issues.

webos: EAC-3 Dolby Digital Plus passthrough is broken, PCM received instead
4 participants