Commit graph

286 commits

Author SHA1 Message Date
Wim Taymans
1d9deae5be video: add video copy function
Add a function to copy a video frame, taking care of source and destination
strides.
2011-06-22 15:25:35 +02:00
Wim Taymans
296630a959 video: use gint to make parsing easier
Use gint for with/height etc to make it easier to pass the variables to various
caps and structure parsing functions.
2011-06-21 17:31:17 +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
7426f19027 metavideo: small fixes
Set the buffer as a field in the metadata so that we can use it to map the
buffer data.
Fix wrong assert.
2011-06-17 17:44:56 +02:00
Wim Taymans
20d8d3050c video: use metadata to set up strides
Use the GstMetaVideo when we can to map the buffers and set up the strides.
2011-06-17 16:47:25 +02:00
Wim Taymans
42abb6672e video: Add GstVideoFrame helper structure
The videoframe structure can be used to easily parse the contents of video
buffers.
2011-06-17 15:41:31 +02:00
Wim Taymans
6a254de438 video: port to new API
Add support for palette again.
Rewrite setup code for videoconvert using the new video methods.
2011-06-17 15:39:50 +02:00
Wim Taymans
1aa7ad7dae video: rework part 2
Update docs.
Add method to get number of components.
Implement method to calculate defaults from format and dimensions.
Improve caps parsing.
Implement GstVideoInfo to caps conversion.
2011-06-17 15:37:38 +02:00
Wim Taymans
a7ae8d41aa video: rework part 1
Add GstVideoFlags similar to the flags on the metadata. The idea is to replace
the metadata flags with the GstVideoFlags.
Move VideoPlane to video.h, it contains the information for a plane.
Add GstVideoInfo structure that holds the current configuration of a video
format.
Add methods to parse caps into GstVideoInfo.
2011-06-17 15:33:12 +02:00
Wim Taymans
3b9477e173 video: add methods to parse X11 visuals
Add method to convert X11 visual description to GstVideoFormat
2011-06-16 12:52:13 +02:00
Wim Taymans
42fa1010cb video: update video caps 2011-06-16 12:52:13 +02:00
Wim Taymans
e6f8f7f310 video: fix header after merge 2011-06-02 12:21:28 +02:00
Wim Taymans
f9967e4aac Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/video/video.h
	gst/playback/gstplaysinkaudioconvert.c
	gst/playback/gstplaysinkvideoconvert.c
	tests/check/libs/rtp.c
2011-06-02 12:18:13 +02:00
Tim-Philipp Müller
47614d3106 video: sprinkle some G_GNUC_CONST
Mark functions that have no effect besides their return value and
only inspect their input arguments with G_GNUC_CONST. (We just
ignore the g_return_val_if_fail() guards for this)
2011-05-28 12:29:46 +01:00
Tim-Philipp Müller
2699d875bf video: clean up header file
Sprinkle some spaces and newlines here and there.
2011-05-28 12:29:46 +01:00
Wim Taymans
dfcb6580a3 convertframe: fix for merge conflict 2011-05-24 09:55:47 +02:00
Wim Taymans
a87c021237 Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/video/convertframe.c
2011-05-24 09:47:15 +02:00
Stefan Kost
ce1369a7e5 docs: add missing parameter docs 2011-05-24 00:12:26 +03:00
Stefan Kost
6bee2cb4ee docs: add missing documentation for various pieces 2011-05-23 23:56:09 +03:00
Stefan Kost
8db7c1221e convertframe: fix docs
Fixup paramter mismatch between func and prototype. Add missing parameter docs.
2011-05-23 15:21:59 +03:00
Stefan Kost
b91b12b639 whitespace: trim trailing whitespace 2011-05-23 13:53:06 +03:00
Stefan Kost
6e12954c68 video.c: use a break and a final warning instead of early returns
Use breaks for case branches instead of return 0. We don't expect these to
happen anyway. Thus have a warning before the final return to make it easier to
see when things go out of sync.
2011-05-23 13:50:59 +03:00
Stefan Kost
40273cf2d3 video.c: use g_assert_not_reached() for logical error here.
This will help to detect them closer to the source if they ever happen.
2011-05-23 13:50:09 +03:00
Wim Taymans
489eed9bb8 Merge branch 'master' into 0.11 2011-05-19 11:31:53 +02:00
Robert Swain
ad2010d379 gstvideo: Add gst_video_get_size_from_caps function
gst_video_get_size_from_caps () allows easy calculation of the raw video
buffer size from some fixed video caps.

