Commit graph

137 commits

Author SHA1 Message Date
Arnaud Vrac
76ce112994 basetextoverlay: schedule reconfigure on source pad when negotiation fails
The source pad might be flushing while negotiating, resulting in
set_caps or the ALLOCATION query failing. In this case set the
reconfigure flag on the source pad so that negotiation is retried on the
next buffer.
2014-09-05 11:08:49 +03:00
Arnaud Vrac
ef5823cc9b basetextoverlay: just forward the seek event to sink pads like other events
https://bugzilla.gnome.org/show_bug.cgi?id=735844
2014-09-05 11:08:04 +03:00
Nicola Murino
501a295fa1 basetextoverlay: remove unneeded cairo transparence setting
he code here:

http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/ext/pango/gstbasetextoverlay.c#n1554

should make transparent the box that contains the text, I think this code is
not correct, it should be:

if (overlay->want_shading) {
    double alpha = overlay->shading_value / 255.0;
    cairo_paint_with_alpha (cr, alpha);
  }

however I think this code could be removed, we already do a shaded background,
why shade the box behind the text with cairo too? only one shading is needed so
we must shade with cairo or with methods like these:

http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/ext/pango/gstbasetextoverlay.c#n1642

not both

https://bugzilla.gnome.org/show_bug.cgi?id=736028
2014-09-04 14:13:55 +03:00
Nicola Murino
ad16f15ee4 basetextoverlay: Make shading_value a property
https://bugzilla.gnome.org/show_bug.cgi?id=735879
2014-09-04 11:17:55 +03:00
Thiago Santos
a65b307349 basetextoverlay: properly fallback to non-overlay caps
When downstream claims to accept the overlay meta but fails to
provide it in the allocation query, properly fallback to setting
a new caps without the overlay meta as that is not going to be used.

Only do this if the original caps doesn't have the overlay already,
otherwise there isn't much that can be done.

https://bugzilla.gnome.org/show_bug.cgi?id=735800
2014-09-01 15:23:09 -03:00
Sebastian Dröge
e783a366cb textoverlay: Don't hold any mutexes while calling negotiate
It's not done in any other code calling negotiate and will cause deadlocks
as it is sending events and queries in the pipeline.

Specifically this pipeline was deadlocking:
gst-launch-1.0 videotestsrc ! textoverlay ! textoverlay ! fakesink
2014-09-01 12:28:24 +03:00
Tim-Philipp Müller
5fc94da399 textoverlay: remove code that can't be reached
If this code could ever be reached, it would leak
memory (CID 1231978), but gst_caps_get_features()
never returns NULL, so that can't happen.
2014-08-29 19:18:55 +01:00
Thiago Santos
6bf3356967 basetextoverlay: fix caps negotiation filter 2014-08-13 11:22:52 -03:00
Thiago Santos
a080c0ebbf basetextoverlay: rework caps negotiation
Make textoverlay negotiate caps more correctly.

1) Check what caps we received in the video-sink
2) If it already has the overlay meta -> use it directly
3) If it doesn't, textoverlay try adding the overlay meta and using it,
   if downstream doesn't support it, just use what is received in the
   video-sink
4) Check if the allocation query also supports the meta to enable
   really using it

Before it wasn't really doing renegotiation of any kind, just
re-checking if it should use the overlay meta or not

Also had to update the caps in the test as memory:SystemMemory seems
to be required when you use a caps feature otherwise intersection/subset
checks will fail.

https://bugzilla.gnome.org/show_bug.cgi?id=733916
2014-08-11 11:40:44 -03:00
Thiago Santos
c20e044ef0 basetextoverlay: always intersect with the filter caps
Avoids returning values that upstream can't produce

https://bugzilla.gnome.org/show_bug.cgi?id=733916
2014-08-11 10:30:58 -03:00
Thibault Saunier
7f9aac386f pango: Do not try to add a feature to a caps features ANY
It does not makes sense and asserts
2014-05-11 00:12:30 +02:00
Sebastian Dröge
3e2a693ca9 pango: Make static caps actually static to fix a memory leak 2014-04-15 13:57:08 +02:00
Adrien Schwartzentruber
a9d98c57a4 pango: demote debug WARNING to LOG for variable framerate video input
No need why we need to warn about that, it's perfectly allowed.

