Commit graph

37 commits

Author SHA1 Message Date
Sebastian Dröge 49ac382b47 video-converter: Implement multi-threaded scaling/conversion
This adds a property to select the maximum number of threads to use for
conversion and scaling. During processing, each plane is split into
an equal number of consecutive lines that are then processed by each
thread.

During tests, this gave up to 1.8x speedup with 2 threads and up to 3.2x
speedup with 4 threads when converting e.g. 1080p to 4k in v210.

https://bugzilla.gnome.org/show_bug.cgi?id=778974
2017-02-23 21:55:29 +02:00
Stefan Sauer 68c5adec38 videoscale: fix debug categories
Use a local category for the default category and fix the import for the
performance category.
2015-07-03 21:08:03 +02:00
Jan Schmidt 3d60fb654b docs: Add new video functions and objects. Cleanup a little.
Add GstVideoChroma, GstVideoDither, GstVideoScaler and friends to the docs.

Remove and clean up a few obsolete/deleted refs and typos
2015-03-13 01:08:25 +11:00
Wim Taymans 43f44d41dc videoscale: add property to do scaling after gamma-decode 2014-11-25 11:54:51 +01:00
Wim Taymans 724b83c5f5 videoscale: add more scaling filters
Adjust the filter parameters so that they use the same number of taps
and method as the old ones.
Add some new filters
2014-11-25 11:28:42 +01:00
Wim Taymans 835422b2ea videoscale: port to new API 2014-11-10 11:45:52 +01: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
Tim-Philipp Müller a314325002 videoscale: sprinkle some G_GNUC_INTERNAL
Not sure it actually makes any difference for plugins though.
2012-08-04 22:05:20 +01:00
Wim Taymans a5f3d21723 videofilter: improve video filter
Flesh out the video filter base class. Make it parse the input and output caps
and turn them into GstVideoInfo. Map buffers as video frames and pass them to
the transform functions.
This allows us to also implement the propose and decide_allocation vmethods.
Implement the transform size method as well.
Update subclasses with the new improvements.
2011-12-21 23:46:53 +01:00
Wim Taymans 8a9c4ed69f videofilter: implement propose_allocation
With the new video bufferpool we can now implement the propose_allocation
vmethod on some video filter elements so that we can also use video metadata and
bufferpools when not operating in passthrough mode.
2011-12-21 18:58:42 +01:00
Wim Taymans 7012e88090 Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/audio/audio.h
	gst-libs/gst/audio/gstaudiodecoder.c
	gst-libs/gst/audio/gstaudiodecoder.h
	gst-libs/gst/audio/gstaudioencoder.c
	gst-libs/gst/audio/gstbaseaudioencoder.h
	gst/playback/Makefile.am
	gst/playback/gstplaybin.c
	gst/playback/gstplaysink.c
	gst/playback/gstplaysinkvideoconvert.c
	gst/playback/gstsubtitleoverlay.c
	gst/videorate/gstvideorate.c
	gst/videoscale/gstvideoscale.c
	win32/common/libgstaudio.def
2011-09-06 15:24:32 +02:00
David Schleef 4e38577b30 videoscale: Add modified Lanczos scaling method
Adds a Lanczos-derived scaling method, which is rather slow, but very
high quality.  Adds a few properties that can be used to tune various
scaling properties: sharpness, sharpen, envelope, dither.  Not currently
Orcified, but was designed with that in mind.
2011-09-01 15:16:50 -07:00
Wim Taymans d93129d8da -base: port to GstVideoFrame API 2011-06-17 15:41:31 +02:00
Sebastian Dröge 52e711b11d videoscale: Add support for adding black borders to keep the DAR if necessary
Fixes bug #617506.
2010-07-18 15:44:14 +02:00
Sebastian Dröge 58c77eb1b4 videoscale: Remove interlaced scaling again
This behaviour was not preferred and caused visible image quality
degradations. The real solution would be, to apply a real
deinterlacing filter before scaling the frames.