API: gst_video_get_size_from_caps()
2011-05-18 14:13:46 +02:00
Wim Taymans
c81b1b8019 -base: remove metadata (des)serialize functions 2011-05-11 19:12:42 +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
e7f56a7817 metavideo: add flags and a define for the API 2011-04-29 11:27:46 +02:00
Wim Taymans
6cf9c890c9 metavideo: first attempt at video metadata
Add a first version of video metadata for buffers that can contain more info
about the video such as strides and flags etc.
2011-04-28 19:20:58 +02:00
Sebastian Dröge
c8792778f8 Merge branch 'master' into 0.11 2011-04-16 16:06:26 +02:00
Tim-Philipp Müller
1d05e81435 libs: gobject-introspection scanner doesn't need to scan or update plugin info
Make sure the scanner doesn't load or introspect or check any plugins,
(especially not outside the build directory).
2011-04-16 11:01:53 +01:00
Sebastian Dröge
8eceb64b99 Merge branch 'master' into 0.11 2011-04-16 09:33:44 +02:00
Sebastian Dröge
352edd1dd9 Merge branch 'master' into 0.11 2011-04-16 09:12:31 +02:00
David Schleef
ef3712b427 Revert "video: Remove the extensive checkings from switch"
This reverts commit 500d14c35c.
2011-04-14 12:42:20 -07:00
Sreerenj Balachandran
500d14c35c video: Remove the extensive checkings from switch
The default case handles them already
2011-04-14 10:02:42 +02:00
Tim-Philipp Müller
49cc1718a8 docs: fix typo in video format docs 2011-04-13 09:10:52 +01:00
Wim Taymans
6e160bed3d Merge branch 'master' into 0.11
Conflicts:
	android/alsa.mk
	android/app.mk
	android/app_plugin.mk
	android/audio.mk
	android/audioconvert.mk
	android/decodebin.mk
	android/decodebin2.mk
	android/gdp.mk
	android/interfaces.mk
	android/netbuffer.mk
	android/pbutils.mk
	android/playbin.mk
	android/queue2.mk
	android/riff.mk
	android/rtp.mk
	android/rtsp.mk
	android/sdp.mk
	android/tag.mk
	android/tcp.mk
	android/typefindfunctions.mk
	android/video.mk
2011-04-11 11:37:51 +02:00
Alessandro Decina
030f639a8e android: make it ready for androgenizer
Remove the android/ top dir
Fixe the Makefile.am to be androgenized

To build gstreamer for android we are now using androgenizer which generates the
needed Android.mk files.
Androgenizer can be found here:
http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 07:23:21 +02:00
Wim Taymans
3ea2bc3ab0 Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/rtp/gstbasertpdepayload.c
2011-04-07 16:19:08 +02:00
Sebastian Dröge
a29e55f9c4 video: Fix creation of grayscale caps
The endianness was not set correctly before.

Fixes bug #646923.
2011-04-07 10:06:53 +02:00
Wim Taymans
4007076b55 Merge branch 'master' into 0.11
Conflicts:
	ext/theora/gsttheoraenc.c
