Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • gst-plugins-bad gst-plugins-bad
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 973
    • Issues 973
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 103
    • Merge requests 103
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and 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
  • GStreamerGStreamer
  • gst-plugins-badgst-plugins-bad
  • Issues
  • #1314
Closed
Open
Issue created Jun 11, 2020 by Daniel Gomez@daniel.qtec👾

proxy: gst-stream-error-quark: Internal data stream error

Hi guys,

I'm using proxy plugin to decouple pipelines but I have an issue when I try to decouple two pipelines and use h264 data in between. Just mention that the problem does not exist if:

  1. proxysink/proxysrc are part of the same pipeline.
  2. I use RAW data instead.
  3. h264 data is inside a container like 'mpegts'.

example 1

This is 1 pipeline executing 2 'sub' pipelines which are communicated through proxysink/proxysrc. Here, h264 data flows properly from one sub-pipeline to the other.

Here how the components are linked inside the same pipeline:

sub-pipeline1:
filesrc ! qtdemux ! multiqueue ! \
h264parse ! video/x-h264,stream-format=byte-stream,aligment=au ! queue ! proxysink \
\
sub-pipeline2:
proxysrc ! avdec_h264 ! video/x-raw ! queue ! autovideosink 

Here the graph: example0-proxy-r0

example 2

This is when I try the above but sub-pipelines are executed in different pipelines. So, something like:

Pipeline 1:

sub-pipeline1:
filesrc ! qtdemux ! multiqueue ! \
h264parse ! video/x-h264,stream-format=byte-stream,aligment=au ! queue ! proxysink

Pipeline 2:

sub-pipeline1:
proxysrc ! avdec_h264 ! video/x-raw ! queue ! autovideosink 

In this case, I get the next error:

0:00:00.090315812 48480      0x246ab60 WARN                 qtdemux qtdemux.c:6605:gst_qtdemux_loop:<qtdemux0> error: Internal data stream error.
0:00:00.090391172 48480      0x246ab60 WARN                 qtdemux qtdemux.c:6605:gst_qtdemux_loop:<qtdemux0> error: streaming stopped, reason error (-5)

Error: gst-stream-error-quark: Internal data stream error. (1): qtdemux.c(6605): gst_qtdemux_loop (): /GstPipeline:b_pipedoc_src/GstQTDemux:qtdemux0:
streaming stopped, reason error (-5)

Here the graph for the 1st pipeline:

example0-proxy-r1-p1

Here the graph for the 2st pipeline:

example0-proxy-r1-p2

Questions

Any idea why this is happening?

What is funny is that if you enable debug level 7 then, the 2nd example works fine.

Here the log file with level 5 in case it can help: ex0-proxy-r1.log

Thanks!

Assignee
Assign to
Time tracking