GStreamer用playbin添加探针

时间:2015-08-20 23:34:59

标签: gstreamer

以下代码在每个框架显示并且运行良好时添加回调:

pipeline = gst_parse_launch("filesrc location=/path ! decodebin ! autovideosink", &error);

video_sink = gst_bin_get_by_interface(GST_BIN(pipeline), GST_TYPE_VIDEO_OVERLAY);

GstPad *pad = gst_element_get_static_pad(video_sink, "sink");

gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_BUFFER, (GstPadProbeCallback)cb_have_data, data, NULL);

以下代码添加了相同的回调,但从未调用过:

pipeline = gst_parse_launch("playbin uri=file:///path", &error);

video_sink = gst_bin_get_by_interface(GST_BIN(pipeline), GST_TYPE_VIDEO_OVERLAY);

GstPad *pad = gst_element_get_static_pad(video_sink, "sink");

gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_BUFFER, (GstPadProbeCallback)cb_have_data, data, NULL);

知道为什么以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

playbin没有输入垫和没有输出垫,所以你不能放一个 探头,因为探头必须放在垫子上。

但是,您可以运行get-video-pad动作信号 playbin,它可以连接探针。