Commit Graph

14696 Commits

Author SHA1 Message Date
Stefano Sabatini
d7e14c0d10 imgconvert: remove PixFmtInfo.pixel_type field
The field is only used for checking if a format is YUV planar
and if the format is paletted.

This patch replaces the current is_planar_yuv() code with a function
which uses the pixdesc information. The new implementation is less
efficient, but this should not be an issue as the functions which use
it (av_picture_crop/pad()) are deprecated and currently never used in
the codebase.
2011-07-25 11:11:54 +02:00
Michael Niedermayer
14d5e214bf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  jpegdec: actually search for and parse RSTn

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-25 01:19:40 +02:00
Michael Niedermayer
9e4ed295da mpeg4_decode_profile_level: fix indention
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-24 16:28:10 +02:00
Michael Niedermayer
52e24c7d7e mpeg4videodec: simplify mpeg4_decode_profile_level()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-24 16:21:37 +02:00
Michael Niedermayer
8c0fa61a97 jpegdec: actually search for and parse RSTn
Fixes decoding of MJPEG files produced by some UVC Logitec web cameras,
such as "Notebook Pro" and "HD C910".

References:
http://trac.videolan.org/vlc/ticket/4215
http://ffmpeg.org/trac/ffmpeg/ticket/267

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Reviewed-by: Kostya <kostya.shishkov@gmail.com>
(cherry picked from commit 7b8ed831eb)
2011-07-23 19:19:13 +02:00
Stefano Sabatini
3b8bb503ee imgconvert: store padded size information in PixFmtInfo, simplify avg_bits_per_pixel()
Prefer data-driven over procedural logic in avg_bits_per_pixel(),
simplify and improve robustness, as it is easy to miss a function
update when a new format is added.
2011-07-23 17:01:27 +02:00
Stefano Sabatini
49f612ee29 imgconvert: remove useless PixFmtInfo.nb_channels field 2011-07-23 17:01:27 +02:00
Michael Niedermayer
5271b857eb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dnxhddec: avoid a branch in 10-bit decode_dct_block()
  H.264: Add optimizations to predict x86 assembly.
  riff: Add mpgv MPEG-2 fourcc
  add Flash Screen Video 2 decoder

Conflicts:
	configure
	doc/general.texi
	libavcodec/Makefile
	libavcodec/allcodecs.c
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-23 16:47:10 +02:00
Mans Rullgard
b4cfb8254e dnxhddec: avoid a branch in 10-bit decode_dct_block()
The minimum weight value is 32 so this test can be skipped for the
10-bit case.  Overall speedup 3-4%.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-22 23:39:31 +01:00
Daniel Kang
406fbd24dc H.264: Add optimizations to predict x86 assembly.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-07-22 14:54:33 -07:00
Kostya Shishkov
c2d23309ef add Flash Screen Video 2 decoder
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-07-22 09:12:30 -07:00
Michael Niedermayer
4095fa9038 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  dnxhddec: optimise dnxhd_decode_dct_block()
  rtp: remove disabled code
  eac3enc: use different numbers of blocks per frame to allow higher bitrates
  dnxhd: add regression test for 10-bit
  dnxhd: 10-bit support
  dsputil: update per-arch init funcs for non-h264 high bit depth
  dsputil: template get_pixels() for different bit depths
  dsputil: create 16/32-bit dctcoef versions of some functions
  jfdctint: add 10-bit version
  mov: add clcp type track as Subtitle stream.
  mpeg4: add Mpeg4 Profiles names.
  mpeg4: decode Level Profile for MPEG4 Part 2.
  ffprobe: display bitstream level.
  imgconvert: remove unused glue and xglue macros

Conflicts:
	libavcodec/dsputil_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-22 12:08:52 +02:00
Mans Rullgard
bb32fded36 dnxhddec: optimise dnxhd_decode_dct_block()
Template the function for 8/10-bit and use lowlevel bitstream
macros.

