Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • gst-plugins-rs gst-plugins-rs
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 73
    • Issues 73
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 26
    • Merge requests 26
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GStreamer
  • gst-plugins-rsgst-plugins-rs
  • Merge requests
  • !667

Draft: audio: add Symphonia based parsers and decoders

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open François Laignel requested to merge fengalin/gst-plugins-rs:symphonia into main Feb 21, 2022
  • Overview 9
  • Commits 1
  • Pipelines 6
  • Changes 17

This MR aims at adding Symphonia based audio parsers and decoders for the containers and codecs with "excellent" support status.

Fixes #156

Progress:

  • Implement FLAC & MP3 decoders.
  • Fix above decoders with initial feedback.
  • Implement PCM & Vorbis decoders.
  • Implement Wave parser.
  • Get upstream improvements merged.
  • Take care of release constraints due to a potential breaking change.

Note about decoders src Caps

Symphonia comes with a built-in mechanism to export the unpadded sample buffers. This mechanism allows selecting the target sample format as well as the channels layout. I thought that was a good opportunity to make the decoders flexible. Caps negotiation with decoders' downstream element starts with the list of possible formats (the input format always appearing first) as well as channels layout variants. Since the initial Caps filter is not fixed, I couldn't rely on gst_audio::AudioDecoder::set_ouput_format to delegate Caps negotiation, so it's mostly handled manually by the decoders impl. I'm unsure if the way I implemented this is valid and optimal.

Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: symphonia