https://bugzilla.gnome.org/show_bug.cgi?id=725837
2014-03-06 17:51:11 +00:00
Matthieu Bouron
ed8e7d4275 pango: basetextoverlay: handle video/x-raw(ANY) if downstream supports the GstVideoOverlayCompositionMeta API
https://bugzilla.gnome.org/show_bug.cgi?id=721953
2014-03-05 20:38:53 +01:00
Thiago Santos
ec7724c095 basetextoverlay: use correct segment for text
video time uses the 'segment' and the text time should use
the 'text_segment'.

If different segments are used for video and text it would
lead to out of sync video/subtitles.
2014-02-07 02:14:52 -03:00
Tim-Philipp Müller
448c006b02 textoverlay: don't leak GAP events 2014-01-10 11:17:04 +00:00
Tim-Philipp Müller
b1ff48c1a1 docs: remove old 0.10 Since markers
They're just confusing.
2013-11-16 16:10:07 +00:00
Edward Hervey
9dd0e6cccc ext/gst: Ensure default query/event handlers are used
And in some cases, just remove our implementation that does nothing
2013-07-26 16:08:35 +02:00
Tim-Philipp Müller
8e4934820f pango: use new GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS define
https://bugzilla.gnome.org/show_bug.cgi?id=665751
2013-02-19 12:54:40 +00:00
Jan Schmidt
fb102419c7 pango: 3rd time's the charm. Fix attribute list handling.
Really really fix attribute list handling by taking a
copy of the original attributes that pango_attr_list_filter
can mutate, but keep the original around intact to restore
later.
2013-02-08 00:05:24 +11:00
Jan Schmidt
bc42d382e2 pango: Don't modify the original attributes list.
Take a copy of the original attributes list instead of just
a ref, since pango_attr_list_filter can remove elements from it.
2013-02-07 23:45:26 +11:00
Jan Schmidt
2528baf2c2 pango: Remove extra pango_attr_list_copy() from basetextoverlay
Fixes a per-buffer memory leak of the attribute list.
2013-02-07 23:06:57 +11:00
Tim-Philipp Müller
76c0cca765 textoverlay: minor clean-up
Remove some macros that aren't needed any more.
2012-12-22 21:19:51 +00:00
Tim-Philipp Müller
df8e7f14a8 textoverlay: support shaded background for A420 format
https://bugzilla.gnome.org/show_bug.cgi?id=687817
2012-12-22 21:18:11 +00:00
Tim-Philipp Müller
ba255fbac6 textoverlay: implement background shading for IYU1
https://bugzilla.gnome.org/show_bug.cgi?id=687817
2012-11-07 13:59:53 +00:00
Tim-Philipp Müller
bd578c1dd4 textoverlay: also draw shaded backgrounds for RGB and BGR
https://bugzilla.gnome.org/show_bug.cgi?id=687817
2012-11-07 13:25:13 +00:00
Tim-Philipp Müller
caad241432 textoverlay: we can do YVU9 as well 2012-11-07 11:36:42 +00:00
Tim-Philipp Müller
16350b7d66 textoverlay: don't advertise 10-16-bit formats we can't blend text onto yet
We can't blend stuff on top of video formats that unpack into
ARGB64 or AYUV64 yet, so don't advertise them in our template caps.
2012-11-07 11:32:50 +00:00
Tim-Philipp Müller
e3bb068392 textoverlay: fix up names of old gray formats
Y800 -> GRAY8, Y16 -> GRAY16_{LE,BE}
2012-11-07 09:46:50 +00:00
Tim-Philipp Müller
74343165e1 textoverlay: draw shaded background for some more video formats
https://bugzilla.gnome.org/show_bug.cgi?id=687817
2012-11-07 09:41:13 +00:00
Tim-Philipp Müller
bedbfd0091 textoverlay: clamp shaded background box coordinates in one place 2012-11-07 09:41:13 +00:00
Tim-Philipp Müller
4aace8e0eb textoverlay: move background shading into separate function 2012-11-07 09:41:13 +00:00
Tim-Philipp Müller
a53f0f382e textoverlay: don't abort if we don't know how to paint shaded background for a format
It's not a very nice thing to do.

https://bugzilla.gnome.org/show_bug.cgi?id=687666
2012-11-06 23:44:01 +00:00
Sreerenj Balachandran
6cbcca0bc5 textoverlay: forward allocation queries on video sink pad instead of discarding them
This allows the upstream elements to use the allocation parameters
or pools from the downstream elements like videosink.

https://bugzilla.gnome.org/show_bug.cgi?id=687459
2012-11-05 13:27:56 +00:00
Tim-Philipp Müller
5f59b4f7ee Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Tim-Philipp Müller
3138c4e696 pango: avoid unnecessary pango attribute list copy
We just want to keep it alive, not modify it, so a
simple ref should be enough.

