Commit graph

429 commits

Author SHA1 Message Date
Vineeth TM
dab39bf42b xvimagesink: fix error leak when context creation fails
When context creation fails, error is getting leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=754973
2015-09-14 16:55:01 +01:00
Vineeth T M
efdb0fc281 xvimagesink: refactor to use gst_pad_push_event
Right now navigation events are being sent via gst_pad_send_event
after getting the peer pad of the sinkpad.
But the same functionality can be done using gst_pad_push_event
without need of getting peer pad in xvimagesink.

https://bugzilla.gnome.org/show_bug.cgi?id=752059
2015-07-07 12:50:39 +01:00
Vineeth TM
cf454ca713 xvimagesink: fix pad memory leak
pad is not being freed when xwindow is not created

https://bugzilla.gnome.org/show_bug.cgi?id=752042
2015-07-07 09:28:12 +01:00
Stefan Sauer
923d72d399 x/xv_image_sink: rename for consitency
Insert '_' to match the CamelCase. This is needed so that the plugin docs can
guess the names from the type name.
2015-07-06 17:37:15 +02:00
Nicolas Dufresne
df313a6dbc xvimagesink: Don't share internal pool
Sharing the internal pool results in situation where the pool may have
two upstream owners. This creates a race upon deactivation. Instead,
always offer a new pool, and keep the internal pool internal in case
we absolutely need it.

https://bugzilla.gnome.org/show_bug.cgi?id=748344
2015-06-12 18:26:07 -04:00
Tim-Philipp Müller
6221c95d48 ximagesink, xvimagesink: fix string leaks when setting class hint
https://bugzilla.gnome.org/show_bug.cgi?id=750455
2015-06-08 20:19:42 +01:00
Luis de Bethencourt
c3a19f7851 xvimagesink: set WM_CLASS of window
Set WM_CLASS of the xvimagesink window so window managers can apply rules
based on xprop filtering.
2015-06-08 17:08:26 +01:00
Vineeth T M
b1bc2af766 xvimagesink: fix pool leak
During set caps when config fails, the referenced newpool
is not unref ed.

https://bugzilla.gnome.org/show_bug.cgi?id=749530
2015-05-18 10:40:37 +03:00
Tim-Philipp Müller
ec5c93f169 docs: update element example pipelines
- gst-launch -> gst-launch-1.0
- use autoaudiosink and audiovideosink more often
- review pipeline examples and descriptions
2015-05-10 11:38:19 +01:00
Guillaume Desmottes
ca100d117c xvimagesink: fix navigation event leak when early returning
Create the event *after* the early return check so it's not leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=748903
2015-05-05 13:54:08 -03:00
Guillaume Desmottes
9d85e23c3d xvimagesink: fix navigation event leak when not handled
gst_navigation_message_new_event() is *not* consuming the event so we should
always drop our extra reference.

https://bugzilla.gnome.org/show_bug.cgi?id=748903
2015-05-05 13:54:08 -03:00
Edward Hervey
c90a3ac468 xvimagesink: Post unhandled navigation events on the bus
https://bugzilla.gnome.org/show_bug.cgi?id=747245
2015-04-29 15:47:49 +02:00
Vincent Penquerc'h
964ea678da xvimagsink: fix failure to allocate large shared memory blocks
A previous patch increased allocations by 15 bytes in order to ensure
16 byte alignment for g_malloc blocks. However, shared memory is
already block aligned, and this extra 15 bytes caused allocation
to fail when we were already allocating to the shared memory limit,
which is a lot smaller than typical available RAM.

Fix this by removing the alignment slack when allocating shared
memory.

