Commit Graph

193 Commits

Author SHA1 Message Date
Michael Niedermayer
d9d56036f3 swscale: MMX optim of hscale16()
code is based on existing 8bit MMX code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-25 04:08:34 +02:00
Michael Niedermayer
895b616146 swscale: dont loose bits on planar >8bit yuv ind gray nput.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-25 04:08:34 +02:00
Peter Belkner
502e858fd2 swscale: fix compile on mingw32
Compiling "swscale.c" breaks on MINGW32 because of multiple including
"libswscale_template.c"
2011-05-14 13:22:46 +02:00
Michael Niedermayer
72153419b5 Merge remote branch 'qatar/master'
* qatar/master: (33 commits)
  rtpdec_qdm2: Don't try to parse data packet if no configuration is received
  ac3enc: put the counting of stereo rematrixing bits in the same place to make the code easier to understand.
  ac3enc: clean up count_frame_bits() and count_frame_bits_fixed()
  mpegvideo: make FF_DEBUG_DCT_COEFF output coeffs via av_log() instead of just via AVFrame.
  srtdec: make sure we don't write past the end of buffer
  wmaenc: improve channel count and bitrate error handling in encode_init()
  matroskaenc: make sure we don't produce invalid file with no codec ID
  matroskadec: check that pointers were initialized before accessing them
  lavf: fix function name in compute_pkt_fields2 av_dlog message
  lavf: fix av_find_best_stream when providing a wanted stream.
  lavf: fix av_find_best_stream when decoder_ret is given and using a related stream.
  ffmpeg: factorize quality calculation
  tiff: add support for SamplesPerPixel tag in tiff_decode_tag()
  tiff: Prefer enum TiffCompr over int for TiffContext.compr.
  mov: Support edit list atom version 1.
  configure: Enable libpostproc automatically if GPL code is enabled.
  Cosmetics: fix prototypes in oggdec
  oggdec: fix memleak with continuous streams.
  matroskaenc: add missing new line in av_log() call
  dnxhdenc: add AVClass in private context.
  ...

swscale changes largely rewritten by me or replaced by baptsites due to lots of bugs in ronalds code.
Above code is also just in case its not obvios to a large extended duplicates that where cherry picked
from ffmpeg.

Conflicts:
	configure
	ffmpeg.c
	libavformat/matroskaenc.c
	libavutil/pixfmt.h
	libswscale/ppc/swscale_template.c
	libswscale/swscale.c
	libswscale/swscale_template.c
	libswscale/utils.c
	libswscale/x86/swscale_template.c
	tests/fate/h264.mak
	tests/ref/lavfi/pixdesc_le
	tests/ref/lavfi/pixfmts_copy_le
	tests/ref/lavfi/pixfmts_null_le
	tests/ref/lavfi/pixfmts_scale_le
	tests/ref/lavfi/pixfmts_vflip_le

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-13 04:40:40 +02:00
Ronald S. Bultje
c8f487deae swscale: fix YUV420P 9/10bit support.
Fix handling of input if not in native endianness, and add support for
9/10-bit output. This allows us to force endianness of YUV420P 9/10bit
in the H264/10bit fate tests, which should fix them on big-endian
systems.
2011-05-11 19:15:14 -04:00
Oskar Arvidsson
42239ced65 Add pixel formats for 9- and 10-bit yuv420p.
Also add support for these formats in libswscale.

Needed for high bit depth h264 decoding.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-05-10 07:24:19 -04:00
Baptiste Coudurier
b9e608492a swscale: 9,10 bits pixel format output support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-08 14:27:13 +02:00
Reimar Döffinger
b06397acd4 Fix function pointer type to match function it is assigned. 2011-05-07 20:14:48 +02:00
Reimar Döffinger
80264dc422 Store pointers in a less messy way in SWSContext. 2011-05-07 20:14:48 +02:00
Michael Niedermayer
3e173a14e9 swscale: fix src type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-05-04 23:33:59 +02:00
Peter Ross
1afbae100b libswcale: PIX_FMT_BGR48LE and PIX_FMT_BGR48BE scaler implementation
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-04-28 07:25:27 +02:00
Baptiste Coudurier
624a7e005c Correctly support pal8 with alpha in libswscale, fix png pal8 with alpha.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-27 21:52:09 +02:00
Baptiste Coudurier
e91946ed23 Rename y400a to gray8a.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-27 21:36:30 +02:00
Luca Barbato
86330b4c92 swscale: partially move the arch specific code left
PPC and x86 code is split off from swscale_template.c. Lots of code is
still duplicated and should be removed later.

