Commit graph

121 commits

Author SHA1 Message Date
Wim Taymans
f87ab74add png: port to new memory API 2012-01-25 12:41:42 +01:00
Mark Nauwelaerts
a31a9e1f33 pngenc: disably snapshot behaviour by default
... since such behaviour is not consistent, if allowable at all.
2012-01-24 18:25:04 +01:00
Mark Nauwelaerts
2fcb5fa05b pngdec: port to 0.11 2012-01-24 18:25:04 +01:00
Mark Nauwelaerts
a1797459cb pngenc: port to 0.11 2012-01-24 18:25:04 +01:00
Wim Taymans
47a1da9076 GST_FLOW_UNEXPECTED -> GST_FLOW_EOS 2012-01-04 10:01:48 +01:00
René Stadler
41116224c8 pngenc: increase arbitrary resolution limits
Apparently libpng can technically do up to 2^31-1 rows and columns. However it
imposes an (arbitrary) default limit of 1 million (that could theoretically be
lifted by using some additional API).

Moved array allocation to the heap now.
2011-10-21 10:27:04 +02:00
René Stadler
db1f10adc8 pngenc: don't unconditionally allocate 4096 pointers on the stack
Instead allocate as many as needed (on the stack still).
2011-10-21 10:26:48 +02:00
René Stadler
65f9354803 pngenc: ensure setcaps was called before chain function
This is needed to properly error out for e.g. "fakesrc ! pngenc ! fakesink".
2011-10-21 10:26:20 +02:00
René Stadler
7e390c4635 pngenc: validate input buffer size
Just for safety; of course such mismatch represents a bug in another element.
2011-10-21 10:25:51 +02:00
René Stadler
9eb55c3d8f pngenc: make setcaps more robust, use gstvideo functions
A setcaps function needs to actually verify the caps carefully. In this case,
it was possible to e.g. link a video decoder with YUV+RGB template caps to
pngenc.  That would cause a crash when the decoder pushes a YUV buffer. Same
thing when pushing a valid buffer that exceeds the resolution limits.

Also, missing framerate caps field would cause a glib critical warning due to
invalid GValue. This fails hard now.
2011-10-21 10:25:08 +02:00
David Schleef
24d57ac961 pngdec: Remove temporary code
Now that we depend on (what will be) -base-0.10.33.
2011-04-24 18:53:50 -07:00
David Schleef
13d441315f pngdec: Handle 16-bit-per-channel images 2011-02-20 12:12:51 -08:00
Edward Hervey
ca9a3806b5 pngenc: Use proper framerate range in caps 2010-12-03 15:06:19 +01:00
Stefan Kost
a513a7be75 pngdec: use png_error() as recommended by libpng docs to signal an error
Without that the element loops endlessly on broekn pngs. Fixes #634314
2010-12-03 09:49:26 +02:00
Stefan Kost
45f6707784 various (ext): add a missing G_PARAM_STATIC_STRINGS flags 2010-10-13 17:39:36 +03:00
Sebastian Dröge
58427ee02d pngdec: Don't use GST_FLOW_IS_FATAL()
And don't post an error message if downstream returns UNEXPECTED.
2010-09-04 14:52:11 +02:00
Thiago Santos
ca0652a572 pngenc: Support 8 bit grayscale
Adds support to 8 bit grayscale input
2010-06-01 09:06:04 -03:00
Benjamin Otte
cccfeaa59c gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 14:32:00 +01:00
Руслан Ижбулатов
bc873f7133 pngenc: Use png_get_io_ptr() instead of accessing io_ptr directly
Fixes #612700 (for the last time!)
2010-03-16 15:20:21 +01:00
Руслан Ижбулатов
43e3e5c0d7 pngenc: Call png_jmpbuf() instead of accessing png_struct_ptr directly
Fixes #612700 (again)
2010-03-14 20:09:32 +01:00
Руслан Ижбулатов
0ce782383f pngenc: Call png_error() instead of using longjmp() directly.
Fixes #612700
2010-03-13 06:13:00 +01:00
Benjamin Otte
2a5f368bc7 png: fractions don't allow doubles 2010-03-09 19:15:07 +01:00
David Hoyt
2514421c13 png: fix compilation with libpng 1.4
png_set_gray_1_2_4_to_8() has been deprecated for a while and was
finally removed in libpng 1.4.x. Use png_set_expand_gray_1_2_4_to_8()
instead.

