aboutsummaryrefslogtreecommitdiff
path: root/libswscale/utils.c
AgeCommit message (Collapse)Author
2012-05-08Add yuva422p pix_fmt.Carl Eugen Hoyos
2012-04-13Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: swscale: K&R formatting cosmetics (part II) tiffdec: Add a malloc check and refactor another. faxcompr: Check malloc results and unify return path configure: escape colons in values written to config.fate ac3dsp: call femms/emms at the end of float_to_fixed24() for 3DNow and SSE matroska: Fix leaking memory allocated for laces. pthread: Fix crash due to fctx->delaying not being cleared. vp3: Assert on invalid filter_limit values. h264: fix 10bit biweight functions after recent x86inc.asm fixes. ffv1: Fix size mismatch in encode_line. movenc: Remove a dead initialization git-howto: Explain how to avoid Windows line endings in git checkouts. build: Move all arch OBJS declarations into arch subdirectory Makefiles. Conflicts: configure libavcodec/vp3.c libavformat/matroskadec.c libavutil/Makefile libswscale/Makefile libswscale/swscale.c libswscale/swscale_internal.h libswscale/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-13swscale: K&R formatting cosmetics (part II)Diego Biurrun
Also adjust some comments including wording and typo fixes.
2012-03-21swscale: Merge a hunk from qatar that seems to have been forgotten or lost.Michael Niedermayer
Author of the code from qatar is Ronald S. Bultje Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-07Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: SBR DSP: fix SSE code to not use SSE2 instructions. cpu: initialize mask to -1, so that by default, optimizations are used. error_resilience: initialize s->block_index[]. svq3: protect against negative quantizers. Don't use ff_cropTbl[] for IDCT. swscale: make filterPos 32bit. FATE: add CPUFLAGS variable, mapping to -cpuflags avconv option. avconv: add -cpuflags option for setting supported cpuflags. cpu: add av_set_cpu_flags_mask(). libx264: Allow overriding the sliced threads option avconv: fix counting encoded video size. Conflicts: doc/APIchanges doc/fate.texi doc/ffmpeg.texi ffmpeg.c libavcodec/h264idct_template.c libavcodec/svq3.c libavutil/avutil.h libavutil/cpu.c libavutil/cpu.h libswscale/swscale.c tests/Makefile tests/fate-run.sh tests/regression-funcs.sh Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-07swscale: remove duplicate PIX_FMT_GBRP entry from format_entries.Michael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-06swscale: make filterPos 32bit.Ronald S. Bultje
Fixes overflows for large image sizes. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
2012-03-04Support RGBA64 as input colour space.Carl Eugen Hoyos
Mostly fixes ticket #503, opaque still overflows for RGBA64 -> RGBA conversion.
2012-03-01Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: (58 commits) amrnbdec: check frame size before decoding. cscd: use negative error values to indicate decode_init() failures. h264: prevent overreads in intra PCM decoding. FATE: do not decode audio in the nuv test. dxa: set audio stream time base using the sample rate psx-str: do not allow seeking by bytes asfdec: Do not set AVCodecContext.frame_size vqf: set packet parameters after av_new_packet() mpegaudiodec: use DSPUtil.butterflies_float(). FATE: add mp3 test for sample that exhibited false overreads fate: add cdxl test for bit line plane arrangement vmnc: return error on decode_init() failure. libvorbis: add/update error messages libvorbis: use AVFifoBuffer for output packet buffer libvorbis: remove unneeded e_o_s check libvorbis: check return values for functions that can return errors libvorbis: use float input instead of s16 libvorbis: do not flush libvorbis analysis if dsp state was not initialized libvorbis: use VBR by default, with default quality of 3 libvorbis: fix use of minrate/maxrate AVOptions ... Conflicts: Changelog doc/APIchanges libavcodec/avcodec.h libavcodec/dpxenc.c libavcodec/libvorbis.c libavcodec/vmnc.c libavformat/asfdec.c libavformat/id3v2enc.c libavformat/internal.h libavformat/mp3enc.c libavformat/utils.c libavformat/version.h libswscale/utils.c tests/fate/video.mak tests/ref/fate/nuv tests/ref/fate/prores-alpha tests/ref/lavf/ffm tests/ref/vsynth1/prores tests/ref/vsynth2/prores Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-29swscale: fix another integer overflow.Ronald S. Bultje
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
2012-02-24swscale: fix another integer overflow at large dimensions/rescales.Ronald S. Bultje
2012-02-24Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: (40 commits) swf: check return values for av_get/new_packet(). wavpack: Don't shift minclip/maxclip rtpenc: Expose the max packet size via an avoption rtpenc: Move max_packet_size to a context variable rtpenc: Add an option for not sending RTCP packets lavc: drop encode() support for video. snowenc: switch to encode2(). snowenc: don't abuse input picture for storing information. a64multienc: switch to encode2(). a64multienc: don't write into output buffer when there's no output. libxvid: switch to encode2(). tiffenc: switch to encode2(). tiffenc: properly forward error codes in encode_frame(). lavc: drop libdirac encoder. gifenc: switch to encode2(). libvpxenc: switch to encode2(). flashsvenc: switch to encode2(). Remove libpostproc. lcl: don't overwrite input memory. swscale: take first/lastline over/underflows into account for MMX. ... Conflicts: .gitignore Makefile cmdutils.c configure doc/APIchanges libavcodec/Makefile libavcodec/allcodecs.c libavcodec/libdiracenc.c libavcodec/libxvidff.c libavcodec/qtrleenc.c libavcodec/tiffenc.c libavcodec/utils.c libavformat/mov.c libavformat/movenc.c libpostproc/Makefile libpostproc/postprocess.c libpostproc/postprocess.h libpostproc/postprocess_altivec_template.c libpostproc/postprocess_internal.h libpostproc/postprocess_template.c libswscale/swscale.c libswscale/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-23swscale: fix overflows in filterPos[] calculation for large sizes.Ronald S. Bultje
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
2012-02-22swscale: fix filtersize clipping.Ronald S. Bultje
if srcW<=2, clip(x, 1, srcW-2) still allows srcW to be < 1.
2012-02-12Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: FATE: update reference for seek-alac_mp4 sunrast: Return AVERROR values instead of -1. sunrast: Add support for gray8 decoding. swscale: enforce a minimum filtersize. alacenc: use AVCodec.encode2() alacenc: cosmetics: indentation alacenc: consolidate bitstream writing into a single function. alacenc: only encode frame size in header for a final smaller frame alacenc: store current frame size in AlacEncodeContext. alacenc: return AVERROR codes in alac_encode_frame() alacenc: calculate a new max frame size for the final small frame alacenc: pretty-printing and other cosmetics alacenc: fix error handling and potential memleaks in alac_encode_init() alacenc: do not set coded_frame->key_frame alacenc: do not set bits_per_coded_sample alacenc: remove unneeded frame_size check in alac_encode_frame() tta: error out if samplerate is zero. ttadec: fix invalid free when an error occurs while decoding 24-bit tta wavpack: add needed braces for 2 statements inside an if block Conflicts: tests/ref/acodec/alac Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-02-11swscale: enforce a minimum filtersize.Ronald S. Bultje
At very small dimensions, this calculation could lead to zero-sized filters, which leads to uninitialized output, zero-sized allocations, loop overflows in SIMD that uses do{..}while(i++<filtersize); instead of for(i=0;i<filtersize;i++){..} and several other similar failures. Therefore, require a minimum filtersize of 1. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
2012-01-29Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: aacenc: Fix LONG_START windowing. aacenc: Fix a bug where deinterleaved samples were stored in the wrong place. avplay: use the correct array size for stride. lavc: extend doxy for avcodec_alloc_context3(). APIchanges: mention avcodec_alloc_context()/2/3 avcodec_align_dimensions2: set only 4 linesizes, not AV_NUM_DATA_POINTERS. aacsbr: ARM NEON optimised sbrdsp functions aacsbr: align some arrays aacsbr: move some simdable loops to function pointers cosmetics: Remove extra newlines at EOF Conflicts: libavcodec/utils.c libavfilter/formats.c libavutil/mem.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-27cosmetics: Remove extra newlines at EOFAlex Converse
2012-01-28sws/pixfmt/pixdesc: add support for yuva444pPaul B Mahol
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> Conflicts: libavutil/avutil.h libavutil/pixfmt.h
2012-01-26Revert "sws/pixfmt/pixdesc: add support for yuva444p"Alex Converse
This reverts commit fc115c80b7bf6f1f5a937ee7f6e14630d99eb4dd. Tests are broken.
2012-01-27sws/pixfmt/pixdesc: add support for yuva444pPaul B Mahol
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-24sws: Fix RGB0->alpha containing formats.Michael Niedermayer
Fixes Ticket869 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-22sws: In case of an invalid scaler algorithm, show the invalid value.Michael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-15Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: sgidec: Use bytestream2 functions to prevent buffer overreads. cosmetics: Move static and inline attributes to more standard places. configure: provide libavfilter/version.h header to get_version() swscale: change yuv2yuvX code to use cpuflag(). libx264: Don't leave max_b_frames as -1 if the user didn't set it FATE: convert output to rgba for the targa tests which currently output pal8 fate: add missing reference files for targa tests in 9c2f9b0e2 FATE: enable the 2 remaining targa conformance suite tests targa: add support for rgb555 palette FATE: fix targa tests on big-endian systems Conflicts: libavcodec/sgidec.c libavcodec/targa.c libswscale/x86/output.asm tests/fate/image.mak Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-14cosmetics: Move static and inline attributes to more standard places.Diego Biurrun
Fixes several "‘static’ is not at beginning of declaration" warnings.
2012-01-11swscale: Force full horizontal chroma internally when the output has a odd size.Michael Niedermayer
This fixes a gray line on the right side due to 1 column of pixels being skiped. Fixes Ticket891 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-10Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: fate: Add tests for more AAC features. aacps: Add missing newline in error message. fate: Add tests for vc1/wmapro in ism. aacdec: Add a fate test for 5.1 channel SBR. aacdec: Turn off PS for multichannel files that use PCE based configs. cabac: remove put_cabac_u/ueg from cabac-test. swscale: RGB4444 and BGR444 input FATE: add test for xWMA demuxer. FATE: add test for SMJPEG demuxer and associated IMA ADPCM audio decoder. mpegaudiodec: optimized iMDCT transform mpegaudiodec: change imdct window arrangment for better pointer alignment mpegaudiodec: move imdct and windowing function to mpegaudiodsp mpegaudiodec: interleave iMDCT buffer to simplify future SIMD implementations swscale: convert yuy2/uyvy/nv12/nv21ToY/UV from inline asm to yasm. FATE: test to exercise WTV demuxer. mjpegdec: K&R formatting cosmetics swscale: K&R formatting cosmetics for code examples swscale: K&R reformatting cosmetics for header files FATE test: cvid-grayscale; ensures that the grayscale Cinepak variant is exercised. Conflicts: libavcodec/cabac.c libavcodec/mjpegdec.c libavcodec/mpegaudiodec.c libavcodec/mpegaudiodsp.c libavcodec/mpegaudiodsp.h libavcodec/mpegaudiodsp_template.c libavcodec/x86/Makefile libavcodec/x86/imdct36_sse.asm libavcodec/x86/mpegaudiodec_mmx.c libswscale/swscale-test.c libswscale/swscale.c libswscale/swscale_internal.h libswscale/x86/swscale_template.c tests/fate/demux.mak tests/fate/microsoft.mak tests/fate/video.mak tests/fate/wma.mak tests/ref/lavfi/pixfmts_scale Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-08swscale: RGB4444 and BGR444 inputPaul B Mahol
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-03swscale: don't show full-chroma-int warning for non-RGB output.Ronald S. Bultje
Non-RGB output always uses full chroma interpolation.
2011-12-22libswscale: increase LIBSWSCALE_VERSION_MICRO to 100Michael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-19sws: Print an error in case of av_malloc() failureMichael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-19swscale: Fix several (real world) integer overflows.Michael Niedermayer
Fixes Ticket795 Bug Found by: Oana Stratulat Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-18swscale: fix overflows in vertical scaling at top/bottom edges.Ronald S. Bultje
This fixes integer multiplication overflows in RGB48 output (vertical) scaling as detected by IOC. What happens is that for certain types of filters (lanczos, spline, bicubic), the intermediate sum of coefficients in the middle of a filter can be larger than the fixed-point equivalent of 1.0, even if the final sum is 1.0. This is fine and we support that. However, at frame edges, initFilter() will merge the coefficients for the off-screen pixels into the top or bottom pixel, such as to emulate edge extension. This means that suddenly, a single coefficient can be larger than the fixed-point equivalent of 1.0, which the vertical scaling routines do not support. Therefore, remove the merging of coefficients for edges for the vertical scaling filter, and instead add edge detection to the scaler itself so that it copies the pointers (not data) for the edges (i.e. it uses line[0] for line[-1] as well), so that a single coefficient is never larger than the fixed-point equivalent of 1.0.
2011-12-02Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: (25 commits) rtpenc: Add support for G726 audio rtpdec: Interpret the different G726 names as bits_per_coded_sample rtpenc: Change rtp_send_samples to handle sample sizes other than even bytes rtpenc: Cast a rescaling parameter to int64_t h264: cap max has_b_frames at MAX_DELAYED_PIC_COUNT - 1. ARM: fix indentation in ff_dsputil_init_neon() ARM: NEON put/avg_pixels8/16 cosmetics ARM: add remaining NEON avg_pixels8/16 functions ARM: clean up NEON put/avg_pixels macros fate: split acodec-pcm into individual tests swscale: #include "libavutil/mathematics.h" pmpdec: don't use deprecated av_set_pts_info. rv34: align temporary block of "dct" coefs Add PlayStation Portable PMP format demuxer proto: Realign struct initializers proto: Use .priv_data_size to allocate the private context mmsh: Properly clean up if the second ffurl_alloc failed rtmp: Clean up properly if the handshake failed md5proto: Remove the get_file_handle function applehttpproto: Use the close function if the open function fails ... Conflicts: libavcodec/vble.c libavformat/mmsh.c libavformat/pmpdec.c libavformat/udp.c tests/ref/acodec/pcm Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-01swscale: #include "libavutil/mathematics.h"Reinhard Tartler
this file uses the M_PI macro since 4e74187db2f5db52f88729efc662df9d6bc763e1, so include the correct header directly. Signed-off-by: Reinhard Tartler <siretart@tauware.de>
2011-11-28swscale: alpha less rgb32 support.Michael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-25swscale: Readd #define _SVID_SOURCEMartin Storsjö
This was removed erroneously in 046f081b46c8479820409cf8f530b988221bd15b. This define still is necessary for getting MAP_ANONYMOUS defined on linux/glibc, despite the define reshuffling done in that commit. Without MAP_ANONYMOUS defined, the mprotect calls for setting the generated mmx2 scaler code pages executable are left out, causing crashes if that codepath is chosen. This patch fixes scaling from 192x144 to 320x240 with -sws_flags fast_bilinear, which crashes on linux at the moment. Signed-off-by: Martin Storsjö <martin@martin.st>
2011-11-25Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: snow: split snow in snowdec and snowenc tiffenc: deprecate using compression_level swscale: fix failing fate tests. swscale: add support for planar RGB input. h264: add support for decoding planar RGB images. Clean up swscale pixfmt macros using av_pix_fmt_descriptors[]. pixfmt: add planar RGB formats. Conflicts: libavcodec/h264.c libavcodec/snow.c libavcodec/utils.c libavutil/avutil.h libavutil/pixdesc.c libavutil/pixfmt.h libswscale/swscale.c libswscale/swscale_internal.h libswscale/swscale_unscaled.c libswscale/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-24swscale: add support for planar RGB input.Ronald S. Bultje
2011-11-18sws: Fix:Michael Niedermayer
libswscale/utils.c:941:13: warning: passing argument 5 of ‘initMMX2HScaler’ from incompatible pointer type libswscale/utils.c:524:12: note: expected ‘int32_t *’ but argument is of type ‘int16_t *’ libswscale/utils.c:942:13: warning: passing argument 5 of ‘initMMX2HScaler’ from incompatible pointer type libswscale/utils.c:524:12: note: expected ‘int32_t *’ but argument is of type ‘int16_t *’ Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-17sws: handle jpeg pixel formats in sws_init_context()Michael Niedermayer
Fixes Ticket576 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-11swscale: add padding to conversion buffer.Sean McGovern
Altivec does unaligned reads from this buffer in hscale_altivec_real(), and can thus read up to 16 bytes beyond the end of the buffer. Therefore, add an extra 16 bytes of padding at the end of the conversion buffer. This fixes fate-lavfi-pixfmts_scale on AltiVec-enabled builds under valgrind. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-11-06Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: http: Remove the custom function for disabling chunked posts rtsp: Disable chunked http post through AVOptions movdec: Set frame_size for AMR h264_weight: remove duplication functions. swscale: align vertical filtersize by 2 on x86. libavfilter: reindent. matroskadec: empty blocks are in fact valid. avfilter: don't abort() on zero-size allocations. h264: improve calculation of codec delay. movenc: Set a correct packet size for AMR-NB mode 15, "no data" avformat: Add functions for doing global network initialization avformat: Add the https protocol avformat: Add the tls protocol, using OpenSSL or gnutls avformat: Initialize gnutls in ff_tls_init() w32threads: Wrap the mutex functions in inline functions returning int configure: Allow linking to the gnutls library avformat: Add ff_tls_init()/deinit() that initialize OpenSSL configure: Allow linking to openssl avcodec: Allow locking and unlocking an avformat specific mutex avformat: Split out functions from network.h to a new file, network.c Conflicts: Changelog configure doc/APIchanges libavcodec/internal.h libavcodec/version.h libavfilter/formats.c libavformat/matroskadec.c libavformat/mov.c libavformat/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-05swscale: align vertical filtersize by 2 on x86.Ronald S. Bultje
The vertical scaler handles 2 rows at a time and thus requires alignment by 2, or else it'll read invalid memory and result in corrupt output.
2011-10-22Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: (35 commits) flvdec: Do not call parse_keyframes_index with a NULL stream libspeexdec: include system headers before local headers libspeexdec: return meaningful error codes libspeexdec: cosmetics: reindent libspeexdec: decode one frame at a time. swscale: fix signed shift overflows in ff_yuv2rgb_c_init_tables() Move timefilter code from lavf to lavd. mov: add support for hdvd and pgapmetadata atoms mov: rename function _stik, some indentation cosmetics mov: rename function _int8 to remove ambiguity, some indentation cosmetics mov: parse the gnre atom mp3on4: check for allocation failures in decode_init_mp3on4() mp3on4: create a separate flush function for MP3onMP4. mp3on4: ensure that the frame channel count does not exceed the codec channel count. mp3on4: set channel layout mp3on4: fix the output channel order mp3on4: allocate temp buffer with av_malloc() instead of on the stack. mp3on4: copy MPADSPContext from first context to all contexts. fmtconvert: port float_to_int16_interleave() 2-channel x86 inline asm to yasm fmtconvert: port int32_to_float_fmul_scalar() x86 inline asm to yasm ... Conflicts: libavcodec/arm/h264dsp_init_arm.c libavcodec/h264.c libavcodec/h264.h libavcodec/h264_cabac.c libavcodec/h264_cavlc.c libavcodec/h264_ps.c libavcodec/h264dsp_template.c libavcodec/h264idct_template.c libavcodec/h264pred.c libavcodec/h264pred_template.c libavcodec/x86/h264dsp_mmx.c libavdevice/Makefile libavdevice/jack_audio.c libavformat/Makefile libavformat/flvdec.c libavformat/flvenc.c libavutil/pixfmt.h libswscale/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-21sws/pixfmt/pixdesc: add support for yuv420p9le/be.Ronald S. Bultje
2011-10-21swscale: prevent overflow in coefficient calculation.Ronald S. Bultje
2011-10-18swscale: prevent overflow during initializationRonald Bultje
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2011-10-12sws: support yuv444p9/10 output.Anton Khirnov
2011-10-09sws: gbr24p input supportMichael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>