Again uniformize the init system to be more similar to the dsputil one.

Unset h*scale_fast in the x86 init in order to make the output
consistent with the previous status. Thanks to Josh for spotting it.
2011-04-14 22:16:47 +02:00
Oskar Arvidsson
d4497f6dfb Add pixel formats for 9- and 10-bit yuv420p.
Also add support for these formats in libswscale.

Needed for high bit depth h264 decoding.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-10 22:33:41 +02:00
Michael Niedermayer
116758a358 Fix yuvj420p scaling artefact, issue1108.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-04-03 16:40:11 +02:00
Peter Ross
3e2523db20 libswcale: PIX_FMT_BGR48LE and PIX_FMT_BGR48BE scaler implementation 2011-03-26 13:24:32 +11:00
Mans Rullgard
2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Mans Rullgard
4064d770ad Fix MMX rgb24 to yuv conversion with gcc 4.6
When built with gcc 4.6, the MMX rgb24 to yuv conversion gives
wrong output.  The compiler produces this warning:

libswscale/swscale_template.c:1885:5: warning: use of memory input without lvalue in asm operand 4 is deprecated

Changing the memory operand to a register makes it work.

Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit f344903ca5)
2011-02-14 23:58:18 +01:00
Mans Rullgard
f344903ca5 Fix MMX rgb24 to yuv conversion with gcc 4.6
When built with gcc 4.6, the MMX rgb24 to yuv conversion gives
wrong output.  The compiler produces this warning:

libswscale/swscale_template.c:1885:5: warning: use of memory input without lvalue in asm operand 4 is deprecated

Changing the memory operand to a register makes it work.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-13 01:42:32 +00:00
Mans Rullgard
ef4a65149d Replace ASMALIGN() with .p2align
This macro has unconditionally used .p2align for a long time and
serves no useful purpose.
2011-01-18 20:48:24 +00:00
Baptiste Coudurier
df0743e01e Y400A (gray alpha) input support in libswscale
Originally committed as revision 32394 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-09-27 22:24:03 +00:00
Måns Rullgård
66842fe874 swscale: fix unaligned accesses in (RGB|BGR)32_1 to YUV conversion
Originally committed as revision 32011 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-08-23 21:22:24 +00:00
Anton Mitrofanov
c85007d559 Another try at fixing swscale on win64, as per r31153.
Don't change paramater passing, but instead use casts.
Shouldn't affect asm output on anything other than win64.
libswscale should work on win64 now.
The rest of ffmpeg still isn't win64 compatible due to the issue of xmm
clobbers, but swscale doesn't use any SSE.

Patch by Anton Mitrofanov <BugMaster AT narod DOT ru>.

Originally committed as revision 31751 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-07-18 21:39:57 +00:00
Ramiro Polla
c3ab0004ae Revert r31153. It failed to build on:
x86_64 / Mac OS X gcc 4.0.1
x86_64 / Linux icc (all)
x86_64 / Linux gcc 4.0.4
x86_64 / OpenBSD gcc 3.3.5
x86_64 / Linux suncc 5.10
and there are some reports of crashes.

Originally committed as revision 31170 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-05-12 20:47:32 +00:00
Ramiro Polla
d9d14dc607 Use int instead of long to pass width parameters in non-public functions.
long was being incorrectly used as an x86-sized register, both for 32 and 64
bits, but this is not the case in win64.

Originally committed as revision 31153 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-05-11 00:36:34 +00:00
Diego Biurrun
819ee683d8 libswscale: Relicense almost all x86 assembler optimizations as LGPL.
This is of course done with permissions from the authors. The only GPL
component left are MMX optimizations for YUV to RGB conversion.