Fixes #608629.
2010-02-02 00:04:34 +00:00
Jan Schmidt
d9544bcc44 pngdec: Avoid possible overflow in calculations
A malformed (or simply huge) PNG file can lead to integer overflow in
calculating the size of the output buffer, leading to crashes or buffer
overflows later. Fixes SA35205 security advisory.
2009-06-02 13:44:39 +01:00
John Keeping
32491d5a51 pngdec: match g_malloc() with g_free()
Matching g_malloc() with a g_free() is important when a custom allocator is
installed.
Fixes #583803
2009-05-25 16:33:35 +02:00
Christian Schaller
bdf1698f35 Add RANKS for various encoders and muxers 2009-05-07 18:10:08 +01:00
Andy Wingo
034a4a771e fix format string in pngdec
* ext/libpng/gstpngdec.c: Fix size_t vs unsigned int format in error message.
2009-04-20 15:54:31 +02:00
Edward Hervey
0cb5b42d54 Remove trivial unused variables detected by CLang static analyzer. 2009-04-18 18:51:28 +02:00
Edward Hervey
4a9e80720a Remove unused variables in _class_init
Detected by LLVM's CLang static analyzer
2009-04-18 18:51:27 +02:00
Wim Taymans
18571b9e4f pngdec: various cleanups.
Make some code more readable.
Fix a leak when pull range returns a shot buffer.
Push EOS after posting the error.
2009-03-10 11:03:14 +01:00
Stefan Kost
9cf73bdd8f Update and add documentation for plugins with deps (ext).
Link to properties. Correct titles for examples. Document a few trivial cases. Keep lists in section file and docs/plugins/Makefile.am alphabetically ordered. Fix warnings that gtk-doc points out.
2009-01-28 18:05:09 +02:00
Jan Schmidt
006861f235 ext/libpng/gstpngenc.c: Don't flush downstream after every buffer - that's not what this libpng callback is for at all!
Original commit message from CVS:
* ext/libpng/gstpngenc.c:
Don't flush downstream after every buffer - that's not what
this libpng callback is for at all!
2008-11-20 13:46:47 +00:00
Stefan Kost
084812bffd Don't install static libs for plugins. Fixes #550851 for -good.
Original commit message from CVS:
* ext/aalib/Makefile.am:
* ext/annodex/Makefile.am:
* ext/cairo/Makefile.am:
* ext/dv/Makefile.am:
* ext/esd/Makefile.am:
* ext/flac/Makefile.am:
* ext/gconf/Makefile.am:
* ext/gdk_pixbuf/Makefile.am:
* ext/hal/Makefile.am:
* ext/jpeg/Makefile.am:
* ext/ladspa/Makefile.am:
* ext/libcaca/Makefile.am:
* ext/libmng/Makefile.am:
* ext/libpng/Makefile.am:
* ext/mikmod/Makefile.am:
* ext/pulse/Makefile.am:
* ext/raw1394/Makefile.am:
* ext/shout2/Makefile.am:
* ext/soup/Makefile.am:
* ext/speex/Makefile.am:
* ext/taglib/Makefile.am:
* ext/wavpack/Makefile.am:
* gst/alpha/Makefile.am:
* gst/apetag/Makefile.am:
* gst/audiofx/Makefile.am:
* gst/auparse/Makefile.am:
* gst/autodetect/Makefile.am:
* gst/avi/Makefile.am:
* gst/cutter/Makefile.am:
* gst/debug/Makefile.am:
* gst/effectv/Makefile.am:
* gst/equalizer/Makefile.am:
* gst/flx/Makefile.am:
* gst/goom/Makefile.am:
* gst/goom2k1/Makefile.am:
* gst/icydemux/Makefile.am:
* gst/id3demux/Makefile.am:
* gst/interleave/Makefile.am:
* gst/law/Makefile.am:
* gst/level/Makefile.am:
* gst/matroska/Makefile.am:
* gst/median/Makefile.am:
* gst/monoscope/Makefile.am:
* gst/multifile/Makefile.am:
* gst/multipart/Makefile.am:
* gst/oldcore/Makefile.am:
* gst/qtdemux/Makefile.am:
* gst/replaygain/Makefile.am:
* gst/rtp/Makefile.am:
* gst/rtsp/Makefile.am:
* gst/smpte/Makefile.am:
* gst/spectrum/Makefile.am:
* gst/udp/Makefile.am:
* gst/videobox/Makefile.am:
* gst/videocrop/Makefile.am:
* gst/videofilter/Makefile.am:
* gst/videomixer/Makefile.am:
* gst/wavenc/Makefile.am:
* gst/wavparse/Makefile.am:
* sys/directdraw/Makefile.am:
* sys/directsound/Makefile.am:
* sys/oss/Makefile.am:
* sys/osxaudio/Makefile.am:
* sys/osxvideo/Makefile.am:
* sys/sunaudio/Makefile.am:
* sys/v4l2/Makefile.am:
* sys/waveform/Makefile.am:
* sys/ximage/Makefile.am:
Don't install static libs for plugins. Fixes #550851 for -good.
2008-11-04 12:28:34 +00:00
Jan Schmidt
7d08894b38 ext/libpng/gstpngdec.c: Don't return GST_FLOW_ERROR when buffer_alloc fails - return whatever it returned.
Original commit message from CVS:
* ext/libpng/gstpngdec.c:
Don't return GST_FLOW_ERROR when buffer_alloc fails - return
whatever it returned.
2008-06-30 22:53:39 +00:00
Alessandro Decina
3ad8e778d7 ext/libpng/gstpngenc.*: Preallocate the output buffer so that g_memdup() and gst_buffer_merge() aren't needed anymore...
Original commit message from CVS:
Patch by: Alessandro Decina <alessandro at nnva dot org>
* ext/libpng/gstpngenc.c: (user_write_data), (gst_pngenc_chain):
* ext/libpng/gstpngenc.h:
Preallocate the output buffer so that g_memdup() and
gst_buffer_merge() aren't needed anymore. This greatly improves
performances and fixes #512544.
2008-01-29 18:43:32 +00:00
Wim Taymans
b3c5184b6f ext/libpng/gstpngdec.c: Post error before sending EOS. Fixes #499178.
Original commit message from CVS:
* ext/libpng/gstpngdec.c: (gst_pngdec_task):
Post error before sending EOS. Fixes #499178.
2007-11-29 10:34:18 +00:00
Stefan Kost
dfdc0fa8c9 ext/libpng/gstpngdec.*: Don't release the png-memory from within the callback.
Original commit message from CVS:
* ext/libpng/gstpngdec.c:
* ext/libpng/gstpngdec.h:
Don't release the png-memory from within the callback.
2007-11-20 12:20:38 +00:00
René Stadler
696e4b0236 ext/libpng/gstpngenc.c: Don't leak buffer data memory. Fixes #498395.
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler dot de>
* ext/libpng/gstpngenc.c:
Don't leak buffer data memory. Fixes #498395.
2007-11-20 12:11:13 +00:00
Stefan Kost
546bc7dbc1 ext/annodex/Makefile.am: Fix CFLAGS/LIBS.
Original commit message from CVS:
* ext/annodex/Makefile.am:
Fix CFLAGS/LIBS.
* ext/cdio/gstcdiocddasrc.c:
* ext/libpng/gstpngdec.c: (gst_pngdec_task):
Include stdlib
* ext/cairo/Makefile.am:
* gst/videofilter/Makefile.am:
* tests/examples/level/Makefile.am:
Use $(LIBM) instead of -lm
2007-07-20 07:41:58 +00:00
Stefan Kost
73ec6b7a1d More docs. More logs in pngdec.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* docs/plugins/inspect/plugin-jpeg.xml:
* docs/plugins/inspect/plugin-png.xml:
* ext/jpeg/gstjpegdec.c:
* ext/libpng/gstpngdec.c: (gst_pngdec_task),
(gst_pngdec_sink_setcaps):
More docs. More logs in pngdec.
2007-07-18 09:21:23 +00:00
Tim-Philipp Müller
09c161dac1 Fix build against core CVS.
Original commit message from CVS:
* ext/cairo/gsttimeoverlay.c: (gst_cairo_time_overlay_transform):
* ext/jpeg/gstjpegenc.c: (gst_jpegenc_chain):
* ext/libpng/gstpngenc.c: (gst_pngenc_chain):
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain):
* gst/debug/gstnavigationtest.c: (gst_navigationtest_transform):
* gst/effectv/gstaging.c: (gst_agingtv_transform):
* gst/effectv/gstdice.c: (gst_dicetv_transform):
* gst/effectv/gstedge.c: (gst_edgetv_transform):
* gst/effectv/gstquark.c: (gst_quarktv_transform):
* gst/effectv/gstrev.c: (gst_revtv_transform):
* gst/effectv/gstshagadelic.c: (gst_shagadelictv_transform):
* gst/effectv/gstvertigo.c: (gst_vertigotv_transform):
* gst/effectv/gstwarp.c: (gst_warptv_transform):
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_add_wvpk_header),
(gst_matroska_demux_check_subtitle_buffer),
(gst_matroska_decode_buffer):
* gst/videofilter/gstvideoflip.c: (gst_video_flip_transform):
Fix build against core CVS.
2007-07-11 22:31:06 +00:00
Jan Schmidt
5e32a710d7 ext/libpng/gstpngdec.c: Remove endianness-flipping hack that seems to have been required only because of a bug in ffm...
Original commit message from CVS:
* ext/libpng/gstpngdec.c: (gst_pngdec_caps_create_and_set):
Remove endianness-flipping hack that seems to have been required
only because of a bug in ffmpegcolorspace.
Partially Fixes: #451908
2007-07-06 11:42:53 +00:00
Tim-Philipp Müller
08d5dedbaa ext/: When operating in pull mode, error out correct on not-linked.
Original commit message from CVS:
* ext/dv/gstdvdemux.c: (gst_dvdemux_loop):
* ext/libpng/gstpngdec.c: (user_read_data), (gst_pngdec_task):
When operating in pull mode, error out correct on not-linked.
2007-06-08 10:43:26 +00:00
Edward Hervey
ee21b60cd7 ext/libpng/gstpngdec.c: Fix build on macosx.
Original commit message from CVS:
* ext/libpng/gstpngdec.c: (user_endrow_callback), (user_read_data):
Fix build on macosx.
2007-05-16 16:50:23 +00:00
Tim-Philipp Müller
3f55b6e912 ext/libpng/gstpngdec.c: If we get a fatal flow return in the loop function, first post the error message and only the...
Original commit message from CVS:
* ext/libpng/gstpngdec.c: (gst_pngdec_task):
If we get a fatal flow return in the loop function, first post the
error message and only then send the EOS event downstream, otherwise
applications might get an eos message before the error message and
think everything was ok (related to #429319).
2007-04-25 15:08:22 +00:00
Wim Taymans
82ad65b262 ext/libpng/gstpngenc.*: Fix strides. Fixes #364856.
Original commit message from CVS:
* ext/libpng/gstpngenc.c: (gst_pngenc_setcaps), (gst_pngenc_chain):
* ext/libpng/gstpngenc.h:
Fix strides. Fixes #364856.
Cleanup capsnego.
Set caps on outgoing buffers.
2006-10-27 17:10:42 +00:00
Tim-Philipp Müller
82f5a3508c Printf format fixes.
Original commit message from CVS:
* ext/cairo/gsttimeoverlay.c:
(gst_cairo_time_overlay_update_font_height):
* ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_transform_caps):
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_parse_image_data):
* ext/jpeg/gstjpegenc.c: (gst_jpegenc_chain):
* ext/jpeg/gstsmokedec.c: (gst_smokedec_chain):
* ext/jpeg/gstsmokeenc.c: (gst_smokeenc_chain):
* ext/libpng/gstpngdec.c: (user_endrow_callback):
* gst/auparse/gstauparse.c: (gst_au_parse_parse_header):
* gst/avi/gstavidemux.c: (gst_avi_demux_parse_superindex),
(gst_avi_demux_parse_subindex), (gst_avi_demux_parse_stream),
(gst_avi_demux_stream_data):
* gst/cutter/gstcutter.c: (gst_cutter_chain):
* gst/debug/efence.c: (gst_efence_buffer_alloc),
(gst_fenced_buffer_copy):
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame):
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream):
* gst/matroska/matroska-mux.c: (gst_matroska_mux_start):
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send),
(gst_rtspsrc_handle_message):
* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers):
* sys/ximage/ximageutil.c: (ximageutil_xcontext_get):
Printf format fixes.
2006-10-05 16:37:33 +00:00
Wim Taymans
cc350794fb ext/libpng/gstpngdec.*: Use statically allocated segment instead of leaking.
Original commit message from CVS:
* ext/libpng/gstpngdec.c: (gst_pngdec_init), (buffer_clip),
(gst_pngdec_caps_create_and_set), (gst_pngdec_task),
(gst_pngdec_chain), (gst_pngdec_sink_event),
(gst_pngdec_libpng_init), (gst_pngdec_change_state),
(gst_pngdec_sink_activate_push):
* ext/libpng/gstpngdec.h:
Use statically allocated segment instead of leaking.
Various cleanups.
Fix flush and seek handling.
2006-07-17 10:22:54 +00:00
Edward Hervey
00e08a3f6e ext/libpng/gstpngdec.*: Implement buffer clipping/dropping using GstSegment.
Original commit message from CVS:
* ext/libpng/gstpngdec.c: (gst_pngdec_init), (user_info_callback),
(buffer_clip), (user_end_callback), (gst_pngdec_chain),
(gst_pngdec_sink_event), (gst_pngdec_change_state):
* ext/libpng/gstpngdec.h:
Implement buffer clipping/dropping using GstSegment.
This provides accurate seeking.
2006-07-03 15:31:22 +00:00
Tim-Philipp Müller
05eaedc496 Use GST_DEBUG_CATEGORY_STATIC where possible (#342503) plus two minor macro fixes.
Original commit message from CVS:
* ext/annodex/gstcmmldec.c:
* ext/annodex/gstcmmlenc.c:
* ext/annodex/gstcmmlparser.c:
* ext/dv/gstdvdec.c:
* ext/dv/gstdvdemux.c:
* ext/gdk_pixbuf/pixbufscale.c:
* ext/jpeg/gstjpegenc.c:
* ext/jpeg/gstsmokedec.c:
* ext/jpeg/gstsmokeenc.c:
* ext/libpng/gstpngdec.c:
* ext/libpng/gstpngenc.c:
* ext/speex/gstspeexenc.c:
* gst/alpha/gstalphacolor.c:
* gst/cutter/gstcutter.c:
* gst/debug/gstnavigationtest.c:
* gst/icydemux/gsticydemux.c:
* gst/level/gstlevel.c:
* gst/multipart/multipart.c:
* gst/rtp/gstrtpamrpay.c:
* gst/rtp/gstrtpdepay.c:
* gst/rtp/gstrtpilbcpay.c:
* gst/rtp/gstrtpmp4gpay.c:
* gst/rtp/gstrtpmp4vpay.c:
* gst/rtsp/gstrtpdec.c:
* gst/rtsp/gstrtspsrc.c:
* gst/udp/gstdynudpsink.c:
* gst/udp/gstmultiudpsink.c:
* gst/udp/gstudpsrc.c:
* gst/videobox/gstvideobox.c:
* gst/videofilter/gstvideoflip.c:
Use GST_DEBUG_CATEGORY_STATIC where possible (#342503)
plus two minor macro fixes.
2006-06-22 19:31:04 +00:00