RidgeRun / gst-interpipe

GStreamer plug-in for interpipeline communication
Other
143 stars 64 forks source link

bug: extra buffer copy per interpipesrc-sink pair #82

Open linus-gates opened 3 years ago

linus-gates commented 3 years ago

Hello,

I will explain using a following simple example:

  1. run: gst-launch-1.0 audiotestsrc num_buffers=1 ! filesink location=./out
    • out contains a single buffer of size 2048B.
  2. run: gst-launch-1.0 audiotestsrc num_buffers=1 interpipesink name=input_sink forward-eos=true async=false interpipesrc listen-to=input_sink ! filesink location=./out
    • out contains two buffers, that are identical, total file size 4096B (i also splitted the buffers in out with multifilesink and after a CRC check both files identical)

I would expect in this example the output to be the same for both cases but unfortunately it is not happening. This happens for each interpipe src-sink pair in the system, so if i had 2 pairs, i would get extra two buffers in my system.

Thanks !

dzhang28 commented 1 year ago

This is expected behavior from appsink (interpipesink derives from appsink). The preroll sample is always pushed downstream twice.