Commit graph

821 commits

Author SHA1 Message Date
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 fb8f53efb7 ximagesink: get rid of unnecessary private struct for pool
This is not exposed as API after all.
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
Nicolas Dufresne f270b267c5 ximagesink: only extrapolate alpha mask for 32-bit depth
Instead of passing bogus alpha mask values when there's no alpha.

https://bugzilla.gnome.org/show_bug.cgi?id=727188
2014-03-27 16:47:30 -04: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
Benjamin Gaignard 80e700a566 ximagesink: add support for 32-bit RGB with alpha mask
When X screen return a depth = 32 with bpp = 32, the alpha mask
must be correctly set to have a known GStreamer video format.
X visual structure doesn't provide the alpha mask information,
but we can find it from the others masks.

https://bugzilla.gnome.org/show_bug.cgi?id=700413
2013-05-16 11:24:10 +01:00
Sebastian Dröge 948a4a3632 gst: Add better support for static plugins 2013-04-15 15:52:58 +02:00
Alexander Schrab c32756a9be ximagesink: Fix coompiler error without HAVE_XSHM
https://bugzilla.gnome.org/show_bug.cgi?id=697628
2013-04-09 20:02:08 +02:00
Josep Torra 3b10871a87 xvimagesink: fix debug message printf format compiler warning 2013-03-30 09:39:32 +01:00
Sebastian Dröge 23c1a08bce ximagesink: Don't access structures of EMPTY caps
If the intersection between our caps and the filter caps is
empty, just immediately return EMPTY caps instead of trying
to access the (non-existant) structures.
2013-03-21 13:29:06 +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 470f02d186 ximagesink: don't share memory 2013-03-05 16:41:52 +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
Wim Taymans 1056304aad ximagesink: use memory to store XImage info
Store the extra XImage information in the GstMemory instead of metadata.
2013-02-26 16:02:41 +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 d6522cf6a6 ximagesink: port to the new GLib thread API 2012-09-10 01:03:52 +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
Wim Taymans f35f0b6548 sys: fix some bufferpool leaks 2012-06-18 12:17:25 +02:00
Wim Taymans f3fdfd9ec8 x11: handle case where no bufferpool is suggested 2012-06-15 16:45:16 +02:00
Sreerenj Balachandran 1805273cc5 xvimagesink: remove unused assignment
https://bugzilla.gnome.org/show_bug.cgi?id=676344
2012-05-19 11:19:47 +01:00
Wim Taymans 04a2610444 video: improve frame_flags
Rename the frame_flags to flags. Because they are flags on the frame object it
does not need the redundant frame_ prefix.
Change the order of the metadata constructor so that the flags come before the
format and dimension arguments.
2012-04-19 14:14:35 +02:00
Sebastian Dröge c84108de3c video: Update for libgstvideo API changes 2012-04-19 12:30:57 +02:00
Sebastian Dröge 69b18ab09d gst-libs: Remove interfaces libs and mixer/tuner interfaces
The navigation interface is now in the video library.
2012-04-13 13:14:13 +02:00
Tim-Philipp Müller 3c6a3ad629 Use new gst_element_class_set_static_metadata() 2012-04-10 00:45:16 +01:00
Sebastian Dröge ad42b16375 gst: Update for GST_PLUGIN_DEFINE() API change 2012-04-05 15:11:05 +02:00
Sebastian Dröge 65307dd132 gst: Update versioning 2012-04-04 14:55:15 +02:00
Jonathan Lyons 798ce6c0e1 x11: fix build without XSHM
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=673327
2012-04-02 11:37:43 +02:00
Wim Taymans 345dc31f20 update for buffer api change 2012-03-30 18:15:30 +02:00
Wim Taymans 18fe3ed9fa videopool: avoid caps copy
Now that the caps from the bufferpool are not returned as const we
can take a ref instead of doing a copy.
2012-03-27 15:44:59 +02:00
Wim Taymans bee3d7b683 update for get_param changes
Remove the const from the GstCaps.
Fix some GstStructure leaks.
2012-03-27 12:44:02 +02:00
Wim Taymans 1e884df1df update for bufferpool changes 2012-03-15 22:10:58 +01:00
Wim Taymans 7c0e2b5b1e update for allocation query changes 2012-03-15 20:36:51 +01:00
Wim Taymans 02dc419aae update for bufferpool api change 2012-03-15 14:06:24 +01:00
Wim Taymans 39d78762b9 take padding into account 2012-03-14 19:56:51 +01:00
Mark Nauwelaerts 090a8b2273 xvimagesink: free owned discarded pool configuration 2012-03-14 17:14:43 +01:00
Tim-Philipp Müller 29c266ccff Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	common
	docs/libs/gst-plugins-base-libs.types
	ext/pango/gsttextoverlay.c
	ext/vorbis/gstvorbisdec.c
	gst/playback/gstplaysink.c
	gst/playback/gstplaysinkconvertbin.c
	sys/ximage/ximagesink.c
	sys/xvimage/xvimagesink.c