Fixes bug #615471.
2010-07-18 15:44:13 +02:00
Sebastian Dröge b4c2af416d videoscale: Use libgstvideo for caps parsing, etc 2010-06-12 13:51:26 +02:00
Sebastian Dröge 838d76dc4b videoscale: Some random cleanup 2010-04-29 18:21:21 +02:00
Sebastian Dröge 33c490f4b9 videoscale: Add support for interlaced content
videoscale is not mixing content of two seperate fields anymore
and does scaling on every field separately.

Fixes bug #588761.
2009-08-06 06:43:31 +02:00
David Schleef 25d874ec9b gst/videoscale/: Add a 4-tap image scaler. Theoretically looks much prettier.
Original commit message from CVS:
* gst/videoscale/Makefile.am:
* gst/videoscale/gstvideoscale.c:
* gst/videoscale/gstvideoscale.h:
* gst/videoscale/vs_4tap.c:
* gst/videoscale/vs_4tap.h:
* gst/videoscale/vs_image.c:
* gst/videoscale/vs_image.h:
* gst/videoscale/vs_scanline.c:
* gst/videoscale/vs_scanline.h:
Add a 4-tap image scaler.  Theoretically looks much prettier.
The tap calculation could use some improvement.
2006-11-14 23:08:38 +00:00
Stefan Kost 131fb86b4b Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
Original commit message from CVS:
* ext/alsa/gstalsamixerelement.h:
* ext/alsa/gstalsamixeroptions.h:
* ext/alsa/gstalsamixertrack.h:
* ext/gnomevfs/gstgnomevfssink.h:
* ext/gnomevfs/gstgnomevfssrc.h:
* ext/theora/gsttheoradec.h:
* ext/theora/gsttheoraenc.h:
* ext/theora/gsttheoraparse.h:
* ext/vorbis/vorbisparse.h:
* gst-libs/gst/audio/gstaudioclock.h:
* gst-libs/gst/audio/gstaudiofilter.h:
* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
* gst/audioconvert/gstaudioconvert.h:
* gst/audioresample/gstaudioresample.h:
* gst/audiotestsrc/gstaudiotestsrc.h:
* gst/ffmpegcolorspace/gstffmpegcolorspace.h:
* gst/playback/gststreamselector.h:
* gst/tcp/gstmultifdsink.h:
* gst/tcp/gsttcpclientsink.h:
* gst/tcp/gsttcpclientsrc.h:
* gst/tcp/gsttcpserversink.h:
* gst/tcp/gsttcpserversrc.h:
* gst/videorate/gstvideorate.h:
* gst/videoscale/gstvideoscale.h:
* gst/videotestsrc/gstvideotestsrc.h:
* gst/volume/gstvolume.h:
* sys/v4l/gstv4ljpegsrc.h:
* sys/v4l/gstv4lmjpegsink.h:
* sys/v4l/gstv4lmjpegsrc.h:
* sys/v4l/gstv4lsrc.h:
* sys/ximage/ximagesink.h:
* sys/xvimage/xvimagesink.h:
* tests/old/testsuite/alsa/sinesrc.h:
Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
2006-06-01 19:19:51 +00:00
Wim Taymans e8d172d0f4 docs/plugins/: Added videoscale to docs.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
Added videoscale to docs.
* gst/videorate/gstvideorate.c: (gst_video_rate_flush_prev),
(gst_video_rate_swap_prev), (gst_video_rate_event),
(gst_video_rate_chain):
Fix typo in docs.
* gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init),
(gst_video_scale_init), (gst_video_scale_prepare_size),
(gst_video_scale_set_caps), (gst_video_scale_get_unit_size),
(gst_video_scale_fixate_caps), (gst_video_scale_transform):
* gst/videoscale/gstvideoscale.h:
Added docs, examples.
Some code cleanups.
Post errors instead of g_warning.
2006-03-02 17:46:36 +00:00
Thomas Vander Stichele f39b477379 borgify further clean up docs a little
Original commit message from CVS:
borgify further
clean up docs a little
2005-12-01 01:12:55 +00:00
Thomas Vander Stichele c40059cfd6 gst/videoscale/gstvideoscale.*: remove unimplemented scale methods
Original commit message from CVS:

