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
David Schleef
8264d59aab
videoscale: use simpler scaling method for small images
...
https://bugzilla.gnome.org/show_bug.cgi?id=633837
2011-04-24 12:55:28 +01:00
Thiago Santos
91ed9290b8
videoscale: Fix assertion on caps fixation
...
When fixating caps, from_par should always be initialized
with a fixed value.
In case the fixation is from src to sink pad it was setting
the from par (srcpad par) to a fraction range, this patch initializes
it to 1/1, based on the assumption that missing PAR is 1/1.
https://bugzilla.gnome.org/show_bug.cgi?id=641952
2011-03-22 15:24:01 -03:00
David Schleef
e1149f52c1
videoscale: Add 16-bit-channel support
2011-02-20 12:04:02 -08:00
Sebastian Dröge
32f28f476e
videoscale: Change classification to Filter/Converter/Video/Scaler
2010-12-16 10:11:43 +01:00
Sebastian Dröge
8ba4b70118
Revert "Revert "Use init functions for Orc code""
...
This reverts commit 93aa13639d
.
Everything should work now after regenerating the disted source files.
2010-09-09 10:57:41 +02:00
Wim Taymans
93aa13639d
Revert "Use init functions for Orc code"
...
This reverts commit b2051090b4
.
Fixes the build again until someone pushes the regenerated .c/.h
files too.
2010-08-27 11:49:47 +02:00
David Schleef
b2051090b4
Use init functions for Orc code
2010-08-26 17:03:13 -07:00
Sebastian Dröge
4d757a29ee
videoscale: Only set the PAR if the caps already had a PAR
...
Otherwise we're producing different caps and basetransform thinks that it
can't passthrough buffer allocations, etc.
In 0.11 all video caps really should have the PAR set...
2010-08-11 18:10:45 +02:00
Sebastian Dröge
6fb91f7711
videoscale: Rename borders property to add-borders
2010-07-19 15:59:17 +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
fc9de9e0a1
videoscale: Fix caps fixating if the height is fixed but the width isn't
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
9fe51a4a50
videoscale: Add helper method for filling the VSImage struct
2010-07-18 15:44:13 +02:00
Sebastian Dröge
fa8fd0d7f6
videoscale: ...and add Y16 case for the linear scaling
2010-06-13 20:57:19 +02:00
Sebastian Dröge
c2e01e09c4
videoscale: Add Y16 case for 4-tap scaling
2010-06-13 20:38:23 +02:00
Sebastian Dröge
c2bdfc11af
videoscale: Use correct variables for debug output
2010-06-12 21:04:48 +02:00
Sebastian Dröge
c3cfb404ae
videoscale: Add support for more gray formats
2010-06-12 13:59:32 +02:00
Sebastian Dröge
b4c2af416d
videoscale: Use libgstvideo for caps parsing, etc
2010-06-12 13:51:26 +02:00
Sebastian Dröge
d91e3d8d78
videoscale: Use GST_VIDEO_CAPS_GRAY{8,16}
2010-06-12 13:00:26 +02:00
David Schleef
dbfd5a5af8
videoscale: convert from liboil to orc
2010-06-07 23:58:54 -07:00
Sebastian Dröge
a6a125e4ba
videoscale: Use passthrough mode if width and height are not changed
...
It doesn't matter if the PAR changes or not, processing of every pixel
is only necessary when the width or height changes.
2010-05-13 12:17:31 +02:00
Sebastian Dröge
b3808a57d4
videoscale: Try harder to keep the DAR if possible
...
Fixes bug #371108 .
2010-05-13 11:16:02 +02:00
Sebastian Dröge
9f677090d5
videoscale: Log PAR and DAR of input and output caps when setting caps
2010-05-13 11:16:01 +02:00
Sebastian Dröge
eb2166c97d
videoscale: Set input width/height if the output caps don't have any width or height
2010-05-13 11:16:01 +02:00
Andoni Morales
75a2e14e06
videoscale: Try to keep DAR when scaling
...
Fixes bug #371108 .
2010-05-13 11:16:01 +02:00
Stefan Kost
4967d4e3fd
videoscale: use can_intersect to avoid a caps copy
2010-05-06 09:17:33 +03:00
Sebastian Dröge
838d76dc4b
videoscale: Some random cleanup
2010-04-29 18:21:21 +02:00
Sebastian Dröge
43b370358d
videoscale: Add support for Y444, Y42B and Y41B
2010-04-29 18:21:21 +02:00
Sebastian Dröge
2fb31ad43c
videoscale: Reorder template caps by the amount of information contained in the color formats
2010-04-29 18:21:21 +02:00
Benjamin Otte
5e21fa5e0e
gst_element_class_set_details => gst_element_class_set_details_simple
...
Also change my email from the old university one to the current one.
2010-03-16 17:41:50 +01:00
Edward Hervey
8cd1b5209b
gst: Remove dead assignments and resulting unused variables
2009-08-08 15:54:02 +02:00
Sebastian Dröge
cac4b032c3
videoscale: Restrict width/height to 2^15 - 1
...
Otherwise integer overflows will happen, resulting in segmentation faults.
Fixes bug #590243 .
2009-08-06 06:43:34 +02:00
Sebastian Dröge
b69f5e2c66
videoscale: Make sure to allocate enough memory for the temporary buffer
...
and fix scaling of odd-height interlaced video.
2009-08-06 06:43:32 +02:00
Sebastian Dröge
c51d2febd3
videoscale: Fix interlaced scaling for I420
...
...and some other minor mistakes in the previous change.
2009-08-06 06:43:32 +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
Sebastian Dröge
2e5c946501
videoscale: Add support for 16 bit grayscale in native endianness
2009-05-26 15:26:30 +02:00
Sebastian Dröge
b5793ccd0d
videoscale: Use bilinear instead of 4tap scaling for heights < 4
...
Partially fixes bug #577054 .
2009-03-28 11:57:35 +01:00
Sebastian Dröge
e2f823c2f3
videocale: Add support for video/x-raw-gray with bpp=depth=8
2009-03-28 10:06:24 +01:00
Sebastian Dröge
12bbcc4db9
videoscale: Add support for v308 YUV colorspace
2009-03-27 19:09:47 +01:00
Sebastian Dröge
014f6f1508
videoscale: Enable 4-tap scaling for all supported formats
2009-03-27 13:14:17 +01:00
Stefan Kost
46c18b2aa3
indent: fix damange that gst-indent did some time ago
2009-03-23 17:03:37 +02:00
Stefan Kost
4f699b7f80
Cleanup Plugin docs. Link to signals and properties. Fix sub-section titles. Drop mentining that all our example pipe...
...
Original commit message from CVS:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-overrides.txt:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* docs/plugins/gst-plugins-base-plugins.args:
* docs/plugins/gst-plugins-base-plugins.hierarchy:
* docs/plugins/gst-plugins-base-plugins.interfaces:
* docs/plugins/gst-plugins-base-plugins.prerequisites:
* docs/plugins/gst-plugins-base-plugins.signals:
* docs/plugins/inspect/plugin-adder.xml:
* docs/plugins/inspect/plugin-alsa.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-decodebin.xml:
* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
* docs/plugins/inspect/plugin-gdp.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-queue2.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-video4linux.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:
* ext/alsa/gstalsamixer.c:
* ext/alsa/gstalsasink.c:
* ext/alsa/gstalsasrc.c:
* ext/gio/gstgiosink.c:
* ext/gio/gstgiosrc.c:
* ext/gio/gstgiostreamsink.c:
* ext/gio/gstgiostreamsrc.c:
* ext/gnomevfs/gstgnomevfssink.c:
* ext/gnomevfs/gstgnomevfssrc.c:
* ext/ogg/gstoggdemux.c:
* ext/ogg/gstoggmux.c:
* ext/pango/gstclockoverlay.c:
* ext/pango/gsttextoverlay.c:
* ext/pango/gsttextrender.c:
* ext/pango/gsttimeoverlay.c:
* ext/theora/theoradec.c:
* ext/theora/theoraenc.c:
* ext/theora/theoraparse.c:
* ext/vorbis/vorbisdec.c:
* ext/vorbis/vorbisenc.c:
* ext/vorbis/vorbisparse.c:
* ext/vorbis/vorbistag.c:
* gst/adder/gstadder.c:
* gst/audioconvert/gstaudioconvert.c:
* gst/audioresample/gstaudioresample.c:
* gst/audiotestsrc/gstaudiotestsrc.c:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
* gst/gdp/gstgdpdepay.c:
* gst/gdp/gstgdppay.c:
* gst/playback/gstdecodebin2.c:
* gst/playback/gstplaybin.c:
* gst/playback/gstplaybin2.c:
* gst/playback/gstqueue2.c:
* gst/playback/gsturidecodebin.c:
* gst/tcp/gstmultifdsink.c:
* gst/tcp/gsttcpserversink.c:
* gst/videorate/gstvideorate.c:
* gst/videoscale/gstvideoscale.c:
* gst/videotestsrc/gstvideotestsrc.c:
* gst/volume/gstvolume.c:
* sys/ximage/ximagesink.c:
* sys/xvimage/xvimagesink.c:
Cleanup Plugin docs. Link to signals and properties. Fix sub-section
titles. Drop mentining that all our example pipelines are "simple"
pipelines.
2008-07-11 06:10:24 +00:00
Sebastian Dröge
d57ab7cfdb
gst/videoscale/gstvideoscale.c: Transform a given PAR to a range on the struct with the generic height/width instead ...
...
Original commit message from CVS:
* gst/videoscale/gstvideoscale.c: (gst_video_scale_transform_caps):
Transform a given PAR to a range on the struct with the generic
height/width instead of the struct with the possibly restricted
height/width.
2008-06-04 05:44:06 +00:00
Sebastian Dröge
8b14d08115
gst/videoscale/gstvideoscale.c: Prefer the given format if it contains something stricter than [1,MAX] for height or ...
...
Original commit message from CVS:
* gst/videoscale/gstvideoscale.c: (gst_video_scale_transform_caps):
Prefer the given format if it contains something stricter than [1,MAX]
for height or width and only put a structure that requires rescaling
as second. This makes it possible to use videoscale in pipelines where
the source can actually produce the wanted height/width but usually
selects a different one from the requested.
2008-06-04 04:24:27 +00:00
Tim-Philipp Müller
fa38b99379
gst/videoscale/gstvideoscale.c: Change default scaling method from nearest-neighbour to bilinear.
...
Original commit message from CVS:
* gst/videoscale/gstvideoscale.c: (DEFAULT_PROP_METHOD):
Change default scaling method from nearest-neighbour to bilinear.
2008-05-26 10:29:20 +00:00
Wim Taymans
2cdf18edff
Some debug and comment fixes.
...
Original commit message from CVS:
* ext/vorbis/vorbisdec.c:
* gst/videoscale/gstvideoscale.c: (gst_video_scale_transform):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_show_frame):
Some debug and comment fixes.
* tests/examples/dynamic/addstream.c: (main):
Fix , to ;
2008-05-21 16:44:15 +00:00
Sebastian Dröge
abbce230e2
gst/videoscale/: Support 1x1 images as input and output as for example the BBC HQ new streams have 1x1 GIFs in the pl...
...
Original commit message from CVS:
* gst/videoscale/gstvideoscale.c:
* gst/videoscale/vs_4tap.c: (vs_image_scale_4tap_Y):
* gst/videoscale/vs_image.c: (vs_image_scale_nearest_RGBA),
(vs_image_scale_linear_RGBA), (vs_image_scale_nearest_RGB),
(vs_image_scale_linear_RGB), (vs_image_scale_nearest_YUYV),
(vs_image_scale_linear_YUYV), (vs_image_scale_nearest_UYVY),
(vs_image_scale_linear_UYVY), (vs_image_scale_nearest_Y),
(vs_image_scale_linear_Y), (vs_image_scale_nearest_RGB565),
(vs_image_scale_linear_RGB565), (vs_image_scale_nearest_RGB555),
(vs_image_scale_linear_RGB555):
Support 1x1 images as input and output as for example the BBC HQ new
streams have 1x1 GIFs in the playlists for some reason.
2008-05-02 10:02:05 +00:00
Sebastian Dröge
49deb0c05d
Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use static strings (i.e. all). This gives us less memory u...
...
Original commit message from CVS:
* configure.ac:
* ext/alsa/gstalsamixerelement.c:
(gst_alsa_mixer_element_class_init):
* ext/alsa/gstalsasink.c: (gst_alsasink_class_init):
* ext/alsa/gstalsasrc.c: (gst_alsasrc_class_init):
* ext/cdparanoia/gstcdparanoiasrc.c:
(gst_cd_paranoia_src_class_init):
* ext/gio/gstgiosink.c: (gst_gio_sink_class_init):
* ext/gio/gstgiosrc.c: (gst_gio_src_class_init):
* ext/gio/gstgiostreamsink.c: (gst_gio_stream_sink_class_init):
* ext/gio/gstgiostreamsrc.c: (gst_gio_stream_src_class_init):
* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_class_init):
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_class_init):
* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init):
* ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init):
* ext/pango/gsttextrender.c: (gst_text_render_class_init):
* ext/theora/theoradec.c: (gst_theora_dec_class_init):
* ext/theora/theoraenc.c: (gst_theora_enc_class_init):
* ext/theora/theoraparse.c: (gst_theora_parse_class_init):
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_class_init):
* gst-libs/gst/audio/gstaudiofiltertemplate.c:
(gst_audio_filter_template_class_init):
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_class_init):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init):
* gst-libs/gst/cdda/gstcddabasesrc.c:
(gst_cdda_base_src_class_init):
* gst-libs/gst/interfaces/mixertrack.c:
(gst_mixer_track_class_init):
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_class_init):
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_class_init):
* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_class_init):
* gst/audiorate/gstaudiorate.c: (gst_audio_rate_class_init):
* gst/audioresample/gstaudioresample.c:
(gst_audioresample_class_init):
* gst/audiotestsrc/gstaudiotestsrc.c:
(gst_audio_test_src_class_init):
* gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init):
* gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(preroll_unlinked):
* gst/playback/gstplaybin.c: (gst_play_bin_class_init):
* gst/playback/gstplaybin2.c: (gst_play_bin_class_init):
* gst/playback/gstplaysink.c: (gst_play_sink_class_init):
* gst/playback/gstqueue2.c: (gst_queue_class_init):
* gst/playback/gststreaminfo.c: (gst_stream_info_class_init):
* gst/playback/gststreamselector.c: (gst_selector_pad_class_init),
(gst_stream_selector_class_init):
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init):
* gst/subparse/gstsubparse.c: (gst_sub_parse_class_init):
* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init):
* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_class_init):
* gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_class_init):
* gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_class_init):
* gst/videorate/gstvideorate.c: (gst_video_rate_class_init):
* gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_video_test_src_class_init):
* gst/volume/gstvolume.c: (gst_volume_class_init):
* sys/v4l/gstv4lelement.c: (gst_v4lelement_class_init):
* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init):
* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init):
* sys/ximage/ximagesink.c: (gst_ximagesink_class_init):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_class_init):
Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use
static strings (i.e. all). This gives us less memory usage,
fewer allocations and thus less memory defragmentation. Depend
on core CVS for this. Fixes bug #523806 .
2008-03-22 15:00:53 +00:00
Tim-Philipp Müller
bd01fd3a57
gst/videoscale/gstvideoscale.c: Don't claim to be able to handle/transform caps that can't really be handled by the c...
...
Original commit message from CVS:
* gst/videoscale/gstvideoscale.c: (gst_video_scale_set_property),
(gst_video_scale_get_property), (gst_video_scale_transform_caps),
(gst_video_scale_transform):
Don't claim to be able to handle/transform caps that can't really
be handled by the currently selected scaling method (here: RGB or
packed YUV with 4-tap method). Also add locking to method property.
* tests/check/pipelines/simple-launch-lines.c: (setup_pipeline),
(test_basetransform_based):
Some test pipelines for the above (not entirely valgrind clean yet
apparently).
2007-12-22 12:06:47 +00:00