https://bugzilla.gnome.org/show_bug.cgi?id=706066
2015-04-03 11:18:46 +01:00
Tim-Philipp Müller
c53ba4beeb Fix double semicolons 2015-03-10 09:27:08 +00:00
Song Bing
e9c6c833c9 videopool: update video alignment after applying
Video buffer pool will update video alignment to respect stride alignment
requirement. But haven't updated it to video alignment in configure.
Which will cause user get wrong video alignment.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=741501
2014-12-22 09:25:04 -05:00
Wim Taymans
662a674f8a ximagesink: clear src and dest rectangles
Now that the center function also takes into account the x and y
coordinates of the dest rectangle, better clear all the fields before
using them.
2014-12-16 12:57:55 +01:00
Song Bing
8baf1ec500 videopool: update buffer size after video alignment
Update the new buffer size after alignment in the pool configuration
before calling the parent set_config. This ensures that the parent knows
about the buffer size that we will allocate and makes the size check
work in the release_buffer method.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=741420
2014-12-16 12:14:53 +01:00
Tim-Philipp Müller
39c6b41864 xvimagesink: get rid of unnecessary private struct for pool 2014-09-27 16:21:37 +01:00
Tim-Philipp Müller
7e78fe0d1e xvimagesink: only try to set XV_ITURBT_709 port attribute if it exists
Don't try to set port attribute that's not advertised by the
adaptor. Fixes videotestsrc ! xvimagesink aborting with

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  151 (XVideo)
  Minor opcode of failed request:  13 ()

on intel HD4600 graphics with kernel 3.16, xserver 1.15,
intel driver 2.21.15.
2014-09-11 22:58:16 +01:00
Tim-Philipp Müller
d960a25a19 xvimage: fix crash when outputting debug log
Can't print a GstMemory via GST_PTR_FORMAT, it will crash
inside GObject checking if it's a GObject, and we can't
check generically whether it's a derived GstMemory type,
as boxed types don't allowe derivation.
2014-08-10 17:27:14 +01:00
Tim-Philipp Müller
c33d9d603c xvimagesink: fix property description string
Spotted by Josep Torra.
2014-07-17 14:36:16 +01:00
Vincent Penquerc'h
43ce84e0f4 xvimage: remove dead code
matching_attr can not be NULL here, we've tested that away a few
lines beforehand.

Coverity 1139655
2014-04-10 15:55:57 +01:00
Holger Kaelberer
ae4338bd35 xvimagesink: don't recreate xvcontext
A xvcontext can be created early in gst_xvimagesink_set_window_handle().
In this case don't recreate, i.e. overwrite it in gst_xvimagesink_open().
Otherwise XEvents won't be handled in the xevent listener thread.

Fixes a regression when setting the window handle on the sink in
the very beginning before changing its state.

https://bugzilla.gnome.org/show_bug.cgi?id=715138
2014-01-15 11:06:09 +01:00
Todd Agulnick
38d8fa12a5 Some compiler warning fixes to satisfy XCode compiler
https://bugzilla.gnome.org/show_bug.cgi?id=720513
2013-12-16 16:51:29 +01: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
Sebastian Dröge
948a4a3632 gst: Add better support for static plugins 2013-04-15 15:52:58 +02:00
Josep Torra
3b10871a87 xvimagesink: fix debug message printf format compiler warning 2013-03-30 09:39:32 +01:00
Wim Taymans
d99e270fc8 xvimagesink: configure colorimetry
Use the XV_ITURBT_709 attribute to configure the 601 or 709 matrix
depending on the color matrix of the input video frame.
2013-03-14 15:46:59 +01:00
Wim Taymans
7cf890ffa0 xvcontext: protect X call with lock 2013-03-14 15:44:53 +01:00
Wim Taymans
0cf392837d xvimagesink: use xvcontext for allocation
Make a new refcounted xvcontext object that handles the X connection.
Use the xvcontext to allocate images and windows. Move some code
around so that all X calls are made from the xvcontext object.
Make a GstXvImageAllocator object that allocates images from the xvcontext. We
can implement a copy function now for these memory objects now.
Make the bufferpool use the xvimageallocator object for its images.
2013-03-13 11:51:12 +01:00
Wim Taymans
b740edff06 xvimagesink: mark as NO_SHARE
We don't want to share the memory between buffers because that could
cause the memory of the bufferpool buffers to be copied and replaced
with other memory.