https://bugzilla.gnome.org/show_bug.cgi?id=686841
2012-10-25 17:16:58 +01:00
Jihyun Cho
2e0174e13c pango: delete foreground color in shadow text
This makes colored text have gray drop shadows
instead of colored ones, which looks much better.

https://bugzilla.gnome.org/show_bug.cgi?id=686841
2012-10-25 17:16:58 +01:00
Sebastian Dröge
c4fb8d1e69 basetextoverlay: Correctly handle empty text buffers 2012-09-27 12:41:28 +02:00
Sebastian Dröge
b19944d1e4 gst: Update for link/unlink function API change 2012-09-17 13:24:52 +02:00
Mark Nauwelaerts
36e78af5bf pango: add missing break 2012-09-05 15:14:05 +02:00
Mark Nauwelaerts
b3545604c0 pango: handle GAP event to update text position 2012-09-05 12:02:32 +02:00
Tim-Philipp Müller
7c2e7b1a4f text/plain + text/x-pango-markup -> text/x-raw 2012-09-02 02:45:41 +01:00
Mark Nauwelaerts
8db0cc4350 pango: adjust to modified video overlay composition API 2012-08-30 12:12:39 +02:00
Tim-Philipp Müller
96faac2891 pango: fix bad unref and crashes with multiple text overlays
gst_element_class_get_pad_template() does not return a ref,
so we mustn't unref the template returned. Fixes crashes
when switching back and forth between different types of
subtitle streams.
2012-08-21 22:51:38 +01:00
Mark Nauwelaerts
3ecad525b7 pango: adjust to modified video overlay composition API 2012-07-17 18:08:11 +02:00
Tim-Philipp Müller
a654ba5b85 pango: remove deprecated valign and halign properties
Replaced by valignment and halignment (enum-based now rather than strings).
2012-07-06 12:34:46 +01:00
Wim Taymans
177fd005ab update for query api changes 2012-07-06 11:23:48 +02:00
Mark Nauwelaerts
4761e6d6ab pango: query downstream for video overlay composition meta support 2012-07-03 14:35:25 +02:00
Mark Nauwelaerts
aa6295744b pango: adjust to modified overlay composition API 2012-07-03 14:35:25 +02:00
Tim-Philipp Müller
1396f804be pango: only map video buffer memory if actually needed
No need to map the video buffer if we're just going to attach
the meta; but if we map, we should do so in READWRITE mode.
2012-07-02 19:23:47 +01:00
Tim-Philipp Müller
52056653be pango: pass pre-multiplied alpha to overlay composition directly
We now support pre-multiplied alpha in the overlay composition API,
and can avoid multiple conversions if the the overlay also supports
pre-multiplied alpha. We should probably also have mapped the
buffer as READWRITE when unpremultiplying.
2012-07-02 19:23:04 +01:00
Tim-Philipp Müller
c09512ee99 pango: remove support for video/x-surface again which is 0.10 stuff
This needs to be done and can be done differently/properly in 0.11.
2012-06-28 23:15:34 +01:00
Mark Nauwelaerts
0325a3bdae pango: use ported GstVideoOverlayComposition functionality
Based on commits by Thibault Saunier <thibault.saunier@collabora.co.uk>
2012-06-28 18:16:25 +02:00
Sebastian Dröge
233622437f elements: Use gst_pad_set_caps() instead of manual event fiddling 2012-06-08 15:51:06 +02:00
Andre Moreira Magalhaes (andrunko)
bac5fd4c6a textoverlay: Use an external lock
Conflicts:

	ext/pango/gsttextoverlay.c
	ext/pango/gsttextoverlay.h
