Commit graph

57 commits

Author SHA1 Message Date
Jordan Petridis
26bbcae973 gstautoconvert.c: fix clang warnings
clang 10 is complaining about incompatible types due to the
glib typesystem.

```
gst-plugins-bad/gst/autoconvert/b5c3019@@gstautoconvert@sha/gstautoconvert.c.o' -c ../subprojects/gst-plugins-bad/gst/autoconvert/gstautoconvert.c
../subprojects/gst-plugins-bad/gst/autoconvert/gstautoconvert.c:898:8: error: incompatible pointer types passing 'typeof ((((void *)0))) *' (aka 'void **') to parameter of type 'GList **' (aka 'struct _GList **') [-Werror,-Wincompatible-pointer-types]
  if (!g_atomic_pointer_compare_and_exchange (&autoconvert->factories, NULL,
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gatomic.h:192:44: note: expanded from macro 'g_atomic_pointer_compare_and_exchange'
    __atomic_compare_exchange_n ((atomic), &gapcae_oldval, (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
                                           ^~~~~~~~~~~~~~
1 error generated.
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1487>
2020-08-04 11:37:52 +00:00
Nicolas Dufresne
416728f213 autoconvert: Fix lock-less exchange or free condition
Before this change, we would free the list we just have saved.

Fixes #1158
2019-12-19 22:35:18 +00:00
Aaron Boxer
6d3429af34 documentation: fixed a heap o' typos 2019-11-05 09:11:25 -05:00
Mathieu Duponchelle
102b1346e7 doc: fix element section documentations
Element sections were not rendered anymore after the hotdoc
port, fixing this revealed a few incorrect links.
2019-05-25 16:58:13 +02:00
James Stevenson
9d5d9897e5 autoconvert: Fix two memory leaks on error conditions
Both the sink_chain and sink_chain_list will neither pass
or free the buffer if the internal src pad doesn't exist yet.

https://bugzilla.gnome.org/show_bug.cgi?id=788035
2017-09-22 08:46:10 +01:00
Thibault Saunier
78022a6e0c docs: Port all docstring to gtk-doc markdown 2017-04-12 12:57:57 -03:00
Fabrice Bellet
aac4c10d0e autoconvert: fix a reconfigure event leak
https://bugzilla.gnome.org/show_bug.cgi?id=776726
2017-01-02 19:52:33 -03:00
Vineeth TM
8cdfb13658 bad: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
Olivier Crête
d673e7cd58 autoconvert: Add support for bufferlists 2015-11-16 21:53:48 -05:00
Olivier Crête
8e75bea378 autoconvert: Always give a valid reply to internal caps queries
Caps queries can always have a valid reply, either the filter or ANY.
If the caps are ANY, then accept-caps always returns TRUE.
2015-11-13 17:21:17 -05:00
Olivier Crête
1660538615 autoconvert: factories don't need the lock
An atomic is enough, they can only be set once.
2014-05-09 23:05:28 -04:00
Olivier Crête
c47c26bf1f Revert "autoconvert: Handle caps query on internal srcpad"
This is not needed anymore if the gst_pad_link checks nothing.

This reverts commit a303375a3f.
2014-05-09 23:04:26 -04:00
Olivier Crête
c0ff27959e autoconvert: No need to check anything when linking internal pads 2014-05-09 23:03:48 -04:00
Olivier Crête
4ccf7582a2 autoconvert: Don't ignore elements accepted ANY, it is valid 2014-05-09 23:03:43 -04:00
Olivier Crête
f3f6cdd451 autoconvert: Remove broken usage of the iterator
We're a subclass, so we can just take the object lock and iterate the list
directly.
2014-05-09 23:03:36 -04:00
Olivier Crête
907ffc7352 autoconvert: Process upstream getcaps
Process it like downstream getcaps
2014-05-09 23:03:29 -04:00
Olivier Crête
b852f13a54 autoconvert: Return the GList of factories, to a pointer to it. 2014-05-09 23:02:28 -04:00
Olivier Crête
9eeef09c80 autoconvert: subelement can only be change with stream lock held
It was already the case, now be more explicit about that, and remove useless
lock/ref/unlock/unref dances.
2014-05-09 23:02:23 -04:00
Olivier Crête
606ff3debd autoconvert: Keep a ref to the pads too
Simplifies the code
2014-05-09 23:02:16 -04:00
Olivier Crête
968b4a4969 autoconvert: Remove uneeded if()
NULL is valid GList
2014-05-09 23:02:12 -04:00
Olivier Crête
b76e564acf autoconvert: Always push reconfigure upstream too
A reconfigure could trigger a change of contents instead of just reconfiguring the internal element
2014-05-09 23:02:09 -04:00
Olivier Crête
ead6db4277 autoconvert: Remove unused internal parameter 2014-05-09 23:02:05 -04:00
Vincent Penquerc'h
336767d779 autoconvert: remove dead code
Those events were previously taken from a cached events list,
which was removed during the port to 0.11, but this bit stayed.

Coverity 1139684
2014-04-09 15:28:05 +01:00
Tim-Philipp Müller
9e1b75fda3 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Tim-Philipp Müller
32ba17cd0f Use gst_element_class_set_static_metadata()
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-10-17 17:46:34 +01:00
Olivier Crête
977f84d272 autoconvert: Look at all possibilities for accept-caps even if there is a selected subelement
If the accept-caps succeeds with a different subelement, then the subsequent
caps event will change the current subelement.
2012-09-11 18:53:43 -04:00
Jan Schmidt
a303375a3f autoconvert: Handle caps query on internal srcpad
Reply with ANY caps to ensure linking the internal src pad. This
might need more attention later, to reply with the real upstream caps
for the currently active element.
2012-09-01 16:09:59 -07:00
Jan Schmidt
ea707c1764 autoconvert: Don't drop upstream events due to silly typo 2012-08-31 07:06:50 -07:00
Tim-Philipp Müller
508b9ff51a autoconvert: don't access GstElementFactory structure directly 2012-05-19 15:34:25 +01:00
Wim Taymans
77299ba6ae fix for caps api changes 2012-03-11 19:06:59 +01:00
Olivier Crête
7aead77649 autoconvert: port to 0.11 2012-01-25 18:04:55 +01:00
Edward Hervey
f70a623418 Merge remote-tracking branch 'origin/master' into 0.11-premerge
Conflicts:
	docs/libs/Makefile.am
	ext/kate/gstkatetiger.c
	ext/opus/gstopusdec.c
	ext/xvid/gstxvidenc.c
	gst-libs/gst/basecamerabinsrc/Makefile.am
	gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c
	gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h
	gst-libs/gst/video/gstbasevideocodec.c
	gst-libs/gst/video/gstbasevideocodec.h
	gst-libs/gst/video/gstbasevideodecoder.c
	gst-libs/gst/video/gstbasevideoencoder.c
	gst/asfmux/gstasfmux.c
	gst/audiovisualizers/gstwavescope.c
	gst/camerabin2/gstcamerabin2.c
	gst/debugutils/gstcompare.c
	gst/frei0r/gstfrei0rmixer.c
	gst/mpegpsmux/mpegpsmux.c
	gst/mpegtsmux/mpegtsmux.c
	gst/mxf/mxfmux.c
	gst/videomeasure/gstvideomeasure_ssim.c
	gst/videoparsers/gsth264parse.c
	gst/videoparsers/gstmpeg4videoparse.c
2011-12-30 11:41:17 +01:00
Sebastian Dröge
dcf04269e1 autoconvert: Remove the initial-identity property from autoconvert
Initially creating an identity element to forward serialized
events downstream before any caps are known is broken behaviour.

Serialized events should only be forwarded downstream if the
caps are already known, otherwise autopluggers and other elements
using pad-blocks will fail.

This behaviour also doesn't work anymore after basetransform
was fixed to queue serialized events until the caps are known
as a result of fixing bug #659571.

See bug #599469, #665205.
2011-12-07 13:50:19 +01:00
Sebastian Dröge
2cdb069b9f autoconvert: Implement iterate_internal_links function on the sinkpad and srcpad 2011-12-05 08:57:29 +01:00
Vincent Penquerc'h
7521b597f4 various: fix pad template ref leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:08:27 +00:00
Vincent Penquerc'h
9674c5aefa autoconvert: merge caps instead of using union
It's a lot faster, and preserves caps ordering.

https://bugzilla.gnome.org/show_bug.cgi?id=663346
2011-11-07 12:16:37 +00:00
Sebastian Dröge
825052ba3d autoconvert: Fix some more leaks and reorganize unref code 2010-12-21 18:01:28 +01:00
benjamin gaignard
f0ebcba6c4 autoconvert: Avoid some leaks in autoconvert
unref sink and src pad after gst_pad_by_direction calls unref
element if gst_auto_convert_activate_element failed.

See bug #637553.
2010-12-21 17:50:20 +01:00
Olivier Crête
8c371e5c35 autoconvert: Use gst_caps_can_intersect() 2010-12-19 17:40:12 +05:30
Benjamin Gaignard
27ac6c3e47 autocolorspace: Add autoconvert based video format convert element
Fixes bug #636106.
2010-12-15 21:14:38 +01:00
Stefan Kost
0c22e1b954 various (gst): add missing G_PARAM_STATIC_STRINGS flags
Canonicalize property names as needed.
2010-10-19 15:47:17 +03:00
Sebastian Dröge
dab5cbb1c0 autoconvert: Don't use GST_FLOW_IS_FATAL() 2010-09-21 12:26:35 +02:00
Benjamin Otte
f96e4f1581 Add -Wmissing-declarations -Wmissing-prototypes to configure flags
And fix all warnings
2010-03-21 21:39:18 +01:00
Jan Schmidt
f46c247757 autoconvert: Fix previous commit: ensure we take a ref on the features 2009-11-04 23:32:07 +00:00
Jan Schmidt
7d53c39237 resindvd,autoconvert: Avoid depending on 0.10.26 API
Wait until after the next release to bump the core requirement.
Until then, don't use gst_plugin_feature_list_copy and
gst_pad_peer_get_caps_refed.
2009-11-04 23:17:33 +00:00
Jan Schmidt
570a0bb65c resindvd: Take a copy of the passed plugin features
Clarify the ownership of the internal plugin feature list by making
a copy of any passed list. Avoids crashes when freeing a passed list,
or leaks caused by not freeing any internally built list.
2009-11-02 11:33:19 +00:00
Jan Schmidt
32ebb79f0b autoconvert: Support installing identity as the initial child
Add the 'initial-identity' property, which inserts identity for
at startup for event passing, and replaces it with a new child
when the first buffer (and caps) actually arrives.

https://bugzilla.gnome.org/show_bug.cgi?id=599469
2009-10-27 12:23:24 +00:00
Jan Schmidt
55a3f6a08c autoconvert: Cache incoming new segment events and push to children.
Cache incoming new-segment info.

When installing a child element, inform it of the current segment info.

https://bugzilla.gnome.org/show_bug.cgi?id=599469
2009-10-27 12:23:24 +00:00
Jan Schmidt
ee8b143e95 autoconvert: Add some debug in factory caps intersection 2009-10-27 12:23:23 +00:00
Jan Schmidt
77e017143e autoconvert: Simple fixes.
Free the plugin feature list on dispose.
Output a debug message when downstream returns a fatal flow result
Fix awkward wording in a debug warning.
2009-10-27 12:23:23 +00:00