6% faster overall on i7 gcc 4.5.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 23:14:37 +01:00
Justin Ruggles
be7bd626c4 eac3enc: use different numbers of blocks per frame to allow higher bitrates 2011-07-21 14:57:10 -04:00
Joseph Artsimovich
5ab21439fd dnxhd: 10-bit support
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 18:44:40 +01:00
Mans Rullgard
a617c6aaa3 dsputil: update per-arch init funcs for non-h264 high bit depth
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 18:10:58 +01:00
Mans Rullgard
874f1a901d dsputil: template get_pixels() for different bit depths
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 18:10:58 +01:00
Mans Rullgard
5cc2600964 dsputil: create 16/32-bit dctcoef versions of some functions
High bitdepth H.264 needs 32-bit transform coefficients, whereas
dnxhd does not.  This creates a conflict with the templated
functions operating on DCTELEM data.  This patch adds a field
allowing the caller to choose the element size in dsputil_init()
and adds the required functions.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 18:10:58 +01:00
Mans Rullgard
0a72533e98 jfdctint: add 10-bit version
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 18:10:58 +01:00
Thierry Foucu
c4ab43ff3c mpeg4: add Mpeg4 Profiles names.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-07-21 09:34:11 -07:00
Thierry Foucu
0637e50579 mpeg4: decode Level Profile for MPEG4 Part 2.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2011-07-21 09:33:34 -07:00
Stefano Sabatini
09e8163625 imgconvert: remove unused glue and xglue macros
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2011-07-21 17:55:27 +02:00
Michael Niedermayer
ba99474b1d h264: fix h264-test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-21 16:53:24 +02:00
Michael Niedermayer
f93f6963ba Merge remote-tracking branch 'qatar/master'
* qatar/master:
  rv30: return AVERROR(EINVAL) instead of EINVAL
  build: add -L flags before existing LDFLAGS
  simple_idct: whitespace cosmetics
  simple_idct: make repeated code a macro
  dsputil: remove huge #if 0 block
  simple_idct: change 10-bit add/put stride from pixels to bytes
  dsputil: allow 9/10-bit functions for non-h264 codecs
  dnxhd: rename some data tables
  dnxhdenc: remove inline from function only called through pointer
  dnxhdenc: whitespace cosmetics
  swscale: mark YUV422P10(LE,BE) as supported for output
  configure: add -xc99 to LDFLAGS for Sun CC
  Remove unused and non-compiling vestigial g729 decoder
  Remove unused code under G729_BITEXACT #ifdef.
  mpegvideo: fix invalid picture unreferencing.
  dsputil: Remove extra blank line at end.
  dsputil: Replace a LONG_MAX check with HAVE_FAST_64BIT.
  simple_idct: add 10-bit version

Conflicts:
	Makefile
	libavcodec/g729data.h
	libavcodec/g729dec.c
	libavcodec/rv30.c
	tests/ref/lavfi/pixdesc
	tests/ref/lavfi/pixfmts_copy
	tests/ref/lavfi/pixfmts_null
	tests/ref/lavfi/pixfmts_scale
	tests/ref/lavfi/pixfmts_vflip

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-21 16:28:53 +02:00
Diego Biurrun
e5985185d2 rv30: return AVERROR(EINVAL) instead of EINVAL
On some platforms EINVAL could be positive, ensure we return negative values.
2011-07-21 14:26:06 +02:00
Mans Rullgard
2cc4f3b21f simple_idct: whitespace cosmetics
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 12:49:51 +01:00
Mans Rullgard
a402f10959 simple_idct: make repeated code a macro
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 12:49:51 +01:00
Mans Rullgard
7df701a192 dsputil: remove huge #if 0 block
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 11:04:56 +01:00
Mans Rullgard
e7bcc5baf7 simple_idct: change 10-bit add/put stride from pixels to bytes
This matches other dsputil functions and simplifies calls.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 09:26:37 +01:00
Mans Rullgard
a82beafd64 dsputil: allow 9/10-bit functions for non-h264 codecs
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 09:26:26 +01:00
Joseph Artsimovich
42c27f2eca dnxhd: rename some data tables
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 03:30:29 +01:00
Mans Rullgard
b049978397 dnxhdenc: remove inline from function only called through pointer
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 02:13:03 +01:00
Mans Rullgard
1073823984 dnxhdenc: whitespace cosmetics
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-21 02:12:47 +01:00
Diego Biurrun
79a9aab56f Remove unused and non-compiling vestigial g729 decoder 2011-07-20 20:47:07 +02:00
Diego Biurrun
a005174b25 Remove unused code under G729_BITEXACT #ifdef.
G729_BITEXACT is never set, so the code is all dead code.
2011-07-20 20:47:07 +02:00
Ronald S. Bultje
80469eafb7 mpegvideo: fix invalid picture unreferencing.
Mpegvideo would free frames as soon as they're not the next or prev
picture. This is fine for a single-threading model, but fails miserably
in a system where pictures can be referenced (as e.g. last/prev pic)
in other threads. Keeping track of ownership of pictures keeps image
references (e.g. motion vectors, or the reference of a motion vector)
alive as long as the picture data itself is alive.

