Commit Graph

1734 Commits

Author SHA1 Message Date
Stefano Sabatini 2a6c95d85f lsws/utils: introduce scale_algorithms array
Allow some dumb factorizations, slightly decrease spaghetti factor.
2013-11-05 14:01:53 +01:00
Stefano Sabatini 246e323de8 lsws/utils: fix typo 2013-11-05 00:04:17 +01:00
Reimar Döffinger 4fab08c94f Optimize pure C unscaled yuv2rgb.
Aligning the tables reduces the amount of code generated on
e.g. ARM as the offset constant then has few enough set bits
so it can be encoded inside a single instruction instead of 2.
Ideally all should be declared aligned, but the DECLARE_ALIGNED
macros does not work with pointer tables, thus also reordered
the tables.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-10-30 20:52:24 +01:00
Stefano Sabatini ff9d11f95d lsws: use av_pix_fmt_get_chroma_sub_sample()
Remove duplicated getSubSampleFactors() function. Simplify.
2013-10-24 08:12:38 +02:00
Michael Niedermayer eb4205cc89 swscale/utils: check mprotect() return code
Found-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-23 10:14:05 +02:00
Michael Niedermayer d0a3bc1302 swscale/yuv2rgb: clip cy, avoid division by 0 with 0 contrast
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-17 14:02:43 +02:00
Michael Niedermayer 2db6547237 swscale/utils/sws_setColorspaceDetails(): fix indention
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-17 14:02:43 +02:00
Paul B Mahol 37d6b2b4e6 swsscale/swscale_unscaled: add GBRAP16
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-16 20:44:12 +02:00
Michael Niedermayer 9ec9d46365 swscale/swscale_unscaled: fix alpha pointer & stride for planarRgb16ToRgb16Wrapper()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-16 20:44:12 +02:00
Michael Niedermayer a830915b78 swscale: Use full resolution chroma for yuv2rgb when the input has full chroma
See Ticket3028

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-10 17:28:59 +02:00
Michael Niedermayer 5710f55e49 Merge commit '6b3ff6f91a535d6383f41ca7bdf760165dcb6015'
* commit '6b3ff6f91a535d6383f41ca7bdf760165dcb6015':
  swscale: provide a default scaler if none is set

Conflicts:
	libswscale/utils.c

The default is left at bicubic until someone has compared the scalers
properly speed and quality wise.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-06 11:44:05 +02:00
Michael Niedermayer ccf96f8c64 swscale/options: switch default to bicubic
Suggested-by: Ronald S. Bultje
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-06 10:47:09 +02:00
Vittorio Giovara 6b3ff6f91a swscale: provide a default scaler if none is set
Lanczos for general case, sinc for upscaling, Gaussian for
downscaling. According to current literature these scalers
should be the best quality-wise algorithms for each case.

Inspired from a patch by wm4 <nfxjfg@googlemail.com>

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-10-05 18:38:55 +02:00
Michael Niedermayer 2e2a2d8801 swscale/utils: dont divide by zero with zero vectors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-01 00:27:28 +02:00
wm4 01e3340fb6 swscale: make bilinear scaling the default
Before this commit, sws_init_context() failed with an error if no scaler
was explicitly set.

Defaulting to something reasonable is better behavior.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-30 18:14:58 +02:00
Michael Niedermayer 13eff473ad swscale/swscale_unscaled: fix alpha values for rgb/bgr -> RGB32_1 / BGR32_1
Found-by: Justin Ruggles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-19 23:15:51 +02:00
Michael Niedermayer 2d28950da9 swscale/utils: remove redundant NULL checks before sws_freeVec()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-17 21:48:54 +02:00
Michael Niedermayer a446657d8c swscale/utils: simplify cpu caps printing code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-17 21:31:58 +02:00
Michael Niedermayer 9d052adbeb swscale/utils: Simplify scaler name printing code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-17 21:29:42 +02:00
Michael Niedermayer aec91de549 swscale/utils: Allow sws_setColorspaceDetails() to use the tables from sws_getColorspaceDetails()
Previously this would have lead to a memcpy(a,a) which violates the
requirement of non overlapping src and dst.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-17 17:21:13 +02:00
Michael Niedermayer 46a723ec72 swscale/yuv2rgb: make sure yuvTable is set to NULL after deallocation
ensures no stale pointers remain

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-16 22:47:21 +02:00
Michael Niedermayer 803445e02c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Drop pointless directory name prefixes from #includes in the current dir

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-11 12:51:01 +02:00
Diego Biurrun a0b901a348 Drop pointless directory name prefixes from #includes in the current dir 2013-09-10 12:38:41 +02:00
Michael Niedermayer c914c99d4b swscale/utils: use memcpy instead of loop in sws_cloneVec()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-08 16:39:38 +02:00
Thilo Borgmann d814a839ac Reinstate proper FFmpeg license for all files. 2013-08-30 15:47:38 +00:00
Michael Niedermayer f0a3562382 Merge commit '79aec43ce813a3e270743ca64fa3f31fa43df80b'
* commit '79aec43ce813a3e270743ca64fa3f31fa43df80b':
  x86: Add and use more convenience macros to check CPU extension availability

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-30 11:57:35 +02:00
Sean McGovern 01a82f1dc5 ppc: don't return a value from a function declared void
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-08-30 11:56:11 +02:00
Michael Niedermayer 09c94b57ca Merge commit 'a6b650118543e1580e872896d8976042b7c32d01'
* commit 'a6b650118543e1580e872896d8976042b7c32d01':
  ppc: cosmetics: Consistently format CPU flag detection invocations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-30 11:48:54 +02:00
