Matthew Waters
0ec9bf6140
videoaggregator: fix up QoS handling for live sources
...
Only attempt adaptive drop when we are not live
https://bugzilla.gnome.org/show_bug.cgi?id=739996
2014-11-17 22:39:07 +11:00
Matthew Waters
d28854a625
glmixer: add read-only context property
2014-11-17 18:50:04 +11:00
Matthew Waters
f9c8268247
gl: remove the width/height fields from the caps to support frame resizing
...
It was previously only occuring with sysmem caps features
https://bugzilla.gnome.org/show_bug.cgi?id=739334
2014-11-11 14:23:55 +11:00
Sebastian Dröge
22825010c3
videoaggregator: Swap source/destination parameters of gst_video_converter_frame()
2014-11-03 16:13:23 +01:00
Matthew Waters
83c34503af
glmixer: advertise support for changing input caps mid-stream
...
https://bugzilla.gnome.org/show_bug.cgi?id=739334
2014-10-31 21:29:25 +11:00
Luis de Bethencourt
2bf4a94179
videoaggregator: remove storage of never used values
...
These two values are stored just before the function returns and they go out of
scope.
2014-10-30 14:52:13 +00:00
Matthew Waters
eb11906f01
glmixer: don't get the current caps from GstVideoInfo for the srcpad
...
It's missing the caps features needed.
2014-10-30 23:08:00 +11:00
Wang Xin-yu (王昕宇)
b151f564c2
glmixer:fix incorrect parameter passed to handle_set_context
2014-10-29 20:43:31 +11:00
Matthew Waters
33584480b5
glmixer: override the caps query in order to 'convert' capsfeatures
...
Otherwise, it is only possible for the sink pads and the src pads to
have the exact same caps features. We can convert from any feature
to another feature so support that.
2014-10-24 00:35:22 +11:00
Matthew Waters
6687d39734
glmixer: override the accept caps query in order to 'convert' capsfeatures
...
Otherwise, it is only possible for the sink pads and the src pads to
have the exact same caps features. We can convert from any feature
to another feature so support that.
2014-10-23 23:58:33 +11:00
Matthew Waters
340542edc7
gl: propogate other-context using GstContext
2014-10-23 23:58:33 +11:00
Matthew Waters
be214eac0f
glmixer: fixup eglimage include path
2014-10-21 06:04:10 +11:00
Matthew Waters
165cdd20a7
videoaggregator: fixate the parts of the caps we don't know how to deal with
...
fixes glvideomixer with video/x-raw,width=foo i.e. no format field.
2014-10-21 02:53:02 +11:00
Matthew Waters
7b4db67f6c
glbufferpool: add the GstVideoGLTextureUploadMeta buffer pool option
2014-10-21 02:00:09 +11:00
Matthew Waters
8bf2acba1d
videoaggregator: operate on caps rather than video info
...
Otherwise the CapsFeatures will be lost along with the possibility
of multiple output types and formats.
https://bugzilla.gnome.org/show_bug.cgi?id=738129
2014-10-21 01:14:36 +11:00
Sebastian Dröge
318b55e3ae
glmixer: Call the pad's parent class finalize method
2014-10-13 13:27:55 +02:00
Sebastian Dröge
21275caae5
glmixer: Only finalize the other context in finalize()
...
Otherwise we change a value of a property when going to READY state,
which is unexpected behaviour.
2014-10-13 13:27:11 +02:00
Sebastian Dröge
a92ffca745
glmixer: Add other-context property
2014-10-13 11:57:22 +02:00
Matthew Waters
b30f8985d5
aggregator: add latency query handling
2014-10-09 23:52:11 +11:00
Matthew Waters
9aa89185ed
videoaggregator: support unresponsive pads
...
Render unresponsive pads with the last video frame received.
2014-10-09 23:52:11 +11:00
Matthew Waters
1e84482f36
videoaggregator: remove the use of the queued buffer on sink pads
...
That data is now held by the aggregator class
2014-10-09 23:52:11 +11:00
Thibault Saunier
138e63fd52
videoaggregator: Do not wrongly set the aggregator.segment
...
The aggregator.segment is not to be initialized by the subclasses but
by the aggregator itself. Moreover, initializing it on start would make
us loose the information coming from the initial seek.
2014-10-06 18:57:28 +02:00
Thibault Saunier
47aea18826
videoaggregator: Make sure not to unref a NULL pointer
2014-10-06 18:57:28 +02:00
Sebastian Dröge
9e122f6442
videoaggregator: Unmap and free GstVideoFrames as needed after conversion and errors
2014-10-06 10:11:47 +03:00
Thibault Saunier
d2f4d20d85
videoaggregator: Do not to release VIDEO_AGGREGATOR_LOCK while setting format info
...
We should be able to always keep the VIDEO_AGGREGATOR_LOCK while
negotiating caps, this patch introduce that change.
That also implies that we do not need the SETCAPS_LOCK anymore because
now VIDEO_AGGREGATOR_LOCK guarantees that setcaps is not called from
several threads and the gst_aggregator_set_caps method is now
protected.
https://bugzilla.gnome.org/show_bug.cgi?id=735042
2014-10-03 13:18:05 +02:00
Sebastian Dröge
6daef6a2f8
videoaggregator: Also copy over the chroma siting and colorimetry when deciding on a conversion
2014-10-01 17:22:59 +03:00
Sebastian Dröge
f4451b764f
videoaggregator: Revert the last commit and handle resolutions differences properly
...
This is about converting the format, not about converting any widths and
heights. Subclasses are expected to handler different resolutions themselves,
like the videomixers already do properly.
2014-10-01 17:18:05 +03:00
Sebastian Dröge
30f6b63c3d
videoaggregator: GstVideoConverter currently can't rescale and will assert
...
Leads to ugly assertions instead of properly erroring out:
CRITICAL **: gst_video_converter_new: assertion 'in_info->width == out_info->width' failed
2014-10-01 17:11:16 +03:00
Matthew Waters
65ed8ecf07
glvideomixer: update element documentation
2014-09-30 20:39:36 +10:00
Matthew Waters
62a430ad21
videoaggregator: don't create converters when the subclass doesn't want them
...
fixes a critical with glvideomixer after
35bd1969f9
CRITICAL **: gst_video_converter_new: assertion 'in_info->width == out_info->width' failed
2014-09-28 16:58:42 +10:00
Matthew Waters
bc399a0403
glvideomixer: fix blending with low-alpha sources
...
We also need to apply the blend paramaters to the alpha channel otherwise
the output of the blend will appear black at low alpha values (< 0.2).
2014-09-26 01:59:43 +10:00
Wim Taymans
e4dd599a55
video: use video lib conversion code instead of copy
2014-09-24 16:55:49 +02:00
Matthew Waters
e0476bf014
glvideomixer: skip input frames with an alpha of 0
2014-09-24 14:31:19 +10:00
Matthew Waters
e0459f1b65
gl: download whenever we have sysmem capsfeatures
...
Otherwise we could pass on a RGBA formatted buffer and downstream would
misinterpret that as some other video format.
Fixes pipelines of the form
gleffects ! tee ! xvimagesink
2014-09-24 13:16:30 +10:00
Matthew Waters
03c21f78b6
glupload: provide the output buffer that is rendered into
...
Allows callers to properly reference count the buffers used for
rendering.
Fixes a redraw race in glimagesink where the previous buffer
(the one used for redraw operations) is freed as soon as the next
buffer is uploaded.
1. glimagesink uploads in _prepare() to texture n
1.1 glupload holds buffer n
2. glimagesink _render()s texture n
3. glimagesink uploads texture n+1
3.1 glupload free previous buffer which deletes texture n
3.2 glupload holds buffer n+1
4. glwindow resize/expose
5. glimagesink redraws with texture n
The race is that the buffer n (the one used for redrawing) is freed as soon as
the buffer n+1 arrives. There could be any amount of time and number of
redraws between this event and when buffer n+1 is actually rendered and thus
replaces buffer n as the redraw source.
https://bugzilla.gnome.org/show_bug.cgi?id=736740
2014-09-21 21:36:49 +10:00
Sanjay NM
a45a5f0101
gl: Removed unreachable break, unused variable
...
https://bugzilla.gnome.org/show_bug.cgi?id=736957
2014-09-19 21:48:14 +10:00
Ognyan Tonchev
0dbce9c6ab
glmixer: do not leak pool in error cases
...
https://bugzilla.gnome.org/show_bug.cgi?id=736729
2014-09-16 12:48:01 +03:00
Matthew Waters
7a0155e735
glmixer: unref the GstGLUpload in the pad if freed while running
...
Dynamic pipelines that get and release the sink pads will finalize
the pad without going through gst_gl_mixer_stop() which is where the
upload object is usually freed. Don't leak objects in such case.
2014-08-19 17:01:36 +10:00
Wang Xin-yu (王昕宇)
51b23bbff7
glvideomixer: avoid gl resource race condition between different thread
...
https://bugzilla.gnome.org/show_bug.cgi?id=734830
2014-08-19 17:00:58 +10:00
Matthew Waters
a555c32f30
glvideomixer: don't clobber unnecessary GstVideoInfo fields
...
otherwise we might clobber other important fields such as the frame rate.
2014-08-19 14:44:29 +10:00
Matthew Waters
3fe5412357
glvideomixer: get the attribute from the correct shader
2014-08-19 14:43:42 +10:00
Matthew Waters
4b1bf9b52a
videoaggregator: push the caps event as soon as we receive it
...
Along with the required mandatory dependent events.
Some elements need to perform an allocation query inside
::negotiated_caps(). Without the caps event being sent prior,
downstream elements will be unable to answer and will return
an error.
https://bugzilla.gnome.org/show_bug.cgi?id=732662
2014-08-11 23:36:27 +10:00
Tim-Philipp Müller
0ab1136f4e
opengl: update element docs for 1.x
2014-08-10 18:07:28 +01:00
Sebastian Rasmussen
bc15905c45
videoaggregator: Unref allowed caps after usage
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734522
2014-08-10 11:55:09 +01:00
Matthew Waters
5cddc44b0a
glvideomixer: add a background property
...
That's compatible with the compositor/videomixer property
https://bugzilla.gnome.org/show_bug.cgi?id=731954
2014-08-07 19:21:02 +10:00
Wang Xin-yu (王昕宇)
e9bf900d33
gl: fix multi gl object leaks
...
1. fix FBO leaks in decide_allocation
2. fix texture leaks in decide_allocation and reset
3. fix texture leaks in FBO incomplete error path
2014-07-24 11:46:56 +10:00
Sebastian Dröge
8c7916d4ec
gl: Move GstGLMixer to the plugin for now
...
It depends on GstAggregator and we don't want to install headers
for that yet.
https://bugzilla.gnome.org/show_bug.cgi?id=732207
2014-07-11 09:41:05 +02:00
Thibault Saunier
4e60b291f8
videoaggregator: Fix some more the locking logic in update_src_caps
...
We need the GST_OBJECT_LOCK only to iterate the sinkpads, nothing else.
https://bugzilla.gnome.org/show_bug.cgi?id=732750
2014-07-06 23:36:10 +02:00
Tim-Philipp Müller
27ad5ef8d6
videoaggregator: fix broken locking in update_src_caps function
...
We would unlock an already-unlocked mutex that we never re-locked.
https://bugzilla.gnome.org/show_bug.cgi?id=732750
2014-07-06 22:16:48 +01:00
Vincent Penquerc'h
771ed7e429
videoaggregator: reset QoS on segment event
...
https://bugzilla.gnome.org/show_bug.cgi?id=732540
2014-07-01 16:35:42 +01:00