2011-04-06 16:33:56 +02:00
David Schleef
5f61df82da video: Fix YUV9 and YVU9 again 2011-04-04 16:01:20 -07:00
Wim Taymans
da1c863711 Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/tag/gstvorbistag.c
2011-04-04 11:31:33 +02:00
David Schleef
629cac4cad video: Fix height calculation for YUV9/YVU9 2011-04-01 13:55:56 -07:00
Tim-Philipp Müller
45b6bda76c libs: make sure gobject-introspection scanner calls gst_init()
Cherry-picked from 0.11, since it's the right thing to do (we
now silently rely on various _get_type() working without
gst_init() having been called).
2011-03-30 21:08:29 +01:00
Tim-Philipp Müller
a818fe7381 libs: replace 0.10 with @GST_MAJORMINOR@ in Makefile.am
For easier cherry-picking/merging later.
2011-03-30 20:57:32 +01:00
Wim Taymans
e1869fa267 Merge branch 'master' into 0.11-fdo 2011-03-28 20:13:59 +02:00
Wim Taymans
3d25a4b470 libs: port to new data API 2011-03-27 13:55:15 +02:00
Thiago Santos
78e8b33c38 video: Getting component offsets without dimensions is fine if it is not YUV
This fixes a regression that an assertion would happen if
gst_video_get_component_offset would be called with width or
height as 0.

