Added a plain X videosink, the videosink uses capsnego. adjusted the v4lsrc so that it uses capsnego on the src pad

Original commit message from CVS:
Added a plain X videosink, the videosink uses capsnego.
adjusted the v4lsrc so that it uses capsnego on the src pad
Small fixed to capsnego and the properties/caps.
This commit is contained in:
Wim Taymans 2001-03-29 22:32:00 +00:00
parent 0e93fd2747
commit 9f44f8ecc2
6 changed files with 27 additions and 9 deletions

View file

@ -785,6 +785,7 @@ plugins/visualization/synaesthesia/Makefile
plugins/visualization/smoothwave/Makefile
plugins/videosink/Makefile
plugins/videoscale/Makefile
plugins/xvideosink/Makefile
plugins/wav/Makefile
plugins/dvdsrc/Makefile
plugins/vcdsrc/Makefile

View file

@ -436,6 +436,8 @@ GstCaps*
gst_caps_append (GstCaps *caps, GstCaps *capstoadd)
{
GstCaps *orig = caps;
g_return_val_if_fail (caps != capstoadd, caps);
if (caps == NULL)
return capstoadd;
@ -462,6 +464,8 @@ gst_caps_prepend (GstCaps *caps, GstCaps *capstoadd)
{
GstCaps *orig = capstoadd;
g_return_val_if_fail (caps != capstoadd, caps);
if (capstoadd == NULL)
return caps;
@ -625,6 +629,7 @@ gst_caps_load_thyself (xmlNodePtr parent)
caps->refcount = 1;
caps->lock = g_mutex_new ();
caps->next = NULL;
while (subfield) {
if (!strcmp (subfield->name, "name")) {

View file

@ -956,6 +956,18 @@ gst_pad_renegotiate_func (GstPad *pad, GstPad *peerpad, GstCaps **newcaps, gint
do {
gboolean matchtempl;
if (!*newcaps) {
if (otherpad->negotiatefunc) {
GstRealPad *temp;
otherpad->negotiatefunc (GST_PAD (otherpad), newcaps, *counter);
temp = otherpad;
otherpad = currentpad;
currentpad = temp;
}
}
matchtempl = gst_caps_check_compatibility (*newcaps, gst_pad_get_padtemplate_caps (GST_PAD (otherpad)));
@ -977,12 +989,12 @@ gst_pad_renegotiate_func (GstPad *pad, GstPad *peerpad, GstCaps **newcaps, gint
}
else {
*newcaps = GST_PAD_CAPS (otherpad);
gst_caps_ref(*newcaps);
if (*newcaps) gst_caps_ref(*newcaps);
}
}
else {
*newcaps = GST_PAD_CAPS (otherpad);
gst_caps_ref(*newcaps);
if (*newcaps) gst_caps_ref(*newcaps);
}
(*counter)++;
@ -1053,9 +1065,8 @@ gst_pad_renegotiate (GstPad *pad)
GST_DEBUG_PAD_NAME(pad), GST_DEBUG_PAD_NAME(peerpad));
newcaps = GST_PAD_CAPS (pad);
g_assert (newcaps != NULL);
result = gst_pad_renegotiate_func (pad, GST_PAD (peerpad), &newcaps, &counter);
result = gst_pad_renegotiate_func (GST_PAD (currentpad), GST_PAD (otherpad), &newcaps, &counter);
if (result) {
GST_DEBUG (GST_CAT_ELEMENT_PADS, "pads aggreed on caps :)\n");

View file

@ -1043,7 +1043,8 @@ gst_props_load_thyself (xmlNodePtr parent)
entry = gst_props_load_thyself_func (field);
props->properties = g_list_insert_sorted (props->properties, entry, props_compare_func);
if (entry)
props->properties = g_list_insert_sorted (props->properties, entry, props_compare_func);
}
field = field->next;
}

View file

@ -40,11 +40,11 @@ plugin_init (GModule *module)
while (_factories[i].mime) {
gst_type_register (&_factories[i]);
gst_plugin_add_type (plugin, &_factories[i]);
// DEBUG("added factory #%d '%s'\n",i,_factories[i].mime);
GST_DEBUG(0, "added factory #%d '%s'\n",i,_factories[i].mime);
i++;
}
// gst_info ("gsttypes: loaded %d standard types\n",i);
//gst_info ("gsttypes: loaded %d standard types\n",i);
return plugin;
}

View file

@ -3,7 +3,7 @@
noinst_PROGRAMS = qtest spectrum record wave mp3 teardown buffer mp3parse \
mpeg2parse mp1parse mp3play ac3parse ac3play dvdcat fake cobin videotest \
aviparse vidcapture avi2mpg mp2tomp1 mp1tomp1 pipetest \
vidcapture2 mp2toavi mp3tovorbis mpeg2parse2 xmmstest
vidcapture2 mp2toavi mp3tovorbis mpeg2parse2 xmmstest videotest2
SUBDIRS = xml bindings