This is a hopefully a temporary fix until we can figure out how to share
properly.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=695203
2013-03-05 16:34:35 +01:00
Sebastian Dröge
3c78fcd6b2 xvimagepool: gst_memory_init() does not take ownership of the allocator 2013-02-24 09:45:19 +01:00
Sebastian Dröge
45ac6dea64 xvimagesink: Implement XvImage memory as a GstMemory, not as a GstMeta 2013-02-23 09:58:51 +01:00
Tim-Philipp Müller
e05abf0ef1 docs: fix up some more GstXOverlay -> GstVideoOverlay
https://bugzilla.gnome.org/show_bug.cgi?id=689740
2012-12-10 13:40:26 +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
Sebastian Dröge
3c1041d5eb Revert "gst: Add better support for static plugins"
This reverts commit d2d79e3bc2,
which was accidentially pushed.
2012-10-24 13:26:26 +02:00
Sebastian Dröge
d2d79e3bc2 gst: Add better support for static plugins 2012-10-24 12:10:44 +02:00
Michael Smith
a29c4f9489 meta registration: use g_once functions to register these threadsafely. 2012-10-03 10:44:59 -07:00
Tim-Philipp Müller
8a3bdca78d xvimagesink: port to new GLib thread API 2012-09-10 01:26:20 +01:00
Tim-Philipp Müller
2079a8c12b Remove glib-compat-private.h stuff we don't need any more
It's all been ported to the latest GLib API now.
2012-09-09 18:36:49 +01:00
Wim Taymans
ee3613da1e X11: add unpadded width/height as videometa
We need to add the real width/height as the values in the video metadata instead
of the padded values.
2012-08-20 16:13:00 +02:00
Wim Taymans
bc9c1685c2 X11: use new alignment function
Remove some custom padding and alignment functions and replace with the new
align function from the video library.
2012-08-20 11:19:37 +02:00
Wim Taymans
9b3849db1c x11: fix alignment in non-XSHM case
Align the allocated memory to 16 bytes. When doing XSHM we are already aligned
to a page boundary but without, we use plain g_malloc, which could allocate
aligned on 8 bytes only.

See https://bugzilla.gnome.org/show_bug.cgi?id=680796
2012-08-10 16:58:47 +02:00
Wim Taymans
da4884a834 x11: don't block in buffer acquire
Don't ever block when acquiring a buffer from the bufferpool in the fallback
mode. If we block, we might deadlock when going to PAUSED because we never
unlock when going to paused.

The acquire can block when there are no more buffers in the pool, this is a
sign that the pool is too small. Since we are the only ones using the pool in
the fallback case and because we scale the buffer, someone else must be using
our pool as well and is doing something bad.
2012-08-10 12:13:57 +02:00
Sebastian Dröge
7bdcb12b41 gst: Set alignment at the correct place of GstAllocationParams 2012-08-08 17:41:19 +02:00
Wim Taymans
9572ec0481 xvimagesink: calculate target rectangle correctly
Use the negotiated size and PAR to center the image into the target window.

See https://bugzilla.gnome.org/show_bug.cgi?id=680093
2012-07-24 12:02:34 +02:00
Wim Taymans
17ff2b0643 x11: match FORCE_ASPECT_RATIO default value
Set the default value for FORCE_ASPECT_RATIO correctly
2012-07-24 11:25:04 +02:00
Wim Taymans
53fc1f3fca update for query api changes 2012-07-06 11:50:44 +02:00
Wim Taymans
bc5ba349b7 update for allocation query changes 2012-07-06 11:05:09 +02:00
Tim-Philipp Müller
cc8b526c00 ximagesink, xvimagesink: default to force-aspect-ratio=true 2012-06-29 11:43:46 +01:00