Skip to content

Sinks get appended the sync=true flag, even if they don't support it #462

@rgon

Description

@rgon

Uxplay is adding sync=true (or false) to all sinks. See:

$ uxplay -async no -vs "identity" -d
GStreamer video pipeline will be:
"appsrc name=video_source ! queue ! h264parse ! decodebin ! videoconvert ! identity name=video_sink sync=true"

Due to the lines here (and audio equivalent):

g_string_append(launch, " sync=true");

However, some sinks do not accept the sync property, and thus error out.

Use case:

I am trying to spawn uxplay as a process within my application, in a use case related to #459. To avoid re-encoding video, I am using ipcpipelinesink/src to pass the pipeline between processes, which itself works great (see this gist I published for more info https://gist.github.com/rgon/4e9291e2325c78fad066858e826f2f47)

This makes special sense when embedding uxplay as a source in other multimedia applications (think streaming, car head unit, presentation, video calling, meeting centers), but it may be causing issues with other use cases.

Potential solutions:

  • Do not add sync property by default. Do we really need this?
  • Ternary sync value: true/false/default (probably required above)
  • Allow defining a fully custom pipeline

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions