Commit graph

134 commits

Author SHA1 Message Date
Wim Taymans ba1ca45eda video: add some more macros 2011-08-17 17:18:02 +02:00
Josep Torra 5629ed74b3 Fix debug statements
Fixes build on MacOSX

Signed-off-by: Edward Hervey <edward.hervey@collabora.co.uk>
2011-08-10 11:15:41 +02:00
Wim Taymans 6b8617271c video: ensure sign in scale function 2011-08-01 16:50:28 +02:00
Wim Taymans 42b49f6b0e video: add macro to access flags 2011-07-29 12:25:13 +02:00
Tim-Philipp Müller c39ad574aa video: make GST_VIDEO_FORMATS_ALL define more readable
We don't need all those quotes, strings will be parsed as strings
regardless, and g-i doesn't seem to like all those escaped quotes.
2011-07-28 13:39:14 +01:00
Wim Taymans 37e7d7415e video: add pack and unpack functions
Add pack and unpack function to handle complex formats in the future.
2011-07-25 18:35:01 +02:00
Wim Taymans 68088f7992 video: add more info in the format structure
Add a field to describe how many bits are used to pack items.
Specify the shift for each component.
Add some more flags to better describe the format.
2011-07-25 18:08:24 +02:00
Wim Taymans 87e06b6808 video: add macros for par and fps 2011-07-10 13:47:35 +02:00
Wim Taymans 7197af583d video: update docs 2011-07-05 16:58:04 +02:00
Wim Taymans 4340b80f81 video: add macro to get frame size 2011-07-04 18:08:25 +02:00
Wim Taymans 9b259250a1 video: add some more macros
Add macros to get the plane and offset of a component.
2011-07-04 16:27:50 +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 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 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 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 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
Tim-Philipp Müller 49cc1718a8 docs: fix typo in video format docs 2011-04-13 09:10:52 +01:00
David Schleef a08227505f video: Add gst_video_format_new_template_caps() 2011-03-22 12:11:49 -07: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
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 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
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 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
Martin Bisson b0d15133d7 video: Add support for Y800 and Y16
Fixes bug #620441.
2010-06-07 08:17:55 +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 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
David Schleef 5379fbcd1a video: add gst_video_parse_caps_chroma_site() 2010-03-15 01:31:20 -07:00
David Schleef 76afac25b4 video: Add color-matrix handling to caps 2010-03-09 13:17:34 -08: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
Benjamin Otte a27f439ab3 Update Since tags for NV12/NV21
They are added in 0.10.26 now, not 0.10.25
2009-10-07 09:58:27 +02:00
Benjamin Otte 1cf651f883 Add NV12 and NV21 formats 2009-10-07 09:54:07 +02:00
David Schleef 45cf881f39 video: Add Y444, v210, v216 formats 2009-05-15 16:18:59 -07:00
Sebastian Dröge a6cf0c8f06 video: Fix typo in the docs 2009-04-15 15:35:59 +02:00
Sebastian Dröge a1d8cfde9d video: Add support for YVYU YUV colorspace 2009-04-15 14:53:47 +02:00
Stefan Kost 58695d78f9 docs: fix newly added interlace constants and plug holes in video format docs 2009-02-26 10:09:59 +02:00
Edward Hervey a490b3f2dd video: Fix 'Since' tags 2009-02-19 17:40:45 +01:00
Edward Hervey c44b067817 video: Add flags for interlaced video along with convenience methods for interlaced caps.
These three flags allow all know combinations of interlaced formats. They should
only be used when the caps contain 'interlaced=True'.

Fixes #163577 (yes, it's a 4 year old bug).
2009-02-19 16:11:44 +01:00
Jan Schmidt 1b2dc5f3a8 gst-libs/gst/video/: Fix up build flags and include statement for the new generated enumtypes files, to fix dist.
Original commit message from CVS:
* gst-libs/gst/video/Makefile.am:
* gst-libs/gst/video/video.h:
Fix up build flags and include statement for the new generated
enumtypes files, to fix dist.
2009-01-06 10:16:16 +00:00
Edward Hervey 98ad43fcdd gst-libs/gst/video/: Add glib-mkenum for GstVideoFormat enum GTYPE auto-generation.
Original commit message from CVS:
* gst-libs/gst/video/Makefile.am:
* gst-libs/gst/video/video.h:
Add glib-mkenum for GstVideoFormat enum GTYPE auto-generation.
This will help bindings to use it.
2008-12-31 13:01:30 +00:00
Jan Schmidt f11cf32c3f Document the GstTuner and GstColorBalance interfaces, and some other random API functions that needed it. 70% symbol ...
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/interfaces/colorbalance.c:
* gst-libs/gst/interfaces/colorbalance.h:
* gst-libs/gst/interfaces/colorbalancechannel.c:
* gst-libs/gst/interfaces/colorbalancechannel.h:
* gst-libs/gst/interfaces/tuner.c:
* gst-libs/gst/interfaces/tunerchannel.c:
* gst-libs/gst/interfaces/tunerchannel.h:
* gst-libs/gst/interfaces/tunernorm.c:
* gst-libs/gst/interfaces/tunernorm.h:
* gst-libs/gst/video/video.c:
* gst-libs/gst/video/video.h:
Document the GstTuner and GstColorBalance interfaces, and some
other random API functions that needed it. 70% symbol coverage, woo.
2008-05-09 21:42:26 +00:00
Tim-Philipp Müller 843366350e gst-libs/gst/video/video.*: API: add GST_VIDEO_FORMAT_Y41B and GST_VIDEO_FORMAT_Y42B.
Original commit message from CVS:
* gst-libs/gst/video/video.c: (gst_video_calculate_display_ratio),
(gst_video_format_from_fourcc), (gst_video_format_to_fourcc),
(gst_video_format_is_rgb), (gst_video_format_is_yuv),
(gst_video_format_has_alpha), (gst_video_format_get_row_stride),
(gst_video_format_get_pixel_stride),
(gst_video_format_get_component_width),
(gst_video_format_get_component_height),
(gst_video_format_get_component_offset), (gst_video_format_get_size):
* gst-libs/gst/video/video.h: (GST_VIDEO_FORMAT_Y41B),
(GST_VIDEO_FORMAT_Y42B):
API: add GST_VIDEO_FORMAT_Y41B and GST_VIDEO_FORMAT_Y42B.
2008-03-02 18:20:44 +00:00
David Schleef d605ca3ba2 gst-libs/gst/video/video.*: Add additional RGBA and RGB-24 video formats.
Original commit message from CVS:
* gst-libs/gst/video/video.c:
* gst-libs/gst/video/video.h:
Add additional RGBA and RGB-24 video formats.
2007-12-22 05:19:00 +00:00
David Schleef 1c3e012fc3 Add new GstVideFormat enum and write a bunch of helper functions based around it.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/video/video.c:
* gst-libs/gst/video/video.h:
Add new GstVideFormat enum and write a bunch of helper functions
based around it.
2007-12-18 00:13:26 +00:00
Jan Schmidt 34db0838be Fix integer overflow problem with pixel-aspect-ratio calculations in videoscale and xvimagesink (#341542)
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-docs.sgml:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/video/video.c: (gst_video_calculate_display_ratio):
* gst-libs/gst/video/video.h:
* gst/videoscale/Makefile.am:
* gst/videoscale/gstvideoscale.c: (gst_video_scale_fixate_caps):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_setcaps):
* tests/check/Makefile.am:
* tests/check/libs/video.c: (GST_START_TEST), (video_suite),
(main):
Fix integer overflow problem with pixel-aspect-ratio calculations
in videoscale and xvimagesink (#341542)
2006-05-12 21:30:00 +00:00
Thomas Vander Stichele 5f83aa7dfa expand tabs
Original commit message from CVS:
expand tabs
2005-12-06 19:42:02 +00:00
Jan Schmidt 0e82871285 Convert elements to use fractions for their framerate.
Original commit message from CVS:
* ext/libvisual/visual.c: (gst_visual_src_setcaps), (get_buffer),
(gst_visual_chain):
* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
* ext/theora/theoradec.c: (theora_handle_type_packet):
* ext/theora/theoraenc.c: (theora_enc_sink_setcaps),
(theora_enc_chain):
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
* gst-libs/gst/video/video.c: (gst_video_frame_rate):
* gst-libs/gst/video/video.h:
* gst/ffmpegcolorspace/avcodec.h:
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
(gst_ffmpeg_caps_to_pixfmt):
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcsp_set_caps):
* gst/videorate/gstvideorate.c: (gst_videorate_transformcaps),
(gst_videorate_setcaps), (gst_videorate_blank_data),
(gst_videorate_chain):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_videotestsrc_src_fixate), (gst_videotestsrc_getcaps),
(gst_videotestsrc_parse_caps), (gst_videotestsrc_setcaps),
(gst_videotestsrc_event), (gst_videotestsrc_create):
* gst/videotestsrc/gstvideotestsrc.h:
* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get),
(gst_ximagesink_setcaps), (gst_ximagesink_change_state),
(gst_ximagesink_get_times), (gst_ximagesink_init):
* sys/ximage/ximagesink.h:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support),
(gst_xvimagesink_setcaps), (gst_xvimagesink_change_state),
(gst_xvimagesink_get_times), (gst_xvimagesink_init):
* sys/xvimage/xvimagesink.h:
Convert elements to use fractions for their framerate.
V4L elements to come later tonight.
2005-11-22 16:08:37 +00:00
Julien Moutte 69f68fa9f6 And here comes my change on caps for framerate and geometry range.
Original commit message from CVS:
2005-10-24  Julien MOUTTE  <julien@moutte.net>