Calling it with 0 is fine if the format isn't yuv and this
was already being used in some other places of video.c
2011-03-23 12:21:55 -03:00
David Schleef
a08227505f video: Add gst_video_format_new_template_caps() 2011-03-22 12:11:49 -07:00
Tim-Philipp Müller
842911d241 libs: make sure gobject-introspection scanner calls gst_init()
Fixes introspection failures caused by type assertions/warnings.
Since we now moved from _get_type() functions to external GType
variables in a couple of places, we actually have to call gst_init()
to make sure these are set when we use GST_TYPE_FOO.
2011-03-09 12:17:14 +00:00
Wim Taymans
c6dd11981d Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	gst-libs/gst/pbutils/Makefile.am
2011-02-28 11:47:44 +01:00
David Schleef
1265a42124 video: Add support for r210 2011-02-25 19:37:07 -08:00
Robert Swain
e0a658a664 gstvideo: Add GST_VIDEO_BUFFER_PROGRESSIVE flag
Maps to GST_BUFFER_FLAG_MEDIA4. The purpose is to explicitly indicate
whether a telecined buffer is progressive or not without having to make
assumptions based on previous buffers.
2011-02-25 15:29:56 +01:00
David Schleef
0ed72c2959 video: Add ARGB64 and AYUV64
16-bit per channel formats.
2011-02-20 12:04:02 -08:00
David Schleef
7a24e3ea4e video: Add gst_video_format_get_component_depth() 2011-02-20 12:04:02 -08:00
Tim-Philipp Müller
0ed757db33 gobject-introspection: use same PKG_CONFIG_PATH for g-ir-compiler as for g-ir-scanner
Make sure to use the PKG_CONFIG_PATH set at configure time instead of
just relying on an env-var set one. This makes sure both g-ir-compiler
and g-ir-scanner use the same PKG_CONFIG_PATH for determining include
paths etc.
2011-01-08 02:10:03 +00:00
Edward Hervey
6ce0d6e78b video: Fix uninitialized variables
reported by macosx gcc
2011-01-05 12:02:02 +01:00
Wim Taymans
eee6bc7dc9 more 0.10 -> 0.11 changes 2010-12-06 17:09:10 +01:00
Tim-Philipp Müller
78f33715ff libs: use GLib 2.22 API unconditionally 2010-12-04 14:45:58 +00:00
Tim-Philipp Müller
8604fac13f video: add missing break statement for the GST_VIDEO_FORMAT_RGB8_PALETTED case 2010-12-03 00:02:26 +00:00
Sebastian Dröge
8b60aa8e01 video: Add YUV9, YVU9 and IYU1 video formats
API: GST_VIDEO_FORMAT_YUV9: planar 4:1:0 YUV
API: GST_VIDEO_FORMAT_YVU9: planar 4:1:0 YUV (chroma planes swapped)
API: GST_VIDEO_FORMAT_IYU1: packed 4:1:1 YUV (Cr-Y0-Y1-Cb-Y2-Y3)
2010-12-02 19:04:29 +01:00
Sebastian Dröge
ea7446e5b5 video: Add 8-bit paletted RGB
API: Add GST_VIDEO_FORMAT_RGB8_PALETTED
API: Add GST_VIDEO_CAPS_RGB8_PALETTED
API: Add gst_video_parse_caps_palette()
2010-12-02 19:04:29 +01:00
Sebastian Dröge
a13720fc55 video: Return correct component width/height for A420 2010-12-02 19:04:27 +01:00
Evan Nemerson
8fb2c27ed0 introspection: Add information on exported packages to GIRs
https://bugzilla.gnome.org/show_bug.cgi?id=635392
2010-11-21 00:44:37 +00:00
Sebastian Dröge
b3192de682 video: Fix stupid copy&paste error in last commit 2010-10-15 11:26:50 +02:00
Sebastian Dröge
8741707430 video: API: Add A420 video format
This is planar 4:2:0 YUV plus non-subsampled alpha plane.
2010-10-15 11:12:34 +02:00
Tim-Philipp Müller
e98814c91e docs: add Since: comment to docs for new GST_VIDEO_FORMAT_UYVP 2010-09-15 15:20:25 +01:00
Sebastian Dröge
7ac1938f0f video: Add a destroy notify parameter to gst_video_convert_frame_async()
Binding generators apparently need this as they can't really know
that the callback is guaranteed to be called exactly once and that
the user_data can be freed at the end of it.
2010-09-15 11:26:48 +02:00
David Schleef
1a75dede56 video: Add UYVP, 10-bit 4:2:2 2010-09-14 12:33:21 -07:00
Sebastian Dröge
6407101c53 video: Add async variant of the convert frame function
API: gst_video_convert_frame_async()
2010-09-14 08:42:44 +02:00
Sebastian Dröge
a30371ab15 video: Strip framerate from the target caps
There will always be only a single output buffer and if the
target caps have a different framerate than the input there
will be a negotiation error during conversion.
2010-09-14 08:42:44 +02:00
Sebastian Dröge
b54c4b486a video: Refactor convert_frame a bit and fix some minor memory leaks in error cases 2010-09-14 08:42:44 +02:00
Edward Hervey
349a76ed19 video: Add new method for converting a video frame
https://bugzilla.gnome.org/show_bug.cgi?id=629157
2010-09-14 08:42:43 +02:00
Sebastian Dröge
c30ad57e86 video: Fix component width for NV12/NV21
Both have width/2 as component width for the chroma planes.
2010-08-24 10:03:04 +02:00
Tim-Philipp Müller
e776699036 build: use new AG_GST_PKG_CONFIG_PATH m4 macro from common
Sets up a GST_PKG_CONFIG_PATH variable for use in Makefile.am
(avoids trailing ':' in PKG_CONFIG_PATH used).
2010-08-14 19:12:37 +01:00
Tim-Philipp Müller
b61b83376a introspection: set PKG_CONFIG_PATH so that our in-tree libs come first when calling scanner
When calling gobject-introspection scanner, make sure our own
freshly-built libs within the source tree (well, build dir) come
first in the PKG_CONFIG_PATH. May or may not help to make sure
that it doesn't pick up older external plugins-base libs (or
.gir files) from outside the source tree / build directory as
dependencies of the introspected lib instead of using the
stuff we just built in a sibling directory.

