Skip to content

GitLab

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

Closed
Open
Created May 25, 2020 by Edward Hervey@bilboed🤘Owner

(uri)decodebin3: Remove custom force-sw-decoders property

Sadly I wasn't quite paying attention when !485 (merged) went in.

I'd very much like to have that force-sw-decoders property removed from (uri)decodebin3 and instead have a generic way of influencing what elements should be plugged/tried.

Proposal

Add a new signal for selecting a decoder if and only if there is more than one candidate decoder for a given stream.

/**
 * decoder-select
 *
 * Return : NULL to let (uri)decodebin3 do its own selection,
 * or the specific elementfactory from the candidates.
 */
GstElementFactory* decoder-select (GstElement *decodebin3,
                                   GstStream *stream,
                                   GValueArray *candidates)

The default implementation would return NULL to let decodebin3 do its (pre-force-sw-decoder-patch) standard behaviour. And playbin3 can still strip out candidates based on hardware flags, phase of the moon, day of the month or whatever you chose.

Use-cases

  • Match ideal decoder based on configured sink (ex: match optimal decoder to configured sink).
  • Avoid software decoders
    • FIXME What is the rationale for this use-case ?
Edited May 26, 2020 by Edward Hervey
Assignee
Assign to
Time tracking