mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 10:11:08 +00:00
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:
parent
0e93fd2747
commit
9f44f8ecc2
6 changed files with 27 additions and 9 deletions
|
@ -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
|
||||
|
|
|
@ -437,6 +437,8 @@ 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")) {
|
||||
|
|
19
gst/gstpad.c
19
gst/gstpad.c
|
@ -957,6 +957,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)));
|
||||
|
||||
GST_DEBUG (GST_CAT_ELEMENT_PADS, "caps compatibility check %s\n", (matchtempl?"ok":"fail"));
|
||||
|
@ -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");
|
||||
|
|
|
@ -1043,6 +1043,7 @@ gst_props_load_thyself (xmlNodePtr parent)
|
|||
|
||||
entry = gst_props_load_thyself_func (field);
|
||||
|
||||
if (entry)
|
||||
props->properties = g_list_insert_sorted (props->properties, entry, props_compare_func);
|
||||
}
|
||||
field = field->next;
|
||||
|
|
|
@ -40,7 +40,7 @@ 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++;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue