Commit graph

365 commits

Author SHA1 Message Date
Seungha Yang
4380d57779 compositor: Update conversion info in property setter
... not in getter. Otherwise, video-converter will not be updated
with new width/height

https://bugzilla.gnome.org/show_bug.cgi?id=796828
2018-07-18 14:41:31 +03:00
Matthew Waters
3a3577f826 glvideomixer: fix default placement when different sized output
i.e. when expanding from 320x240 to 800x600, the resulting frame should
appear in the top left corner, not the middle.

https://bugzilla.gnome.org/show_bug.cgi?id=794401
2018-07-12 12:48:39 +10:00
Daniel Klamt
32c7249c5e glvideomixer: Moves the objects to zero on z axis
Matches the output from a similar glimagesink pipeline when
rotating from an upstream gltransformation passed through
the affine transformation meta with xpos/ypos being set.

https://bugzilla.gnome.org/show_bug.cgi?id=794401
2018-07-12 12:46:40 +10:00
Nicolas Dufresne
443b321ca1 glvideomixer: Fix coding style 2018-07-10 09:45:31 -04:00
Nicolas Dufresne
5958b0bd32 glvideomixer: Add missing string.h include 2018-07-10 09:42:47 -04:00
Daniel Klamt
b1bd804cb3 Moved the pad offset and aspect ratio to a matrix so it will be added in view space and not in world space
https://bugzilla.gnome.org/show_bug.cgi?id=794401
2018-07-10 20:31:26 +10:00
Tim-Philipp Müller
b342955a64 videoaggregator: Update for g_type_class_add_private() deprecation in recent GLib 2018-06-24 01:47:29 +02:00
Tim-Philipp Müller
69534fe9a0 gl: Update for g_type_class_add_private() deprecation in recent GLib 2018-06-24 01:37:08 +02:00
Seungha Yang
5934fb1bb6 videoaggregator: Fix string leak
gst_video_colorimetry_to_string() returns allocated memory which
must be freed.

https://bugzilla.gnome.org/show_bug.cgi?id=796596
2018-06-15 10:17:14 -04:00
Tim-Philipp Müller
ecd58f2775 videoaggregator: log an ERROR if we're going to return a flow error 2018-06-11 13:48:09 +01:00
Olivier Crête
91692122d3 videoaggregator: Remove custom get_next_time implementation
GstAggregator now has the same thing in the simple implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=795486
2018-05-16 22:24:18 +02:00
Sebastian Dröge
c43bae0a42 videoaggregator: Set video-meta option on buffer pool configuration correctly
CID 1435451
2018-05-07 17:53:32 +03:00
Sebastian Dröge
4291ee94c4 videoaggregator: First override set/get_property vfuncs, then install properties
Gives assertions otherwise.
2018-05-07 09:17:16 +02:00
Sebastian Dröge
73f843539d videoaggregator: Some more documentation fixes 2018-05-06 16:49:57 +02:00
Mathieu Duponchelle
1492fb4ef9 videoaggregator: expose converter-config on convert pads
This in order to allow users control over the conversion
process, for example the scaling method.
2018-05-06 16:45:43 +02:00
Sebastian Dröge
049877e5d0 videoaggregator: Fix up documentation some more 2018-05-06 16:43:32 +02:00
Sebastian Dröge
9d6d46f4cb videoaggregator: Clean up header and update docs a bit 2018-05-06 16:22:01 +02:00
Sebastian Dröge
dbb21615c4 videoaggregator: Rename get_output_buffer() to create_output_buffer()
For consistency with GstAudioAggregator.
2018-05-06 16:05:28 +02:00
Sebastian Dröge
429e6c8532 videoaggregator: Validate pool configuration and create a new pool if it just does not work
Also pass the given allocator to the pool if one is set.
2018-05-06 15:49:36 +02:00
Sebastian Dröge
33a8e28207 videoaggregator: Switch to a GstVideoAggregatorConvertPad subclass
This moves all the conversion related code to a single place, allows
less code-duplication inside compositor and makes the glmixer code less
awkward. It's also the same pattern as used by GstAudioAggregator.
2018-05-06 15:22:51 +02:00
Sebastian Dröge
d37e778692 glmixer: Include string.h for memset()
gstglmixer.c:143:5: error: implicit declaration of function ‘memset’ [-Werror=implicit-function-declaration]
     memset (prepared_frame, 0, sizeof (GstVideoFrame));
     ^~~~~~
gstglmixer.c:143:5: error: incompatible implicit declaration of built-in function ‘memset’ [-Werror]
2018-05-05 17:48:30 +02:00
Sebastian Dröge
b73b7230d2 videoaggregator: Remove sink_non_alpha_caps class field
This is only used for caching reasons and should never actually be in
the public API. If this is ever a bottleneck later, caching around a
class private struct could be implemented.
2018-05-05 16:32:19 +02:00
Sebastian Dröge
233ee9f077 videoaggregator: Move needs_alpha pad field to the private struct
And also trigger renegotiation if the value has changed.