* gst-libs/gst/video/video.h:
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
And
here comes my change on caps for framerate and geometry range.
We are now accepting 1 to MAXINT for width and height, and from
0.0 to MAXDOUBLE for framerate. That allows duration less png
frames
to be blended correctly in videomixer.
2005-10-24 13:36:40 +00:00
Tim-Philipp Müller 38f505b3c8 Add G_BEGIN_DECLS and G_END_DECLS around headers where missing, so that they work when included from C++ code
Original commit message from CVS:
Add G_BEGIN_DECLS and G_END_DECLS around headers where missing, so that they work when included from C++ code
2005-02-09 22:31:05 +00:00
Wim Taymans 4d6a0cb39e gst-libs/gst/video/video.h: Added 32 bits RGBA. Not sure if we should use another mime-type for alpha rgb. Currently ...
Original commit message from CVS:
* gst-libs/gst/video/video.h:
Added 32 bits RGBA. Not sure if we should use another mime-type
for alpha rgb. Currently the presence of the alpha_mask property
signals an alpha channel. Ronald?
2004-07-16 10:40:54 +00:00
Johan Dahlin bf07c7cc9b *.h: Revert indenting
Original commit message from CVS:
* *.h: Revert indenting
2004-03-15 16:32:55 +00:00
Thomas Vander Stichele 4df3f18839 gst-indent
Original commit message from CVS:
gst-indent
2004-03-14 22:34:34 +00:00
Benjamin Otte 883b6925fd gst-libs/gst/video/video.h: Fix caps template names to be understandable.
Original commit message from CVS:
2004-01-12  Benjamin Otte  <in7y118@public.uni-hamburg.de>

* gst-libs/gst/video/video.h:
Fix caps template names to be understandable.
Prefix everything with GST_VIDEO.
* ext/aalib/gstaasink.c:
* ext/divx/gstdivxdec.c:
* ext/divx/gstdivxenc.c:
* ext/gdk_pixbuf/gstgdkpixbuf.c:
* ext/hermes/gstcolorspace.c: (gst_colorspace_base_init):
* ext/jpeg/gstjpegdec.c: (raw_caps_factory):
* ext/jpeg/gstjpegenc.c: (raw_caps_factory):
* ext/libcaca/gstcacasink.c:
* ext/libpng/gstpngenc.c: (raw_caps_factory):
* ext/snapshot/gstsnapshot.c:
* ext/swfdec/gstswfdec.c:
* ext/xvid/gstxviddec.c:
* ext/xvid/gstxvidenc.c:
* gst/chart/gstchart.c:
* gst/deinterlace/gstdeinterlace.c:
* gst/effectv/gsteffectv.c:
* gst/flx/gstflxdec.c: (gst_flxdec_loop):
* gst/goom/gstgoom.c:
* gst/median/gstmedian.c:
* gst/monoscope/gstmonoscope.c: (gst_monoscope_init),
(gst_monoscope_srcconnect), (gst_monoscope_chain):
* gst/overlay/gstoverlay.c:
* gst/smooth/gstsmooth.c:
* gst/smpte/gstsmpte.c:
* gst/synaesthesia/gstsynaesthesia.c:
* gst/videocrop/gstvideocrop.c:
* gst/videodrop/gstvideodrop.c:
* gst/y4m/gsty4mencode.c:
* sys/qcam/gstqcamsrc.c:
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_palette_to_caps):
Make them work with new video.h file.
* sys/ximage/ximagesink.c: (gst_ximagesink_chain),
(gst_ximagesink_buffer_free), (gst_ximagesink_buffer_alloc):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain),
(gst_xvimagesink_buffer_free), (gst_xvimagesink_buffer_alloc):
Make it work with new buffer allocation system.
2004-01-12 02:01:52 +00:00
Benjamin Otte 23bb1b8f35 I'm too lazy to comment this
Original commit message from CVS:
*** empty log message ***
2004-01-11 19:34:15 +00:00
David Schleef 3b60021408 Merge CAPS branch
Original commit message from CVS:
Merge CAPS branch
2003-12-22 01:47:09 +00:00
Benjamin Otte c0909a864e make colorspace handle the original RGB format, too, since it handles both. Add the template caps for the reverse for...
Original commit message from CVS:
make colorspace handle the original RGB format, too, since it handles both. Add the template caps for the reverse format to video.h
2003-11-11 22:40:43 +00:00
David Schleef b81262ad9c Fix endianness issues manifested in pngenc. Fixes #125932
Original commit message from CVS:
Fix endianness issues manifested in pngenc.  Fixes #125932
2003-11-05 03:59:53 +00:00
Ronald S. Bultje b005531324 New mimetypes gone into effect today - this commit changes all old mimetypes over to the new mimetypes spec as descri...
Original commit message from CVS:
New mimetypes gone into effect today - this commit changes all old mimetypes over to the new mimetypes spec as described in the previous commit's document. Note: some plugins will break, some pipelines will break, expect HEAD to be broken or at least not 100% working for a few days, but don't forget to report bugs
2003-07-06 20:49:52 +00:00
Ronald S. Bultje d1cdccccce Add untested get-video-size function (bug 104360)
Original commit message from CVS:
Add untested get-video-size function (bug 104360)
2003-01-30 20:47:43 +00:00
Thomas Vander Stichele 4b83831f48 muhaha
Original commit message from CVS:
muhaha
2002-11-09 18:31:27 +00:00
Ronald S. Bultje 895c730a13 This adds a generic video functions library
Original commit message from CVS:
This adds a generic video functions library
2002-09-26 12:20:12 +00:00