This also happens to fix make THREADS=[3-16] fate-vsynth[12]-error.
2011-07-20 10:26:49 -07:00
Alex Converse
e4b50572b7 dsputil: Remove extra blank line at end. 2011-07-20 10:15:57 -07:00
Alex Converse
d9a9f50a36 dsputil: Replace a LONG_MAX check with HAVE_FAST_64BIT. 2011-07-20 10:15:57 -07:00
Mans Rullgard
e7a972e113 simple_idct: add 10-bit version
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-20 17:49:48 +01:00
Michael Niedermayer
7c6c4cf2fb Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Remove h264_lowres_idct_put/add functions
  Remove snow/dwt test program
  h264: remove some disabled code
  Fix incorrect max_lowres values
  matroskadec: fix integer underflow if header length < probe length.
  cosmetics: indentation
  eac3enc: use frame exponent strategy when applicable.
  cosmetics: rename eac3dec_data.c/h to eac3_data.c/h since the tables will also be used in the E-AC-3 encoder.
  dsputil: fix ff_check_alignment()

Conflicts:
	libavcodec/Makefile
	libavcodec/h264idct_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-20 18:31:45 +02:00
Mans Rullgard
7b4ee3a21d Remove h264_lowres_idct_put/add functions
Use of these has been broken ever since the h264 idct was changed
to always use transposed inputs.  Furthermore, they were only
ever used if some *other* non-default idct was requested.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-20 16:13:04 +01:00
Mans Rullgard
89cc8a316d Remove snow/dwt test program
This test program so full of programming errors it is impossible
to make sense of it.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-20 14:54:24 +01:00
Diego Biurrun
1b4a17094e h264: remove some disabled code 2011-07-20 15:04:51 +02:00
Mans Rullgard
e23a05ab06 Fix incorrect max_lowres values
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-20 10:19:36 +01:00
Erik Slagter
045ef52ef5 libx264.c: distinguish between x264 parameter errors.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-20 02:20:08 +02:00
Justin Ruggles
953302656a cosmetics: indentation 2011-07-19 14:15:00 -04:00
Justin Ruggles
08a747afb9 eac3enc: use frame exponent strategy when applicable.
This checks if the set of selected exponent strategies for all blocks in a
channel are in the frame exponent strategy table, and if so, writes the
table index instead of each strategy. This saves up to 7 bits per channel per
frame, so the overall effect on quality is small.
2011-07-19 14:15:00 -04:00
Justin Ruggles
31b69928e5 cosmetics: rename eac3dec_data.c/h to eac3_data.c/h since the tables will also
be used in the E-AC-3 encoder.
2011-07-19 14:15:00 -04:00
Michael Niedermayer
d303e0affd Merge remote-tracking branch 'qatar/master'
* qatar/master:
  simple_idct: simplify some ifdeffery
  simple_idct: remove code for DCTELEM != int16
  Remove VLAs in ff_amrwb_lsp2lpc()
  fate: make vsynth tests depend on only the relevant vref
  rtsp: remove disabled code
  dsputil: restore mistakenly removed hunk of disabled code

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2011-07-19 18:46:04 +02:00
Mans Rullgard
29b42c66f7 dsputil: fix ff_check_alignment()
The change to LOCAL_ALIGNED means the declared object must be an
array and the subsequent test should not use the & operator.

Noticed by Uoti Urpala.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-07-19 17:44:35 +01:00