Sean McGovern f1f728cbe4 ppc: don't return a value from a function declared void
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-08-30 00:41:10 +03:00
Michael Niedermayer f896f92337 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  cosmetics: Place arch initialization calls in alphabetical order

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 16:15:54 +02:00
Michael Niedermayer 01cac26f68 Merge commit '1909f6b1b6da2db371c179bed5a19aaf979b7557'
* commit '1909f6b1b6da2db371c179bed5a19aaf979b7557':
  swscale: cosmetics: Drop silly camelCase from swScale function pointer name

Conflicts:
	libswscale/swscale_unscaled.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 15:56:03 +02:00
Michael Niedermayer c49b6c3d99 Merge commit '4e0799a4d04404abfa8fbc072640be76465158cf'
* commit '4e0799a4d04404abfa8fbc072640be76465158cf':
  swscale: Add some missing av_cold to arch-specific init functions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 15:48:53 +02:00
Michael Niedermayer c5cec9a42b Merge commit '3aa682f25324d811ec284edc808eb71a46eae950'
* commit '3aa682f25324d811ec284edc808eb71a46eae950':
  swscale: consistent names for arch-specific acceleration functions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 15:41:05 +02:00
Michael Niedermayer 5ff1b588eb Merge commit 'c2503d9c8ab42ea55922e9f5a10c8bfbbbfeaf19'
* commit 'c2503d9c8ab42ea55922e9f5a10c8bfbbbfeaf19':
  swscale: ppc: Hide arch-specific initialization details

Conflicts:
	libswscale/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 15:10:09 +02:00
Michael Niedermayer db6b389c7f Merge commit 'a519583991c38d38503ab08357716513facc5725'
* commit 'a519583991c38d38503ab08357716513facc5725':
  swscale: x86: Hide arch-specific initialization details

Conflicts:
	libswscale/x86/Makefile
	libswscale/x86/swscale.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 14:42:34 +02:00
Michael Niedermayer 29daad5b98 Merge commit 'f61bece684d9685b07895508e6c1c733b5564ccf'
* commit 'f61bece684d9685b07895508e6c1c733b5564ccf':
  ppc: Add and use convenience macro to check for AltiVec availability

Conflicts:
	libavcodec/ppc/dsputil_ppc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29 14:24:07 +02:00
Diego Biurrun 79aec43ce8 x86: Add and use more convenience macros to check CPU extension availability 2013-08-29 13:07:37 +02:00
Diego Biurrun a6b6501185 ppc: cosmetics: Consistently format CPU flag detection invocations 2013-08-29 11:31:32 +02:00
Diego Biurrun 67e6a9f558 cosmetics: Place arch initialization calls in alphabetical order 2013-08-29 11:24:14 +02:00
Diego Biurrun 1909f6b1b6 swscale: cosmetics: Drop silly camelCase from swScale function pointer name 2013-08-29 10:23:54 +02:00
Diego Biurrun 4e0799a4d0 swscale: Add some missing av_cold to arch-specific init functions 2013-08-29 10:23:53 +02:00
Diego Biurrun 3aa682f253 swscale: consistent names for arch-specific acceleration functions 2013-08-29 10:23:52 +02:00
Diego Biurrun c2503d9c8a swscale: ppc: Hide arch-specific initialization details
Also give consistent names to init functions.
2013-08-29 10:23:41 +02:00
Diego Biurrun a519583991 swscale: x86: Hide arch-specific initialization details
Also give consistent names to init functions.
2013-08-28 23:59:24 +02:00
Diego Biurrun f61bece684 ppc: Add and use convenience macro to check for AltiVec availability 2013-08-28 23:54:15 +02:00
Michael Niedermayer 23b3141261 swscale: improve dither checks
Bssed on patch by Øyvind Kolås <pippin@gimp.org>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-19 18:33:50 +02:00
Michael Niedermayer 8c50ea2251 swscale: set dither to a specific value for rgb/bgr8 output
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-19 18:31:35 +02:00
Michael Niedermayer c62801270f swscale: change ff_dither_8x8_128 dimensions to be consistent with the others
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-16 16:06:59 +02:00
Michael Niedermayer c14fc4585c Merge commit 'aa2ba8c99e5708884a56aea9c1d96e014866f8a3'
* commit 'aa2ba8c99e5708884a56aea9c1d96e014866f8a3':
  swscale: Move extern declarations for tables to swscale_internal.h

Conflicts:
	libswscale/output.c
	libswscale/swscale_internal.h
	libswscale/swscale_unscaled.c
	libswscale/utils.c
	libswscale/yuv2rgb.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-16 12:56:48 +02:00
Michael Niedermayer 1ef0b8f9cc Merge commit 'd258531502b24cb653204fe4f003c8815755bdc4'
* commit 'd258531502b24cb653204fe4f003c8815755bdc4':
  swscale: Mark a bunch of tables only used within one file static

Conflicts:
	libswscale/swscale_unscaled.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-16 12:40:32 +02:00