2012-03-08 20:31:34 +00:00
Wim Taymans 863252258c x11: fix typos 2012-03-06 15:20:02 +01:00
Sebastian Dröge c2dc843c7e xvimagesink: Fix 'comparison of unsigned expression >= 0 is always true'
-1 aka 0xffffffff is the only possible 'negative' value that is used
as a special value for 'not set' here. All other positive values are
valid.
2012-03-06 12:47:33 +01:00
Wim Taymans 6885b9d397 xvimage: improve debugging 2012-03-05 15:42:09 +01:00
Oleksij Rempel (Alexey Fisher) dc7c6cf459 xvimagesink: don't use deprecated XKeycodeToKeysym
https://bugzilla.gnome.org/show_bug.cgi?id=671299

Signed-off-by: Oleksij Rempel (Alexey Fisher) <bug-track@fisher-privat.net>
2012-03-05 10:54:43 +00:00
Oleksij Rempel (Alexey Fisher) 6d83f695b7 ximagesink: don't use deprecated XKeycodeToKeysym
https://bugzilla.gnome.org/show_bug.cgi?id=671299

Signed-off-by: Oleksij Rempel (Alexey Fisher) <bug-track@fisher-privat.net>
2012-03-05 10:42:47 +00:00
Sebastian Dröge 1cbcb9281c mixer/colorbalance: Update for API changes 2012-03-02 10:00:59 +01:00
Sebastian Dröge f7939bb43f Merge branch 'master' into 0.11
Conflicts:
	NEWS
	RELEASE
	configure.ac
	docs/plugins/gst-plugins-base-plugins.args
	docs/plugins/gst-plugins-base-plugins.hierarchy
	docs/plugins/gst-plugins-base-plugins.interfaces
	docs/plugins/inspect/plugin-adder.xml
	docs/plugins/inspect/plugin-alsa.xml
	docs/plugins/inspect/plugin-app.xml
	docs/plugins/inspect/plugin-audioconvert.xml
	docs/plugins/inspect/plugin-audiorate.xml
	docs/plugins/inspect/plugin-audioresample.xml
	docs/plugins/inspect/plugin-audiotestsrc.xml
	docs/plugins/inspect/plugin-cdparanoia.xml
	docs/plugins/inspect/plugin-encoding.xml
	docs/plugins/inspect/plugin-ffmpegcolorspace.xml
	docs/plugins/inspect/plugin-gdp.xml
	docs/plugins/inspect/plugin-gio.xml
	docs/plugins/inspect/plugin-gnomevfs.xml
	docs/plugins/inspect/plugin-libvisual.xml
	docs/plugins/inspect/plugin-ogg.xml
	docs/plugins/inspect/plugin-pango.xml
	docs/plugins/inspect/plugin-playback.xml
	docs/plugins/inspect/plugin-subparse.xml
	docs/plugins/inspect/plugin-tcp.xml
	docs/plugins/inspect/plugin-theora.xml
	docs/plugins/inspect/plugin-typefindfunctions.xml
	docs/plugins/inspect/plugin-uridecodebin.xml
	docs/plugins/inspect/plugin-videorate.xml
	docs/plugins/inspect/plugin-videoscale.xml
	docs/plugins/inspect/plugin-videotestsrc.xml
	docs/plugins/inspect/plugin-volume.xml
	docs/plugins/inspect/plugin-vorbis.xml
	docs/plugins/inspect/plugin-ximagesink.xml
	docs/plugins/inspect/plugin-xvimagesink.xml
	gst-libs/gst/app/gstappsink.c
	gst-libs/gst/audio/mixer.c
	gst-libs/gst/audio/mixer.h
	gst-libs/gst/tag/gstxmptag.c
	gst-libs/gst/video/colorbalance.c
	gst-libs/gst/video/colorbalance.h
	gst/adder/gstadder.c
	gst/playback/gstplaybasebin.c
	gst/playback/gstplaybin2.c
	gst/playback/gstplaysink.c
	gst/videoscale/gstvideoscale.c
	tests/check/elements/videoscale.c
	tests/examples/seek/seek.c
	tests/examples/v4l/probe.c
	win32/common/_stdint.h
	win32/common/audio-enumtypes.c
	win32/common/config.h
