Commit graph

414 commits

Author SHA1 Message Date
Sebastian Dröge 71900c4342 video: Only use the interlacing buffer flags if the caps specify interlaced video 2012-04-25 13:46:00 +02:00
Sebastian Dröge 47e169b0b5 videoencoder: Proxy the interlaced buffer flags to the GstVideoCodecFrame 2012-04-25 13:44:30 +02:00
Sebastian Dröge 76f47979c1 videoencoder: Don't propose video-meta by default 2012-04-25 13:19:11 +02:00
Sebastian Dröge 7c165187af videodecoder: Change configure_buffer_pool() vfunc to decide_allocation() with same semantics as in basetransform 2012-04-25 13:19:11 +02:00
Sebastian Dröge 3de8d58c4e videoencoder: Add support for subclasses to propose allocation parameters 2012-04-24 22:42:59 +02:00
Sebastian Dröge 1483997207 videodecoder: Add support for subclasses to configure the buffer pool 2012-04-24 22:35:29 +02:00
Sebastian Dröge a8c40a658c video: Some porting bugfixes 2012-04-24 21:32:08 +02:00
Sebastian Dröge b945c01549 videodecoder: Add minimal support for buffer pools 2012-04-24 20:04:48 +02:00
Sebastian Dröge 63563e3d5e videodecoder: Require to chain up to the parent classes event functions 2012-04-24 19:51:30 +02:00
Sebastian Dröge 13b88908ce videoencoder: Require to chain up to the parent's sink event functions 2012-04-24 19:47:22 +02:00
Sebastian Dröge f7bc9cc5ba video: Initial port of video base classes and related things to 0.11 2012-04-24 19:35:24 +02:00
Sebastian Dröge 3ab5be1cff video: Remove custom marshallers 2012-04-24 18:16:27 +02:00
Sebastian Dröge a0e3a9e32d Merge remote-tracking branch 'origin/0.10'
Video base classes and theora plugin still needs to be ported again

Conflicts:
	docs/libs/gst-plugins-base-libs-docs.sgml
	docs/libs/gst-plugins-base-libs-sections.txt
	docs/libs/gst-plugins-base-libs.types
	ext/theora/gsttheoradec.c
	ext/theora/gsttheoradec.h
	ext/theora/gsttheoraenc.c
	ext/theora/gsttheoraenc.h
	gst-libs/gst/video/Makefile.am
	gst-libs/gst/video/video.c
	gst-libs/gst/video/video.h
	gst/playback/gsturidecodebin.c
	tests/check/libs/video.c
	tests/check/pipelines/theoraenc.c
	win32/common/libgstvideo.def
2012-04-24 18:14:31 +02:00
Edward Hervey 4f1e7eec40 video: Fix gst_video_info_to_caps
And use the 0.10 caps style
2012-04-24 17:03:40 +02:00
Edward Hervey a744c98985 videodecoder: Detect buffers inputted with DTS
Some container formats (like AVI) set DTS on the buffers instead of
PTS.
We detect this by:
* detecting if input timestamps are non-increasing
* detecting if the order the frames come out is the same as the order
  they were inputted (meaning the implementation is reordering frames).

If the decoder reorders frames, but input buffer timestamps were not
reordered, that means the buffers has DTS and not PTS as their timestamp.
If this is the case, we use set the PTS of the outgoing frames in the
same order as they were given to the decoder.

This fixes the issue for any decoder using this base class (yay).
2012-04-24 17:03:40 +02:00
Edward Hervey f6cfd763e4 video: Base classes for video decoders and encoders 2012-04-24 17:03:40 +02:00
Edward Hervey a22545134d video: Add gst_video_info_is_equal 2012-04-24 10:44:44 +02:00
Edward Hervey 0a7d047b1f video: Add GST_VIDEO_FORMAT_ENCODED 2012-04-24 10:44:44 +02:00
Edward Hervey 8f00d76c97 video: Backport GstVideoInfo/GstVideoFormatInfo from 0.11 2012-04-24 10:44:44 +02: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 91ffe7dd5e video: Clean up interlaced flags and enums
There's a new GstVideoFrameFlags enum now that contains the frame
specific flags only. GstVideoFlags does not contain the TFF/TFF/ONEFIELD
flags anymore because these are strictly frame specific.

Also add fallback to parse these fields from the GstBufferFlags in
gst_video_frame_map() if there's no GstVideoMeta attached to the buffer.
2012-04-19 12:30:57 +02:00
Wim Taymans 66615a8a6a videofilter: shortcut transform_ip when not set
We can ask the base class to not call our transform_ip method when the subclass
didn't provide an in-place transform function.
2012-04-14 11:26:28 +02:00
Víctor Manuel Jáquez Leal 3f3dceb675 videopool: fix mem leak
When setting its config, the pool increase the ref count of the allocator, but
at finalize the ref count is also increased rather than decreased.