* gst/videoscale/gstvideoscale.h:
* gst/videoscale/gstvideoscale.c:
remove unimplemented scale methods
2005-11-29 01:13:06 +00:00
Wim Taymans da25385ed2 gst/videoscale/gstvideoscale.*: Refactor, make use of BaseTranform really well.
Original commit message from CVS:
* gst/videoscale/gstvideoscale.c: (gst_videoscale_init),
(gst_videoscale_prepare_size), (parse_caps),
(gst_videoscale_set_caps), (gst_videoscale_get_size),
(gst_videoscale_prepare_image), (gst_videoscale_transform_ip),
(gst_videoscale_transform):
* gst/videoscale/gstvideoscale.h:
Refactor, make use of BaseTranform really well.
2005-08-24 15:07:54 +00:00
Andy Wingo 5f91e70f0b gst/videoscale/gstvideoscale.*: Clean up, port to 0.9. Derives from BaseTransform, implements a transform_caps. Remov...
Original commit message from CVS:
2005-07-01  Andy Wingo  <wingo@pobox.com>

* gst/videoscale/gstvideoscale.c:
* gst/videoscale/gstvideoscale.h: Clean up, port to 0.9. Derives
from BaseTransform, implements a transform_caps. Removed dead code
including some PAR stuff that was never reached -- should probably
be added back somehow.
2005-07-01 17:03:13 +00:00
Andy Wingo 4063477460 gst/videoscale: Merge David's work from 0.8 branch. Changes to come later.
Original commit message from CVS:
2005-07-01  Andy Wingo  <wingo@pobox.com>

* gst/videoscale: Merge David's work from 0.8 branch. Changes to
come later.
2005-07-01 16:55:43 +00:00
Thomas Vander Stichele cc2e1fab44 pixel aspect ratio handling
Original commit message from CVS:
pixel aspect ratio handling
2004-07-27 16:43:24 +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
Thomas Vander Stichele 5c204680fb add debug category and use it properly
Original commit message from CVS:
add debug category and use it properly
2004-02-25 17:37:26 +00:00
Ronald S. Bultje 3f9d4cbd08 Remove all config.h includes from header files, add it to each source file and remove duplicate config.h includes fro...
Original commit message from CVS:
Remove all config.h includes from header files, add it to each source file and remove duplicate config.h includes from several source files
2003-11-07 12:47:02 +00:00
David Schleef 6511cd71bb Add passthru. Remove height/width parameters. Fix caps negotiation to automatically work with ranges in the output.
Original commit message from CVS:
Add passthru.  Remove height/width parameters.  Fix caps negotiation
to automatically work with ranges in the output.
2003-09-14 11:25:48 +00:00
David Schleef 856cea1d53 Rewrote much of videoscale. Now handles most common YUV formats as well as 32 and 24 bit RGB. Only handles "nearest...
Original commit message from CVS:
Rewrote much of videoscale.  Now handles most common YUV formats
as well as 32 and 24 bit RGB.  Only handles "nearest" scaling.
2003-04-22 07:32:50 +00:00
Wim Taymans db77f68c5b Parse the format as a fourcc
Original commit message from CVS:
Parse the format as a fourcc
2002-07-26 20:27:01 +00:00
Andy Wingo 598d929eec s/Gnome-Streamer/GStreamer/
Original commit message from CVS:
s/Gnome-Streamer/GStreamer/
2002-03-20 21:45:03 +00:00
Andy Wingo 1049c792c8 removal of //-style comments don't link plugins to core libs -- the versioning is done internally to the plugins with...
Original commit message from CVS:
* removal of //-style comments
* don't link plugins to core libs -- the versioning is done internally to the plugins with the plugin_info struct,
and symbol resolution is lazy, so we can always know if a plugin can be loaded by the plugin_info data. in theory.
2002-03-19 04:10:06 +00:00
Andy Wingo 92d4e11782 Initial revision
Original commit message from CVS:
Initial revision
2001-12-22 23:27:17 +00:00