https://bugzilla.gnome.org/show_bug.cgi?id=623698
2010-08-14 19:11:48 +01:00
Edward Hervey
3879c57b01 video: Fix unitialized variable.
yay macosx compilers :(
2010-06-14 14:13:16 +02:00
Sebastian Dröge
506be85356 video: Re-add (but deprecated) GST_VIDEO_{RED,GREEN,BLUE}_MASK_1[56] 2010-06-13 08:20:13 +02:00
Martin Bisson
b8f330dea6 video.{c,h}: Fix an endianness bug fix.
This commit makes sure the endianness is ok for RGB/BGR 15/16 formats.
2010-06-12 13:51:27 +02:00
Martin Bisson
f5a690f860 video.{c,h}: Add support for RGB and BGR with 15 and 16 bits. 2010-06-12 13:51:27 +02:00
Sebastian Dröge
80cc85d218 video: Return TRUE in gst_video_format_is_gray() for Y800 and Y16 2010-06-08 11:01:44 +02:00
Martin Bisson
b0d15133d7 video: Add support for Y800 and Y16
Fixes bug #620441.
2010-06-07 08:17:55 +02:00
Sebastian Dröge
30b67cda5d video: Use simple fraction multiplication functions instead of going through GValues 2010-05-13 11:16:02 +02:00
Sebastian Dröge
25c1a331be video: API: Add GST_VIDEO_FORMAT_v308 for packed 4:4:4 YUV 2010-04-29 18:21:21 +02:00
Tim-Philipp Müller
0ebbb98bfa docs: add gtk-doc chunks with Since: tags for new GST_VIDEO_CAPS_GRAY* API 2010-04-07 20:21:14 +01:00
Sebastian Dröge
fab97aec53 video: Fix parsing of 8-bit grayscale caps 2010-04-07 17:25:23 +02:00
Sebastian Dröge
bf8fff4e33 video: API: Add GST_VIDEO_CAPS_GRAY{8,16} 2010-04-07 17:23:22 +02:00
Sebastian Dröge
1e3a66f539 video: Add support for 8-bit and 16-bit grayscale formats 2010-04-07 17:06:36 +02:00
Vincent Untz
764c899215 libs: point gobject-introspection scanner to .la files
Point g-ir-scanner to the .la file of our library, which hopefully
makes it find the right dependencies in all cases (ie. our locally
built libgstreamer and not the system-installed one). This is also
how it's done in Gtk+ and how it's documented in the wiki, see
http://live.gnome.org/GObjectIntrospection/AutotoolsIntegration

Fixes #603710.
2010-04-03 14:03:45 +01:00
Tim-Philipp Müller
b37c993e4e gst-libs: more gobject-introspection fixes
Use right .pc file variable for compiler includes this time:
g-ir-compiler wants the girdirs not the typelibdirs as includes.
2010-03-30 23:46:10 +01:00
Tim-Philipp Müller
64cfa6bf73 gst-libs: fix up gobject-introspection some more
Use new girdir and typlibdir from core .pc files, so we can figure
out the right includes to pass to the gobject-introspection tools,
whether core is installed in the same prefix as gobject-introspection
or in a different prefix or uninstalled. This also keeps us from adding
bogus paths to the includes that only work if core is uninstalled.

Also add some missing includes/pkgs where needed.
2010-03-30 19:56:56 +01:00
Tim-Philipp Müller
58a92964c6 build: Makefile.am fixes
Mostly just add missing $(GST_BASE_CFLAGS), but also fix up order
of flags (see docs/random/moving-plugins).
2010-03-19 01:00:36 +00:00
David Schleef
5379fbcd1a video: add gst_video_parse_caps_chroma_site() 2010-03-15 01:31:20 -07:00
Tim-Philipp Müller
62ef200ca9 docs: fix Returns: for gst_video_parse_caps_color_matrix() 2010-03-10 01:07:09 +00:00
David Schleef
76afac25b4 video: Add color-matrix handling to caps 2010-03-09 13:17:34 -08:00
Sebastian Dröge
d5a4ca9962 build: Make some more rules silent if requested 2010-03-09 21:01:38 +00:00
Benjamin Otte
ed3e1ab8b2 gstvideo: Fix typos in comments 2010-03-09 19:17:04 +01:00
Stefan Kost
ef09538785 make: fix copy and paste error in git rules (audio<->video) 2010-02-22 13:04:42 +02:00
Jan Schmidt
36711ab477 video: Add functions to create/parse still frame events.
Add a new video event to mark the start or end of a still-frame
sequence, and a parser function to identify and extract info from
such events.
API: gst_video_event_new_still_frame()
API: gst_video_event_parse_still_frame()

Fixes: #601942
2009-11-18 00:10:57 +00:00