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

Implement set audio profile from demuxer #1356

Merged
merged 8 commits into from
Aug 24, 2023

Conversation

CastagnaIT
Copy link
Collaborator

@CastagnaIT CastagnaIT commented Aug 16, 2023

Description

The idea is use the "full codec string" (RFC 6381) to set the codec profile as hint from manifest data,
so that not influence decoders, then when start play the stream we set the right profile provided by demuxers.

fix #650

references used to implement Atmos signal as codec DD+ profile:
https://developer.apple.com/documentation/http-live-streaming/hls-authoring-specification-for-apple-devices-appendixes
https://ott.dolby.com/OnDelKits/DDP/Dolby_Digital_Plus_Online_Delivery_Kit_v1.5/Documentation/Content_Creation/SDM/help_files/topics/ddp_mpeg_dash_c_signal_atmos_in_isobmf_2.html

Smooth streaming manifest case
this manifest works differents and its more complex find a good solution due to handmade Movie Atoms,
so its use CSession::CreateMovieAtom to allow CFragmentedSampleReader to determinate codec type,
but currently create an appropriate audio SampleDescription require some code reworks and will not be considered here.
This means that for now smooth streaming cases there are no codec profiles.

This PR depends from xbmc PR's:
xbmc/xbmc#23524
xbmc/xbmc#23541

BEFORE
immagine
AFTER
immagine

Motivation and context

Set the missing audio profile and allow distinguish from kodi GUI audio track list the type of codec since multiple tracks could have same characteristics with same language, but different codec quality

How has this been tested?

For HLS, following sample include most common audio codec types included atmos:
https://devstreaming-cdn.apple.com/videos/streaming/examples/adv_dv_atmos/main.m3u8

Smooth streaming, no changes, read note in description

DASH Atmos: https://ott.dolby.com/OnDelKits/DDP/Dolby_Digital_Plus_Online_Delivery_Kit_v1.4.1/Test_Signals/muxed_streams/DASH/OnDemand_MPD/ChID_voices_1280x720p_25fps_h264_6ch_640kbps_ddp_joc.mpd

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:

  • I have read the Contributing document
  • My code follows the Code Guidelines of this project
  • My change requires a change to the Wiki documentation
  • I have updated the documentation accordingly

@CastagnaIT CastagnaIT added the WIP label Aug 16, 2023
@CastagnaIT CastagnaIT force-pushed the audioProfiles branch 2 times, most recently from 1cad635 to 88682a8 Compare August 17, 2023 09:03
@CastagnaIT CastagnaIT added Type: Improvement non-breaking change which improves existing functionality v21 Omega labels Aug 17, 2023
@CastagnaIT CastagnaIT marked this pull request as ready for review August 21, 2023 13:31
@CastagnaIT CastagnaIT removed the WIP label Aug 21, 2023
@CastagnaIT
Copy link
Collaborator Author

@glennguy in awaiting that xbmc PR's are merged, you can prepare review

@glennguy
Copy link
Contributor

Looks good!

@CastagnaIT CastagnaIT merged commit f6814cd into xbmc:Omega Aug 24, 2023
9 checks passed
@CastagnaIT CastagnaIT deleted the audioProfiles branch August 24, 2023 13:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Improvement non-breaking change which improves existing functionality v21 Omega
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support more audio codecs (Atmos & HE-AAC)
2 participants