mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-27 14:31:01 +00:00
Added a little test program for caps negotiation proxying.
Original commit message from CVS: Added a little test program for caps negotiation proxying.
This commit is contained in:
parent
095226658a
commit
8060026270
1 changed files with 62 additions and 0 deletions
62
tests/capsconnect.c
Normal file
62
tests/capsconnect.c
Normal file
|
@ -0,0 +1,62 @@
|
|||
#include <gst/gst.h>
|
||||
|
||||
int main(int argc,char *argv[])
|
||||
{
|
||||
gboolean testret;
|
||||
xmlDocPtr doc;
|
||||
xmlNodePtr parent;
|
||||
GstElement *mpg123;
|
||||
GstElement *mp3parse;
|
||||
GstElement *queue;
|
||||
GstPad *sinkpad;
|
||||
GstPad *srcpad;
|
||||
GstPad *qsinkpad;
|
||||
|
||||
doc = xmlNewDoc ("1.0");
|
||||
doc->xmlRootNode = xmlNewDocNode (doc, NULL, "Capabilities", NULL);
|
||||
|
||||
gst_init (&argc, &argv);
|
||||
|
||||
mpg123 = gst_elementfactory_make ("mpg123", "mpg123");
|
||||
g_assert (mpg123 != NULL);
|
||||
|
||||
sinkpad = gst_element_get_pad (mpg123, "sink");
|
||||
g_assert (sinkpad != NULL);
|
||||
|
||||
queue = gst_elementfactory_make ("queue", "queue");
|
||||
g_assert (queue != NULL);
|
||||
|
||||
srcpad = gst_element_get_pad (queue, "src");
|
||||
g_assert (srcpad != NULL);
|
||||
qsinkpad = gst_element_get_pad (queue, "sink");
|
||||
g_assert (qsinkpad != NULL);
|
||||
|
||||
parent = xmlNewChild (doc->xmlRootNode, NULL, "mpg123 caps", NULL);
|
||||
gst_caps_save_thyself (gst_pad_get_caps (sinkpad), parent);
|
||||
|
||||
parent = xmlNewChild (doc->xmlRootNode, NULL, "queue caps", NULL);
|
||||
gst_caps_save_thyself (gst_pad_get_caps (srcpad), parent);
|
||||
|
||||
gst_pad_connect (srcpad, sinkpad);
|
||||
|
||||
parent = xmlNewChild (doc->xmlRootNode, NULL, "queue caps after connect src", NULL);
|
||||
gst_caps_save_thyself (gst_pad_get_caps (srcpad), parent);
|
||||
|
||||
parent = xmlNewChild (doc->xmlRootNode, NULL, "queue caps after connect sink", NULL);
|
||||
gst_caps_save_thyself (gst_pad_get_caps (qsinkpad), parent);
|
||||
|
||||
mp3parse = gst_elementfactory_make ("mp3parse", "mp3parse");
|
||||
g_assert (mp3parse != NULL);
|
||||
|
||||
gst_pad_connect (gst_element_get_pad (mp3parse, "src"), qsinkpad);
|
||||
|
||||
parent = xmlNewChild (doc->xmlRootNode, NULL, "queue caps after connect sink", NULL);
|
||||
gst_caps_save_thyself (gst_pad_get_caps (qsinkpad), parent);
|
||||
|
||||
parent = xmlNewChild (doc->xmlRootNode, NULL, "mpg123 caps after connect sink", NULL);
|
||||
gst_caps_save_thyself (gst_pad_get_caps (sinkpad), parent);
|
||||
|
||||
xmlDocDump(stdout, doc);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in a new issue