- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试下面的基本管道。如果我在没有 caps 函数的情况下运行管道,它会直接通过(假设相同的 I/O 格式)。一旦我添加了上限,预卷就会开始,但视频不会继续到达接收器输出。
我编码错了吗?
谢谢艺术 #include <gst/gst.h>
#include <glib.h>
static void
on_pad_added (GstElement *element,
GstPad *pad,
gpointer data)
{
GstPad *sinkpad;
GstElement *decoder = (GstElement *) data;
g_print ("Dynamic pad created, linking out/in \n");
sinkpad = gst_element_get_static_pad (decoder, "sink");
gst_pad_link (pad, sinkpad);
gst_object_unref (sinkpad);
}
int
main (int argc,
char *argv[])
{
GMainLoop *loop;
gboolean link_ok;
GstElement *pipeline, *source, *decoder, *ffcs, *vidsc, *capsfout, *sink;
GstBus *bus;
GstCaps *caps;
/* Initialisation */
gst_init (&argc, &argv);
loop = g_main_loop_new (NULL, FALSE);
/* Create gstreamer elements */
pipeline = gst_pipeline_new ("video-player");
source = gst_element_factory_make ("filesrc", "file-source");
decoder = gst_element_factory_make ("decodebin2", "dec-bin2");
ffcs = gst_element_factory_make ("ffmpegcolorspace", "ffcs");
vidsc = gst_element_factory_make ("videoscale", "vidsc");
capsfout = gst_element_factory_make ("capsfilter", "capsfout");
sink = gst_element_factory_make ("filesink", "vidout");
if (!pipeline || !source || !decoder || !ffcs || !vidsc || !capsfout || !sink) {
g_printerr ("One element could not be created. Exiting.\n");
return -1;
}
/* we set the input/output filename to the source element */
g_object_set (G_OBJECT (source), "location", argv[1], NULL);
g_object_set (G_OBJECT (sink), "location", argv[2], NULL);
bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
gst_bin_add_many (GST_BIN (pipeline),
source, decoder, ffcs, vidsc, capsfout, sink, NULL);
/* we link the elements together */
gst_element_link (source, decoder);
gst_element_link (decoder, ffcs);
gst_element_link (ffcs, vidsc);
caps = gst_caps_new_simple("video/x-raw-yuv",
"format", GST_TYPE_FOURCC, GST_MAKE_FOURCC ('I', '4', '2', '0'),
"width", G_TYPE_INT, 384,
"height", G_TYPE_INT, 216,
"framerate", GST_TYPE_FRACTION, 25, 1,
NULL);
link_ok = gst_element_link_filtered(vidsc,sink,caps);
gst_caps_unref (caps);
if (!link_ok) {
g_warning ("Failed to link vidsc to sink!");
}else{
g_print("seems ok, no error reported?\n");
}
/* Set the pipeline to "playing" state*/
g_print ("Now playing: %s\n", argv[1]);
gst_element_set_state (pipeline, GST_STATE_PLAYING);
/* Iterate */
g_print ("Running...\n");
g_main_loop_run (loop);
/* Out of the main loop, clean up nicely */
g_print ("Returned, stopping playback\n");
gst_element_set_state (pipeline, GST_STATE_NULL);
g_print ("Deleting pipeline\n");
gst_object_unref (GST_OBJECT (pipeline));
return 0;
}
最佳答案
现在回答可能已经晚了,但您可能忘记在某些元素之间进行动态填充链接,并且您从未调用 on_pad_added
函数。我也遇到了同样的问题。
从那时起您是否尝试过添加它?例如,此行动态链接两个元素而不是 gst_element_link
:
g_signal_connect (decoder, "pad-added", G_CALLBACK (on_pad_added), ffcs);
关于gstreamer - 为什么 gstreamer caps 阻塞管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9135911/
使用这个通用元组类 public class Pair { private final T1 first; private final T2 second; public Pair(T1
我想不出执行此操作的递归算法。我的尝试是: void capValue(Node node) { if (node == null) return if (node.e
较新版本的 docker(我认为是 1.2 及更高版本)具有 --cap-add 功能。 这提供了对特性功能的细粒度控制,而无需使用 --privileged=true 打开所有内容。 我用谷歌搜索过
我开始使用 vim,我想重新映射一些键。有谁知道在 Lubuntu 中最简单的方法是什么。 谢谢 最佳答案 Caps Lock 键不能在 Vim 中映射,因为它不会自己生成键码。您可以在操作系统级别重
这是我的代码。 import java.util.stream.Stream; import java.util.List; import java.util.ArrayList; import ja
我想在 PyCharm 中使用 CapsLock-u 和 CapsLock-n 在代码和运行/终端之间切换。 在我的键盘上 u位于顶部,n在底部,这给了我一个很好的内存方法。 我不知道如何像这样配置我
我有一个值都是大写的对象,我想要 f.label帮助将其打印为全部大写 - 无需进行 CSS 转换。 现在,如果我有字符串 AAPL在我的对象中,f.label吐出来为 Aapl . 我不想使用 CS
我是电容器的新手,正在开发一个应用程序,我正在对代码进行更改并运行 ionic 构建 npx上限副本 npx盖帽开安卓 并且还推荐使用 npx cap sync代npx cap copy . 两者之间
print("Hello and welcome to your address book this program uses surnames or D.O.B to find people in
我在编写一些代码时遇到了一些让我烦恼的事情。我在下面的代码示例中收集了这两个示例。 cls1 行使用 lambda 表达式但不编译,而 cls2 行使用方法引用并编译。我知道如果我使用非泛型对象,我不
我一直在阅读有关名为Starcounter的数据库的信息。它声称可以处理“ NoSql”数据库只能处理的负载而不会降低一致性。据我了解CAP定理,如果保持一致性,则会失去可用性或分区容限。那么什么使S
分布式系统如何保持一致和可用-CA。因为当分区发生时,CA是不可能的。如果我们说不会发生分区,那么只有它们是CA,那么如果分区不会发生,那么所有CP或AP系统也将是CA。 最佳答案 不可以 如常提到的
我是 java 编程的初学者,并且在弄清楚如何限制代码中的金额时遇到问题。 我的代码有一个问题,该代码由 if-else if 语句组成,这更多的是如何限制奖金最高金额的问题。我希望我的奖金最高金额为
说到nosql分布式数据库系统,我们都知道它们都属于CAP定理的三取二。对于网络故障和节点故障不可避免的分布式集群,分区容忍是必要的,因此我们只能从可用性和一致性中选择一个。所以它基本上是 CP 或
python如何为视频制作一个简单的帽子。 Ideia:为 9 个均匀放置(在时间轴上)时间拍摄 9 个快照,然后在 JGP 中置换 我应该怎么做? PIL 是唯一的方法吗? (做我想做的事情并不容易
这个问题在这里已经有了答案: Is working past the end of a slice idiomatic? (2 个答案) 关闭 6 年前。 下面的go代码: var numbers4
我有一个 Silverlight 应用程序,它有两个不同的 XAP——一个由 HTML 页面静态加载的 InitialXAP 和一个从初始 XAP 中的代码加载的 DynamicXAP。 Dynami
In the wikipedia article on CAP Theorem( https://en.wikipedia.org/wiki/CAP_theorem ), it states (bol
在CAP定理中,Redis被指定为缺乏可用性(具有分区容错性和一致性)的数据库。 但是在很多地方,Redis 被认为是一种高可用的键值存储。 什么是对的?如果您能提供深入的答案,我将不胜感激。 最佳答
我被告知我必须放弃大型分布式系统中的事务保证,因为 CAP theorem说我不能拥有它。 我认为这是错误的,原因如下: 互联网路由非常可靠。 CAP 定理仅适用于两组事件机器无法通信的网络分区。 几
我是一名优秀的程序员,十分优秀!