This one-liner patch changes the gst_allocator_ref() for gst_allocator_unref()

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674011
2012-04-14 10:36:02 +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
Sebastian Dröge 65307dd132 gst: Update versioning 2012-04-04 14:55:15 +02:00
Wim Taymans ac9a8781ba video: fix macros 2012-04-02 12:25:30 +02:00
Wim Taymans 1d60bd12e5 videometa: use new buffer methods when mapping memory
Use _find_memory and _map_range to simplify, improve and optimize the
memory mapping of video frames.
2012-04-01 18:04:10 +02:00
Wim Taymans 6f8347de9f videofilter: don't map writable in passthrough
In passthrough mode we shouldn't map the buffer in write mode because the buffer
might not be writable.
2012-04-01 18:01:15 +02:00
Edward Hervey 32c617c867 video: Fix 'comparison of unsigned enum expression < 0 is always false' compiler warning 2012-03-30 12:05:51 +02:00
Sebastian Dröge 9e13d70b2c Merge remote-tracking branch 'origin/0.10'
Conflicts:
	gst-libs/gst/video/video-overlay-composition.c
	tests/check/libs/video.c
2012-03-29 15:00:22 +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 c6f55538e3 video: keep the buffer reffed in the videoframe
This would also ensure that the buffer is not writable while mapped.
2012-03-27 15:01:01 +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
Mark Nauwelaerts 6c260d732c video: remove bogus define 2012-03-26 18:13:13 +02:00
Tim-Philipp Müller 3242f55861 test: fix leak in video overlay composition unit test
gst_buffer_set_qdata() will leak the structure passed to it
when called incorrectly (e.g. on a non-metadata-writable buffer).
This is expected, but we must avoid doing that in valgrind.
2012-03-25 13:35:23 +01:00
Tim-Philipp Müller 35a17ac152 video: overlay-composition: blending micro-optimisation 2012-03-25 11:33:04 +01:00
Tim-Philipp Müller 79953f27a8 video: overlay-composition: try to avoid floating point maths in inner loop
Try to avoid floating point maths for each pixel to be blended in
inner loop, and try to avoid the multiplication entirely for the
most common case of the global alpha being 1. Could probably be
refactored a bit more.
2012-03-25 11:31:31 +01:00
Tim-Philipp Müller 32679e1826 video: overlay-composition: some minor clean-ups
extract_alpha and apply_global alpha always return TRUE really,
so just do away with the return value. Convert a g_return_if_fail()
into a g_assert(), since this is only to check internal consistency
and not a guard for public API. Add some locking.

https://bugzilla.gnome.org/show_bug.cgi?id=668483
2012-03-25 11:27:24 +01:00
Holger Kaelberer 76c0881549 video: overlay-composition: add support for global alpha multiplicator
https://bugzilla.gnome.org/show_bug.cgi?id=668483
2012-03-25 11:27:24 +01:00
Wim Taymans 32bd12dba9 Merge branch 'master' into 0.11
Conflicts:
	.gitignore
	common
	configure.ac
	ext/vorbis/gstvorbisdeclib.h
	gst-libs/gst/audio/gstaudioencoder.c
	gst-libs/gst/riff/riff-read.c
	gst/playback/gstplaysink.c
	gst/playback/gstplaysinkconvertbin.c
	tests/check/libs/video.c
2012-03-22 11:35:13 +01:00
Mark Nauwelaerts d455b29db4 video: fix assertion comparison mishap 2012-03-20 11:22:29 +01:00
Wim Taymans e620dbc57d video: add function to copy one video plane 2012-03-19 12:26:11 +01: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 df5253b22c update for memory api changes 2012-03-15 13:32:08 +01:00
Wim Taymans 28034226c6 update for memory api changes 2012-03-14 21:35:45 +01:00
Wim Taymans 39d78762b9 take padding into account 2012-03-14 19:56:51 +01:00
Tim-Philipp Müller 2c4b379470 video: overlay-composition: fix alpha premultiply and unpremultiply
Fix component offsets for little endian systems.

https://bugzilla.gnome.org/show_bug.cgi?id=668483
2012-03-14 18:04:38 +00:00
Holger Kaelberer 027f5bb471 video: overlay-composition: fix rectangle caching after alpha (un)premultiplying
If we are asked to (un)premultiply,we need to create the new rectangle
with the right flags, so we can find it properly on subsequent cache
lookups (also because it's wrong otherwise).

https://bugzilla.gnome.org/show_bug.cgi?id=668483
2012-03-14 18:04:38 +00:00