2012-05-29 11:53:08 +02:00
Sebastian Dröge
ad42b16375 gst: Update for GST_PLUGIN_DEFINE() API change 2012-04-05 15:11:05 +02:00
Mark Nauwelaerts
68300bde0b pango: plug rare buffer leak 2012-04-03 18:31:27 +02:00
Wim Taymans
897e8730e8 testoverlay: fix object and caps leak 2012-03-27 15:44:14 +02:00
Tim-Philipp Müller
0b17c3747a pango: re-port pangocairo deprecation and compiler warning fixes from 0.10
Wasn't applied because that code is in the new private base class.
2012-03-08 20:54:49 +00:00
Wim Taymans
a75e9102c5 GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING 2012-02-08 15:17:49 +01:00
Wim Taymans
fcdc385aa1 port to new map API 2012-01-25 12:30:53 +01:00
Tim-Philipp Müller
fa0464cd7a pango: port to new GLib threading API 2012-01-18 17:21:02 +00:00
Wim Taymans
e302833e65 add parent to pad functions 2011-11-17 12:48:25 +01:00
Wim Taymans
2202511e77 add parent to query function 2011-11-16 17:25:17 +01:00
Wim Taymans
026ec68f75 _peer_get_caps() -> _peer_query_caps() 2011-11-15 18:04:17 +01:00
Wim Taymans
ab9ffa93f5 change getcaps to query
Add sink and src event functions in rtpbasepayload
Add query vmethod to rtpbasepayload.
2011-11-15 18:04:16 +01:00
Stefan Sauer
0019bcaa47 controller: port to new location and api changes 2011-11-04 20:14:54 +01:00
Wim Taymans
f1088ed647 update for UNEXPECTED -> EOS flowreturn 2011-10-10 11:39:52 +02:00
Edward Hervey
17bfba09f1 Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggdemux.c
	ext/pango/gsttextoverlay.c
	gst-libs/gst/audio/gstaudioencoder.c
	gst-libs/gst/audio/gstbaseaudiosrc.c
	gst/playback/gstsubtitleoverlay.c
	gst/videorate/gstvideorate.c
2011-09-23 18:27:11 +02:00
Wim Taymans
ddce68a5c2 video: More video helper library improvements
Make a new GstVideoFormatinfo structure that contains the specific information
related to a format such as the number of planes, components, subsampling,
pixel stride etc. The result is that we are now able to introduce the concept of
components again in the API.
Use tables to specify the formats and its properties.
Use macros to get information about the video format description.
Move code to set strides, offsets and size into one function.
Remove methods that are not handled with the structures.
Add methods to retrieve pointers and strides to the components in the video.
2011-07-04 16:01:14 +02:00
Wim Taymans
6d9e76f2de video: remove intermediate Plane structure
Remove the GstVideoPlane structure and move the fields directly into the
GstVideoInfo structure. This makes things a little easier to read and also makes
it more likely that we can pass the stride array to external libraries.
2011-06-20 11:25:58 +02:00
Wim Taymans
d93129d8da -base: port to GstVideoFrame API 2011-06-17 15:41:31 +02:00
Wim Taymans
d06f599193 -base: port elements to new video caps 2011-06-16 12:52:13 +02:00
Wim Taymans
2940249a84 -base: use caps event
Remove uses of setcaps function and use the caps event.
2011-06-07 11:55:36 +02:00
Sebastian Dröge
bf08ca7020 Merge branch 'master' into 0.11 2011-05-26 13:54:09 +02:00
Sebastian Dröge
884213b8b8 base: Update for SEGMENT event parse API changes 2011-05-18 17:23:18 +02:00
Sebastian Dröge
c255019b90 ext: Update for caps/pad template related API changes 2011-05-17 13:06:01 +02:00
Sebastian Dröge
318ed07598 Revert "-base_port to new query API"
This reverts commit c9f4e0676b.
2011-05-17 11:25:31 +02:00
Sebastian Dröge
362a025a6b textoverlay: Update for negotiation related API changes 2011-05-16 15:35:41 +02:00
Wim Taymans
94dfe80f71 -base: port to new SEGMENT API 2011-05-16 13:48:11 +02:00
Wim Taymans
c9f4e0676b -base_port to new query API 2011-05-10 18:39:07 +02:00
Wim Taymans
816f4e791d segment: fix for new core API
Fix for gst_*_segment_full rename.
2011-05-09 18:16:46 +02:00
Wim Taymans
ec57868488 -base: don't use buffer caps
Port to newest 0.11 core API, remove GST_PAD_CAPS and GST_BUFFER_CAPS.
2011-05-09 13:05:12 +02:00
Wim Taymans
86a4771f8e remove buffer_alloc 2011-04-29 13:28:17 +02:00
Sebastian Dröge
353186aec8 ext: Use G_DEFINE_TYPE instead of GST_BOILERPLATE 2011-04-19 14:22:42 +02:00
Sebastian Dröge
0759ce8533 Merge branch 'master' into 0.11 2011-04-18 13:23:32 +02:00
Sebastian Dröge
92d10cbb8c pango: Create a new base class for all the elements
This prevents the ugly hack where the text_sink pad template
was only added for textoverlay but not for the subclasses.

Also makes this work with the core change that made
subclasses inherit the templates of their parent class.
2011-04-16 15:56:55 +02:00