2012-03-02 10:00:55 +01:00
Wim Taymans 502c12f827 update for metadata API changes 2012-02-29 17:25:10 +01:00
Wim Taymans 337cfb764a add more debug about cropping 2012-02-28 16:49:10 +01:00
Wim Taymans 1c05eeece5 update for metadata tags 2012-02-28 12:10:14 +01:00
Edward Hervey 59918e841f Suppress deprecation warnings in selected files, for g_value_array_* mostly 2012-02-27 14:28:15 +01:00
Wim Taymans 525f330142 update for metadata changes 2012-02-24 10:26:04 +01:00
Wim Taymans 17715ac8ae x[v]imagesink: remove size check
We can't to a size check like that, the strides might be different and the copy
will then take care of that just fine.
2012-02-22 15:25:03 +01:00
Wim Taymans 63f3f27164 update for new memory api 2012-02-22 02:05:24 +01:00
Vincent Penquerc'h bf82cc10c5 v4l: include the glib compatiblity header for the deprecated mutex API 2012-01-27 15:47:46 +00:00
Sebastian Dröge 68c0790817 Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/interfaces/propertyprobe.c
	sys/xvimage/xvimagesink.c
2012-01-25 11:50:54 +01:00
Tim-Philipp Müller 576bbb4fd8 Remove compatibility code cruft for old GLib versions 2012-01-18 17:22:21 +00:00
Vincent Penquerc'h a8a3e3f7d5 xvimagesink: fix leak when images are freed after the X context
I'm not 100% sure this is valid on any other X server than mine,
but since the XFree call does not take the context as a parameter,
it seems pretty certain it's the right thing to do, but I'll put
this caveat here in case someone checks in the future.
2012-01-13 16:52:23 +00:00
Wim Taymans 3fc48e114b x11: reset alignment 2011-12-21 18:14:45 +01:00
Wim Taymans ddc05e0ed1 propertyprobe: remove propertyprobe
Remove the propertyprobe interface
Improve docs
2011-12-21 11:58:53 +01:00
Tim-Philipp Müller fb6d09055a Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	ext/alsa/gstalsadeviceprobe.c
	ext/alsa/gstalsamixer.c
	ext/pango/gsttextoverlay.c
	ext/pango/gsttextoverlay.h
	gst-libs/gst/audio/gstaudiobasesink.c
	gst-libs/gst/audio/gstaudioringbuffer.c
	gst-libs/gst/audio/gstaudiosrc.c
	gst-libs/gst/video/Makefile.am
	gst-libs/gst/video/video.c
	gst/encoding/gststreamcombiner.c
	gst/encoding/gststreamsplitter.c
	gst/playback/gstplaybasebin.c
	gst/playback/gststreamsynchronizer.c
	gst/playback/gstsubtitleoverlay.c
	gst/playback/gsturidecodebin.c
	sys/xvimage/xvimagesink.c
	tests/examples/Makefile.am
	win32/common/libgstvideo.def