Originally committed as revision 30965 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-03-27 11:31:02 +00:00
Diego Biurrun
f5af8f1625 Replace wrong condition name in #endif comment by correct instance.
Originally committed as revision 30938 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-03-19 09:58:45 +00:00
Michael Niedermayer
e5a1c20707 try to avoid returning odd slices.
Originally committed as revision 30847 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-03-05 21:39:27 +00:00
Ramiro Polla
f1d5a1f285 Reorder buffer debug. Also print out if slice was buffered.
Originally committed as revision 30722 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-02-23 16:46:43 +00:00
Michael Niedermayer
6022255774 Use isAnyRGB() where possible
Originally committed as revision 30435 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-01-26 08:03:28 +00:00
Michael Niedermayer
3b1ee70312 Rename isRGB() and isBGR() as their meaning is confusing.
Originally committed as revision 30433 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-01-26 07:40:14 +00:00
Stefano Sabatini
bc45751f7f Declare with av_unused the variable alpMmxFilter, fix the gcc warning:
swscale_template.c: In function ‘swScale_C’:
swscale_template.c:2580: warning: unused variable ‘alpMmxFilter’
swscale_template.c: In function ‘sws_init_swScale_C’:

Originally committed as revision 30332 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-01-16 19:22:30 +00:00
Ramiro Polla
0cc854e377 Reuse h{lum,chr}Filter{,Pos} variables for MMX2 fast_bilinear horizontal scaler.
Originally committed as revision 30327 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-01-16 18:39:06 +00:00
Zuxy Meng
a959e24780 Const correctness for src pointer. Remove all constness related warnings in
libswscale.

Originally committed as revision 30306 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-01-15 08:51:51 +00:00
Ramiro Polla
996de2fefa cosmetics: {} placement.
Originally committed as revision 30272 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-01-11 07:30:28 +00:00
Zuxy Meng
4b19045566 Remove unused PREFETCHW macro
Originally committed as revision 30253 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-01-09 14:44:20 +00:00
Reimar Döffinger
f514b4f937 Do not needlessly use the BP register in x86_64-specific code, there are
enough other registers available that are less likely to cause issues.

Originally committed as revision 30160 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2010-01-01 09:46:24 +00:00
Diego Biurrun
c887b30d79 Remove unused variable, fixes the warning:
libswscale/swscale_template.c:2575: warning: unused variable ‘srcFormat’

Originally committed as revision 30132 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2009-12-28 12:05:20 +00:00
Ramiro Polla
aaba7e6c66 Remove parameters no longer used in h[yc]scale().
Originally committed as revision 30099 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2009-12-21 01:59:34 +00:00
Ramiro Polla
a1f4b4bb6e Move fast bilinear scaler code to the existing h[yc]scale_fast() functions.
Originally committed as revision 30098 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2009-12-21 01:54:59 +00:00
Ramiro Polla
bb53e1d188 Rename function pointers used to convert from the input pixel format to the
intermediate YV12 to a more descriptive name.

Originally committed as revision 30097 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2009-12-21 01:41:29 +00:00
Ramiro Polla
e7a47515ab Check if chroma horizontal scaler is needed in sws_init_swScale().
Originally committed as revision 30096 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2009-12-21 01:34:45 +00:00
Ramiro Polla
e77ddfa293 Indent.
Originally committed as revision 30086 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2009-12-20 17:15:01 +00:00
Ramiro Polla
b501a1f56a Set fast_bilinear functions in sws_init_swScale().
Originally committed as revision 30085 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2009-12-20 17:09:46 +00:00
Ramiro Polla
bae76dc3eb Set horizontal scaler's range conversion in context in sws_init_swScale().
Originally committed as revision 30082 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2009-12-20 16:32:58 +00:00
Ramiro Polla
84011f10d5 Set horizontal scaler's src offsets in context in sws_init_swScale().
Originally committed as revision 30081 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2009-12-20 16:21:25 +00:00
Ramiro Polla
75084e47ff Start using intermediate buffers at index 0.
These index variables are incremented before each use, so they should be
initialized to -1.

Originally committed as revision 29977 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2009-12-06 22:01:25 +00:00
Ramiro Polla
e470691aa8 Fix compilation with runtime cpu detection.
All functions in swscale_template.c should be declared with the RENAME macro.

Originally committed as revision 29976 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2009-12-05 09:44:19 +00:00
Ramiro Polla
f415be684d Add support for nv12/nv21 input.
Originally committed as revision 29974 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
2009-12-03 18:18:13 +00:00