problems with changing frame rate with videorate element

Andres Gonzalez andres.agoralabs at gmail.com
Fri Apr 6 21:12:19 UTC 2018


Hi,

I have a pipeline like this:

   filesrc --> videoparse --> videoconvert --> videorate -->   codec, mux,
udpsink etc

The filesrc reads raw YUV files and then the pipeline streams them to
various devices for testing purposes. I want to be able to control the
framerate dynamically in realtime. So I am trying to use videorate to simply
drop some raw YUV frames to reduce the effective framerate before the frames
even get down stream to the encoder/mux/udpsink.  I initialize the pipeline
with the original framerate of the YUV file and that will be the maximum
framerate. The videorate element has a property  "drop-only"  and "max-rate"
so I just set the max-rate to the desired reduced framerate.

I am getting the following warnings and then an EOS:

basetransform
gstbasetransform.c:1414:gst_base_transform_setcaps:<VideoRate-100> transform
could not transform video/x-raw, format=(string)I420, width=(int)720,
height=(int)480, interlace-mode=(string)progressive,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg,
colorimetry=(string)bt601, framerate=(fraction)30/1 in anything we support
WARN basetransform
gstbasetransform.c:1474:gst_base_transform_reconfigure:<VideoRate-100>
warning: not negotiated
WARN basetransform
gstbasetransform.c:1474:gst_base_transform_reconfigure:<VideoRate-100>
warning: not negotiated
WARN basesrc gstbasesrc.c:2948:gst_base_src_loop:<VideoFileSrc-100> error:
Internal data flow error.
WARN  basesrc gstbasesrc.c:2948:gst_base_src_loop:<VideoFileSrc-100> error:
streaming task paused, reason not-negotiated (-4)
 
I have used the videorate element before to just drop frames if the max-rate
was lower than the actual framerate. So I am confused as to why the pipeline
is now attempting to reconfigure the caps. If I have a pipeline set for a
framerate of 30 fps, and then set the front-end videorate max-rate to 20
fps, I thought the videorate would just drop the extra frames (assuming
"drop-only" is set to true).

All I need to do is adjust the framerate dynamically from a maximum value
before it gets to the encoder and down stream elements. This is just for
testing purposes so I don't care how the reduced-framerate video will appear
jerky, I am just testing how my target devices handle different framerates.

Thanks,
-Andres










--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list