Video overlay composition disabled for now, needs
porting to buffer meta.
2011-12-08 01:19:03 +00:00
Tim-Philipp Müller 0d98aa25b8 Work around deprecated thread API in glib master
Add private replacements for deprecated functions such as
g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
to avoid the deprecation warnings. We'll change these
over to the new API once we depend on glib >= 2.32.

Replace g_thread_create() with g_thread_try_new().
2011-12-04 17:16:30 +00:00
Wim Taymans 1225aa9a78 update for basesink event handler changes 2011-12-02 22:24:43 +01:00
Tim-Philipp Müller 177525f89f Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst-libs/gst/netbuffer/gstnetbuffer.c
	gst/ffmpegcolorspace/avcodec.h
	gst/ffmpegcolorspace/gstffmpegcodecmap.c
	gst/ffmpegcolorspace/imgconvert.c
	gst/ffmpegcolorspace/imgconvert_template.h
	gst/ffmpegcolorspace/mem.c
	gst/playback/README
	gst/playback/gstplaybasebin.c
	gst/playback/gstplaybasebin.h
	gst/playback/gstplaybin.c
	sys/v4l/v4lmjpegsrc_calls.c
	sys/v4l/videodev_mjpeg.h
	tests/check/elements/gnomevfssink.c
2011-12-02 11:10:17 +00:00
Piotr Fusik 14644457b0 various: typo fixes
Fix typos in code and docs. Fixes. #658984
2011-12-02 12:03:27 +01:00
Wim Taymans 871b306fce video: move some interfaces
Move some interfaces to the video library
2011-11-29 19:10:01 +01:00
Vincent Penquerc'h 96374054ac various: fix pad template leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:09:02 +00:00
Edward Hervey 3233f09adf ximagebufferpool: Use the default ::free_buffer() implementation
Which does exactly the same thing
2011-11-21 13:04:42 +01:00
Edward Hervey 15687f381b xvimagebufferpool: Use the default ::free_buffer() implementation
Which does exactly the same thing
2011-11-21 13:04:12 +01:00
Wim Taymans e067e67923 rename meta* -> *meta 2011-11-02 09:04:27 +01:00
Wim Taymans 016d036137 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	gst-libs/gst/audio/gstbaseaudiosink.c
	gst/audioconvert/channelmixtest.c
	gst/playback/gstplaybasebin.c
	gst/playback/gstsubtitleoverlay.c
	tests/examples/Makefile.am
	tests/examples/audio/Makefile.am
2011-10-27 15:44:58 +02:00
Stefan Sauer 53d7d2e966 interfaces: clean up the use of iface and class/klass 2011-10-21 14:46:48 +02:00
Stefan Sauer b4803361c6 x(v)imagesink: make it more clean that "synchronous" props are not for avsync 2011-10-19 10:42:22 +02:00
Wim Taymans 82d82203f6 base: fix for allocation methods rename 2011-08-26 14:26:37 +02:00
Wim Taymans 3dd31cce39 xvimagesink: fix compiler warning 2011-08-17 10:57:13 +02:00
Wim Taymans 515d4a9a6d xvimage: avoid caps intersection
Store the video format in the XvImage format list so that we can quickly map
between the two.
2011-08-15 18:39:09 +02:00
Tim-Philipp Müller 7f11e9bc30 ximagesink, xvimagesink: update for GstXOverlay -> GstVideoOverlay 2011-08-08 14:12:15 +01:00