https://bugzilla.gnome.org/show_bug.cgi?id=795836
2018-05-05 16:32:19 +02:00
Sebastian Dröge
1c8110ab17 videoaggregator: Move aggregated_frame and the pad buffer into the private struct
The aggregated_frame is now called prepared_frame and passed to the
prepare_frame and cleanup_frame virtual methods directly. For the
currently queued buffer there is a method on the video aggregator pad
now.
2018-05-05 16:32:19 +02:00
Sebastian Dröge
404b802846 glmixer: Move frame/texture mapping/unmapping into prepare/clean_frame
Previously we assumed that the texture ID is going to be valid even
after unmapping the frame, as it was immediately unmapped before even
being used. Now we only unmap once we're done with the texture.
2018-05-05 12:17:34 +02:00
Sebastian Dröge
8b231d502c videoaggregator: Move property storage to private pad struct 2018-05-04 17:18:12 +02:00
Sebastian Dröge
51c359dda6 videoaggregator: Rename ignore-eos pad property to repeat-after-eos
What it does is to repeat the last frame forever after EOS, it does not
literally ignore EOS.
2018-05-04 16:46:00 +02:00
Sebastian Dröge
a240fb7997 videoaggregator: Move GstChildProxy implementations into leaf classes
Not every subclass will want to expose the pads via the interface.

https://bugzilla.gnome.org/show_bug.cgi?id=739011
2018-05-04 16:13:16 +02:00
Sebastian Dröge
c13357f22b videoaggregator: Get rid of separate header for the aggregator pad 2018-05-04 15:35:52 +02:00
Xavier Claessens
9ae9d2686f Meson: Generate pc file for all plugins in bad
https://bugzilla.gnome.org/show_bug.cgi?id=794568
2018-04-25 11:08:09 +01:00
Tim-Philipp Müller
b69e7eef8b video: GST_EXPORT -> GST_URI_VIDEO_BAD_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
2018-03-13 13:36:33 +00:00
Mathieu Duponchelle
b59da8eced Port to latest GstAggregator segment API
The aggregator segment is now exposed on the src pad

https://bugzilla.gnome.org/show_bug.cgi?id=793946
2018-03-01 15:37:06 +01:00
Tim-Philipp Müller
ea30f86ccc Dist compositor crossfade example and pythons script for meson build
And add to autotools build so it gets disted.
2018-02-15 18:51:44 +00:00
Edward Hervey
3b9843d13b Update ORC fallback disted code 2018-02-14 14:36:00 +01:00
Vincent Penquerc'h
6df4606044 glvideomixer: fix vertex_buffer leak
We call the base class first as this will remove the pad from
the aggregator, thus stopping misc callbacks from being called,
one of which (process_textures) will recreate the vertex_buffer
if it is destroyed

https://bugzilla.gnome.org/show_bug.cgi?id=760873
2018-01-29 09:58:00 +00:00
Mathieu Duponchelle
a4f609f847 videoaggregatorpad: implement skip_buffer
Skip buffers from sources with a framerate higher than the output
framerate.

https://bugzilla.gnome.org/show_bug.cgi?id=781928
2018-01-23 20:19:38 +01:00
Tim-Philipp Müller
944f74b834 Update for renamed aggregator pad API
https://bugzilla.gnome.org/show_bug.cgi?id=791204
2018-01-23 09:01:00 +00:00
Tim-Philipp Müller
2b933a2827 Remove GstAggregator from -bad, moved to core
https://bugzilla.gnome.org/show_bug.cgi?id=739010
2017-12-02 16:14:36 +00:00
Edward Hervey
eb491b9a62 videoaggregator: Don't leak string
The result of gst_video_colorimetry_to_string () needs to be free'd
2017-11-25 12:49:43 +01:00
Mathieu Duponchelle
14f886b7b0 aggregator: Remove klass->sinkpads_type
This posed problems for the python bindings (and possibly others).

Instead, subclasses now use add_pad_template_with_gtype.

https://bugzilla.gnome.org/show_bug.cgi?id=789986
2017-11-22 16:52:29 +01:00
Tim-Philipp Müller
96e9eb1fd3 videoaggregator: use new gst_element_foreach_sink_pad()
Instead of gst_aggregator_iterate_sinkpads() which will
soon be removed.

https://bugzilla.gnome.org/show_bug.cgi?id=785679
2017-11-02 13:02:14 +00:00
Tim-Philipp Müller
e42344a25c videoaggregator: add CAST macros 2017-11-02 13:02:14 +00:00
Tim-Philipp Müller
b798cfbece gl: use new gst_element_foreach_sink_pad()
Instead of gst_aggregator_iterate_sinkpads() which will
soon be removed.

https://bugzilla.gnome.org/show_bug.cgi?id=785679
2017-11-02 12:47:28 +00:00
Tim-Philipp Müller
eca9739bca videoaggregator: drop ABI compat in padding for new struct member
Don't really have to do that while it's in -bad and most users
are in-tree anyway.
2017-11-02 11:57:24 +00:00
Tim-Philipp Müller
6c79262b6e videoaggregator: use GstFlowReturn for flow returns 2017-10-13 11:46:09 +01:00
Ponnam Srinivas
0ffa10652a glmixer: Unmap video frame in error case
https://bugzilla.gnome.org/show_bug.cgi?id=788127
2017-09-26 11:12:04 +03:00
Haihua Hu
0fc911c7fe glvidemixer: need reconfigure output gemotry after caps renegotiated 2017-09-21 11:59:32 +10:00
Matthew Waters
12c8a7c0af Revert "glvideomixer: need update output geometry after src caps reconfigure"
This reverts commit d6e538dc56.
2017-09-21 11:59:22 +10:00
Haihua Hu
88fff68fc0 glvideomixer: need update output geometry after src caps reconfigure
Need update output geometry when sink caps changed and use
gst_structure_set to update caps if structure is fixed

https://bugzilla.gnome.org/show_bug.cgi?id=787820
2017-09-21 11:56:13 +10:00
Nicolas Dufresne
c1f524f3a8 Request minimum buffer even if need_pool is FALSE
When tee is used, it will not request a pool, but still it wants to
know how many buffers are required.

https://bugzilla.gnome.org/show_bug.cgi?id=730758
2017-09-06 14:19:37 -04:00