Commit Graph

23722 Commits

Author SHA1 Message Date
Michael Niedermayer
7a556ebccf Merge commit '0c15a9aa7e1654a19144eb594f9639a57fd47482'
* commit '0c15a9aa7e1654a19144eb594f9639a57fd47482':
  sh4: Remove dubious aligned dsputil code

Conflicts:
	libavcodec/sh4/dsputil_align.c
	libavcodec/sh4/h264chroma_init.c
	libavcodec/sh4/hpeldsp.c
	libavcodec/sh4/qpel.c

If someone wants to maintain the sh4 code in ffmpeg, wants to
add more optimizations, or volunteers to maintain any of
what is removed here and can confirm that they are faster.
Then please contact us!

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-22 18:59:23 +02:00
Michael Niedermayer
430d69c942 Merge commit 'b4ad7c54c878dead7dfa4838b912a530c1debe85'
* commit 'b4ad7c54c878dead7dfa4838b912a530c1debe85':
  x86: cavs: Refactor duplicate dspfunc macro

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-22 18:37:44 +02:00
Michael Niedermayer
f84e373797 Merge commit '78fa0bd0f7067868943c0899907e313414492426'
* commit '78fa0bd0f7067868943c0899907e313414492426':
  x86: cavs: Put mmx-specific code into its own init function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-22 18:29:05 +02:00
Diego Biurrun
c1ad70c3cb x86: Move some conditional code around to avoid unused variable warnings 2013-04-22 17:50:02 +02:00
Janne Grunau
10f1a4d9bd jpeg2kdec: output is native endian AV_PIX_FMT_XYZ12 2013-04-22 17:11:21 +02:00
Janne Grunau
94660c3524 threads: always call thread_finish_setup for intra codecs
Intra codecs do not need an update_thread_context() function and never
call ff_thread_finish_setup(). They rely on ff_thread_get_buffer()
calling it. So call it even if the get_buffer2 function pointer is
avcodec_default_get_buffer2 and it has not been called before.
2013-04-22 17:11:20 +02:00
Diego Biurrun
f13888afcc avcodec: Bump minor for JPEG 2000 decoder 2013-04-22 15:52:43 +02:00
Nicolas Bertrand
c81a706381 JPEG 2000 decoder for DCinema
Based on the 2007 GSoC project from Kamil Nowosad <k.nowosad@students.mimuw.edu.pl>
Updated to current programming standards, style and many more small
fixes by Diego Biurrun <diego@biurrun.de>.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-04-22 15:38:29 +02:00
Michael Niedermayer
2288c77689 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: Remove some duplicate function declarations

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-22 13:07:20 +02:00
Diego Biurrun
0c15a9aa7e sh4: Remove dubious aligned dsputil code
The code represents a considerable maintenance burden and it is not
clear that it gives a noticeable benefit to outweigh this after 10
years of improvements in compiler technology since its creation.
2013-04-22 12:12:24 +02:00
Diego Biurrun
b4ad7c54c8 x86: cavs: Refactor duplicate dspfunc macro 2013-04-22 12:05:09 +02:00
Diego Biurrun
fce99322b0 h264: Drop unused variable 2013-04-22 12:05:09 +02:00
Diego Biurrun
78fa0bd0f7 x86: cavs: Put mmx-specific code into its own init function
Before, this code was labeled as mmxext and enabled both for the
3dnow and the mmxext case.
2013-04-22 10:42:50 +02:00
Diego Biurrun
311a592dfc x86: Remove some duplicate function declarations 2013-04-22 02:29:57 +02:00
Michael Niedermayer
de9fbf3dc4 indeo4: implement haar 8x1 and 1x8 transforms
Fixes Ticket1984
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-22 02:29:12 +02:00
Michael Niedermayer
83330cf5fa init_vlc_sparse: fix leak on error
Fixes CID1005312

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-21 11:55:19 +02:00
Michael Niedermayer
2d23493020 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  ppc: hpeldsp: Include attributes.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-21 09:54:02 +02:00
Roberto Togni
8017683647 qdm2: initialize coeff_per_sb_select from bit_rate
The value of coeff_per_sb_select depends on the bit rate, not on
sub_sampling.
Also remove the calculation of tmp, no longer needed.

Fixes tickets #1868 and #742 (only audio part)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-21 02:00:06 +02:00
Michael Niedermayer
4824aea7af avcodec/mpegvideo: change asserts to av_asserts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 21:31:19 +02:00
Michael Niedermayer
0dd25e4699 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  x86: Remove unused inline asm instruction defines
  vc1: Remove now unused variables

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 16:24:15 +02:00
Michael Niedermayer
0e3d2b2c8d Merge commit '287c8db39e71af7047e551bbfd1264d771cccbc9'
* commit '287c8db39e71af7047e551bbfd1264d771cccbc9':
  cosmetics: bfin: Fix indentation in the dsputil init function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 16:19:59 +02:00
Michael Niedermayer
9ae56b85b6 Merge commit 'd4d186d185df98492d8935a87c5b5cf369db9748'
* commit 'd4d186d185df98492d8935a87c5b5cf369db9748':
  dsputil: Remove non-8bpp draw_edge

Conflicts:
	libavcodec/dsputil.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 16:07:20 +02:00
Michael Niedermayer
f6dcd844ee Merge commit '619e0da19119bcd683f135fe9a164f37c0ca70d1'
* commit '619e0da19119bcd683f135fe9a164f37c0ca70d1':
  dsputil: Remove unused 32-bit functions

Conflicts:
	libavcodec/dsputil.c
	libavcodec/dsputil_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 15:55:29 +02:00
Martin Storsjö
6d0fbebf94 ppc: hpeldsp: Include attributes.h
This fixes building in configurations where altivec is disabled.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-20 16:43:01 +03:00
Michael Niedermayer
d2d2c309e8 Merge commit '54cd5e4f92de6bd0fb8e24069153b0156c8136bc'
* commit '54cd5e4f92de6bd0fb8e24069153b0156c8136bc':
  dsputil: Remove hpel functions (moved to hpeldsp)

Conflicts:
	libavcodec/hpeldsp.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 15:36:23 +02:00
Michael Niedermayer
6ec26157b9 Merge commit '2957d29f0531ccd8a6f4378293424dfd92db3044'
* commit '2957d29f0531ccd8a6f4378293424dfd92db3044':
  alpha: hpeldsp: Move half-pel assembly from dsputil to hpeldsp

Conflicts:
	libavcodec/alpha/dsputil_alpha.c
	libavcodec/alpha/hpeldsp_alpha.c
	libavcodec/alpha/hpeldsp_alpha.h
	libavcodec/alpha/hpeldsp_alpha_asm.S
	libavcodec/hpeldsp.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 15:24:25 +02:00
Michael Niedermayer
fdb1f7eb7a Merge commit '78ce568e43a7f3993c33100aa8f5d56c4c4bd493'
* commit '78ce568e43a7f3993c33100aa8f5d56c4c4bd493':
  sparc: hpeldsp: Move vis half-pel assembly from dsputil to hpeldsp

Conflicts:
	libavcodec/hpeldsp.h
	libavcodec/sparc/dsputil_vis.c
	libavcodec/sparc/hpeldsp_vis.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 15:11:06 +02:00
Michael Niedermayer
4bdec0e71e Merge commit '278bd2054ca61ab70dfe38f1774409cda2da5359'
* commit '278bd2054ca61ab70dfe38f1774409cda2da5359':
  sh4: hpeldsp: Move half-pel assembly from dsputil to hpeldsp

Conflicts:
	libavcodec/hpeldsp.c
	libavcodec/hpeldsp.h
	libavcodec/sh4/dsputil_align.c
	libavcodec/sh4/dsputil_sh4.h
	libavcodec/sh4/hpeldsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 15:04:06 +02:00
Michael Niedermayer
c5a11ab6d1 Merge commit 'bfb41b5039e36b7f873d6ea7d24b31bf3e1a8075'
* commit 'bfb41b5039e36b7f873d6ea7d24b31bf3e1a8075':
  bfin: hpeldsp: Move half-pel assembly from dsputil to hpeldsp

Conflicts:
	libavcodec/bfin/Makefile
	libavcodec/bfin/hpel_pixels_bfin.S
	libavcodec/bfin/hpeldsp_bfin.c
	libavcodec/bfin/hpeldsp_bfin.h
	libavcodec/hpeldsp.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 14:31:11 +02:00
Michael Niedermayer
c4010972c4 Merge commit '7384b7a71338d960e421d6dc3d77da09b0a442cb'
* commit '7384b7a71338d960e421d6dc3d77da09b0a442cb':
  arm: hpeldsp: Move half-pel assembly from dsputil to hpeldsp

Conflicts:
	libavcodec/arm/Makefile
	libavcodec/arm/hpeldsp_arm.S
	libavcodec/arm/hpeldsp_arm.h
	libavcodec/arm/hpeldsp_armv6.S
	libavcodec/arm/hpeldsp_init_arm.c
	libavcodec/arm/hpeldsp_init_armv6.c
	libavcodec/arm/hpeldsp_init_neon.c
	libavcodec/arm/hpeldsp_neon.S
	libavcodec/hpeldsp.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 14:19:08 +02:00
Michael Niedermayer
055e5c8e01 Merge commit '47e5a98174eb9c07ad17be71df129719d60ec8b7'
* commit '47e5a98174eb9c07ad17be71df129719d60ec8b7':
  ppc: hpeldsp: Move half-pel assembly from dsputil to hpeldsp

Conflicts:
	libavcodec/hpeldsp.h
	libavcodec/ppc/hpeldsp_altivec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 13:52:58 +02:00
Michael Niedermayer
d0aa60da10 Merge commit '8db00081a37d5b7e23918ee500bb16bc59b57197'
* commit '8db00081a37d5b7e23918ee500bb16bc59b57197':
  x86: hpeldsp: Move half-pel assembly from dsputil to hpeldsp

Conflicts:
	libavcodec/hpeldsp.c
	libavcodec/hpeldsp.h
	libavcodec/x86/Makefile
	libavcodec/x86/dsputil_mmx.c
	libavcodec/x86/hpeldsp_init.c
	libavcodec/x86/hpeldsp_rnd_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 13:42:51 +02:00
Michael Niedermayer
3fee9fa022 Merge commit '28bc406c84b04a5f1458b90ff52ddbec73e46202'
* commit '28bc406c84b04a5f1458b90ff52ddbec73e46202':
  mjpeg: Use hpeldsp instead of dsputil for half-pel functions
  svq1enc: Use hpeldsp instead of dsputil for half-pel functions

Conflicts:
	configure
	libavcodec/mjpegdec.c
	libavcodec/svq1enc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 13:21:18 +02:00
Michael Niedermayer
ab4ba6b74d Merge commit '2f6bc5f7c193477c2ebc0acce8f2d5551445e129'
* commit '2f6bc5f7c193477c2ebc0acce8f2d5551445e129':
  svq3: Use hpeldsp instead of dsputil for half-pel functions
  mpegvideo: Use hpeldsp instead of dsputil for half-pel functions
  svq1: Use hpeldsp instead of dsputil for half-pel functions
  mimic: Use hpeldsp instead of dsputil for half-pel functions

Conflicts:
	configure
	libavcodec/motion_est.c
	libavcodec/mpegvideo.c
	libavcodec/mpegvideo.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 10:12:07 +02:00
Michael Niedermayer
3c6621708b Merge commit '8071264f2196d71ff49c3944c33f8d3d83f548f1'
* commit '8071264f2196d71ff49c3944c33f8d3d83f548f1':
  interplayvideo: Use hpeldsp instead of dsputil for half-pel functions
  bink: Use hpeldsp instead of dsputil for half-pel functions
  indeo3: Use hpeldsp instead of dsputil for half-pel functions
  vp56: Use hpeldsp instead of dsputil for half-pel functions
  vp3: Use hpeldsp instead of dsputil for half-pel functions

Conflicts:
	libavcodec/bink.c
	libavcodec/indeo3.c
	libavcodec/vp56.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 10:01:54 +02:00
Michael Niedermayer
23de9e91df Merge commit '68d8238cca52e50e8cc81bf2edcaf8088c52d4c0'
* commit '68d8238cca52e50e8cc81bf2edcaf8088c52d4c0':
  hpeldsp: Add half-pel functions (currently copies of dsputil)

Conflicts:
	libavcodec/hpeldsp.c
	libavcodec/hpeldsp.h
	libavcodec/hpeldsp_template.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 09:42:07 +02:00
Michael Niedermayer
6c9d28a229 vc1dec: Fix tff == 0 handling in init_block_index()
This fixes several files from VLC ticket5887

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 02:22:32 +02:00
Michael Niedermayer
a0fbc28c38 vc1dec: Fix non pullup tff
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 02:22:32 +02:00
Michael Niedermayer
8ebfd7c49e h264: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-20 02:22:32 +02:00
Clément Bœsch
a16c20569d lavf/gifdec: add loop support.
Loop is ignored by default.
2013-04-20 00:05:35 +02:00
Clément Bœsch
f5ede48fbb lavc/gif: miscellaneous cosmetics. 2013-04-19 23:59:22 +02:00
Clément Bœsch
e1b35bdde2 lavc/gif: add flag to enable transparency detection between frames.
While this is not always optimal, in practice most of the common cases are.

  ffmpeg -i big_buck_bunny_1080p_h264.mov -ss 45 -vf scale=320:160 -gifflags -transdiff -frames:v 50 -y bbb-notrans.gif
  ffmpeg -i big_buck_bunny_1080p_h264.mov -ss 45 -vf scale=320:160 -gifflags +transdiff -frames:v 50 -y bbb-trans.gif

  -rw-r--r-- 1 ubitux ubitux 1.1M Apr 19 19:00 bbb-notrans.gif
  -rw-r--r-- 1 ubitux ubitux 378K Apr 19 19:00 bbb-trans.gif
2013-04-19 23:59:21 +02:00
Clément Bœsch
0f1250b7e5 lavc/gif: make possible to disable offsetting. 2013-04-19 23:59:21 +02:00
Martin Storsjö
b71a0507b0 x86: Remove unused inline asm instruction defines
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-20 00:44:54 +03:00
Martin Storsjö
a60136ee57 vc1: Remove now unused variables
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-20 00:44:49 +03:00
Michael Niedermayer
f4b05cd841 Merge commit '5e83d9aced2fc2b2e1360452794c58aba55d497c'
* commit '5e83d9aced2fc2b2e1360452794c58aba55d497c':
  h264: fully support cropping.

Conflicts:
	doc/APIchanges
	libavcodec/h264.c
	libavcodec/h264_ps.c
	libavcodec/options_table.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-19 22:46:51 +02:00
Martin Storsjö
287c8db39e cosmetics: bfin: Fix indentation in the dsputil init function
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. Bultje
d4d186d185 dsputil: Remove non-8bpp draw_edge
It is never used.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. Bultje
619e0da191 dsputil: Remove unused 32-bit functions
Previously, if dct_bits was set to 32, we used separate 32-bit
versions of these functions. Since dct_bits now is removed,
remove the unused 32-bit versions of the functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. Bultje
54cd5e4f92 dsputil: Remove hpel functions (moved to hpeldsp)
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. Bultje
2957d29f05 alpha: hpeldsp: Move half-pel assembly from dsputil to hpeldsp
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. Bultje
78ce568e43 sparc: hpeldsp: Move vis half-pel assembly from dsputil to hpeldsp
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. Bultje
c9f5fcd08c dsputil: Merge 9-10 bpp functions for get_pixels and draw_edge
These only care about pixel storage unit size, not actual bits
used (i.e. they don't clip).

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. Bultje
c443117f25 dsputil: Remove dct_bits
dct_bits is never set except in h264, where it is never used,
thus remove it.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Michael Niedermayer
278bd2054c sh4: hpeldsp: Move half-pel assembly from dsputil to hpeldsp
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:21 +03:00
Ronald S. Bultje
bfb41b5039 bfin: hpeldsp: Move half-pel assembly from dsputil to hpeldsp
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:19:13 +03:00
Ronald S. Bultje
7384b7a713 arm: hpeldsp: Move half-pel assembly from dsputil to hpeldsp
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:19:08 +03:00
Ronald S. Bultje
47e5a98174 ppc: hpeldsp: Move half-pel assembly from dsputil to hpeldsp
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:59 +03:00
Ronald S. Bultje
8db00081a3 x86: hpeldsp: Move half-pel assembly from dsputil to hpeldsp
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:53 +03:00
Ronald S. Bultje
28bc406c84 mjpeg: Use hpeldsp instead of dsputil for half-pel functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:38 +03:00
Ronald S. Bultje
1277dc07fb svq1enc: Use hpeldsp instead of dsputil for half-pel functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:32 +03:00
Ronald S. Bultje
2f6bc5f7c1 svq3: Use hpeldsp instead of dsputil for half-pel functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:27 +03:00
Ronald S. Bultje
f4fed5a2f9 mpegvideo: Use hpeldsp instead of dsputil for half-pel functions
This also converts vc1, since that is mpegvideo-based.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:21 +03:00
Ronald S. Bultje
6caa44aa7d svq1: Use hpeldsp instead of dsputil for half-pel functions
This makes svq1 independent of dsputil.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:14 +03:00
Ronald S. Bultje
c10470035e mimic: Use hpeldsp instead of dsputil for half-pel functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:08 +03:00
Ronald S. Bultje
8071264f21 interplayvideo: Use hpeldsp instead of dsputil for half-pel functions
This makes interplayvideo independent of dsputil.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:02 +03:00
Ronald S. Bultje
0f0a11d576 bink: Use hpeldsp instead of dsputil for half-pel functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:17:56 +03:00
Ronald S. Bultje
8f992dc8c7 indeo3: Use hpeldsp instead of dsputil for half-pel functions
This makes the Indeo 3 decoder independent of dsputil.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:17:50 +03:00
Ronald S. Bultje
cb7ecb7563 vp56: Use hpeldsp instead of dsputil for half-pel functions
This makes vp5 and vp6 independent of dsputil.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:17:33 +03:00
Ronald S. Bultje
3bd062bf7f vp3: Use hpeldsp instead of dsputil for half-pel functions
This makes vp3 independent of dsputil.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:17:26 +03:00
Ronald S. Bultje
68d8238cca hpeldsp: Add half-pel functions (currently copies of dsputil)
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:17:17 +03:00
Michael Niedermayer
05b2c998c7 avcodec: Fix lowres handling in buffer allocation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-19 21:49:36 +02:00
Michael Niedermayer
a8b05dde0d Merge commit 'a7f46586bf47174b5fa00a905b767b1781ec8b72'
* commit 'a7f46586bf47174b5fa00a905b767b1781ec8b72':
  ff_get_buffer(): allocate the frame for max(coded,display) dimensions

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-19 21:49:29 +02:00
Michael Niedermayer
42bcc4082d avcodec/mpegvideo_motion: Use a field from the current frame if the last is unavailable in DMV & 16x8
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-19 14:48:01 +02:00
Christophe Gisquet
76c7277385 x86: sbrdsp: implement SSE2 hf_apply_noise
233 to 105 cycles on Arrandale and Win64.
Replacing the multiplication by s_m[m] by a pand and a pxor with
appropriate vectors is slower. Unrolling is a 15 cycles win.
A SSE version was 4 cycles slower.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-19 13:19:45 +02:00
Clément Bœsch
380cfce2b2 lavc: add AV_CODEC_PROP_TEXT_SUB.
CC are not marked. Also allow potential mixed types later.
2013-04-19 13:15:54 +02:00
Anton Khirnov
5e83d9aced h264: fully support cropping.
Based on a patch by Vittorio Giovara <vittorio.giovara@gmail.com>

Fixes Bug 378.
2013-04-19 09:28:08 +02:00
Anton Khirnov
a7f46586bf ff_get_buffer(): allocate the frame for max(coded,display) dimensions
Needed e.g. for h264 cropping to work properly.
2013-04-19 09:26:53 +02:00
Clément Bœsch
13478b270a gif: use only one graphic control extension block per image.
The encoder now doesn't produce any extra graphic control extension
block anymore. Only the image is encoded, and the muxer writing
its own GCE containing notably the timing information now includes the
optional palette transmitted through packet side data.

This commit avoid setting clashes between the two GCE, and reduce the
size of the generated file with pal8 output.
2013-04-19 02:10:59 +02:00
Clément Bœsch
7b80b3cef0 lavc/utils: merge side data after video encode.
This allows encoders to communicate side data to the muxers.
2013-04-19 02:10:12 +02:00
Reimar Döffinger
a39cd8766f Fix multithreaded MPEG-4 decoding.
Regression since c10d498bfd.
Unfortunately ff_thread_get_format can only be called from
a separate decode thread, running it during init will fail.
Fixes for that are welcome, for now just revert back to
calling avctx->get_format directly, which is correct
but having to decide on a case-by-case basis which approach
to use is a bit messy.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-04-19 01:26:54 +02:00
Clément Bœsch
7c1a002c78 subtitles: introduce ASS codec id and use it.
Currently, we have a AV_CODEC_ID_SSA, which matches the way the ASS/SSA
markup is muxed in a standalone .ass/.ssa file. This means the AVPacket
data starts with a "Dialogue:" string, followed by a timing information
(start and end of the event as string) and a trailing CRLF after each
line. One packet can contain several lines. We'll refer to this layout
as "SSA" or "SSA lines".

In matroska, this markup is not stored as such: it has no "Dialogue:"
prefix, it contains a ReadOrder field, the timing information is not in
the payload, and it doesn't contain the trailing CRLF. See [1] for more
info. We'll refer to this layout as "ASS".

Since we have only one common codec for both formats, the matroska
demuxer is constructing an AVPacket following the "SSA lines" format.
This causes several problems, so it was decided to change this into
clean ASS packets.

Some insight about what is changed or unchanged in this commit:

  CODECS
  ------

  - the decoding process still writes "SSA lines" markup inside the ass
    fields of the subtitles rectangles (sub->rects[n]->ass), which is
    still the current common way of representing decoded subtitles
    markup. It is meant to change later.

  - new ASS codec id: AV_CODEC_ID_ASS (which is different from the
    legacy AV_CODEC_ID_SSA)

  - lavc/assdec: the "ass" decoder is renamed into "ssa" (instead of
    "ass") for consistency with the codec id and allows to add a real
    ass decoder. This ass decoder receives clean ASS lines (so it starts
    with a ReadOrder, is followed by the Layer, etc). We make sure this
    is decoded properly in a new ass-line rectangle of the decoded
    subtitles (the ssa decoder OTOH is doing a simple straightforward
    copy). Using the packet timing instead of data string makes sure the
    ass-line now contains the appropriate timing.

  - lavc/assenc: just like the ass decoder, the "ssa" encoder is renamed
    into "ssa" (instead of "ass") for consistency with the codec id, and
    allows to add a real "ass" encoder.

    One important thing about this encoder is that it only supports one
    ass rectangle: we could have put several dialogue events in the
    AVPacket (separated by a \0 for instance) but this would have cause
    trouble for the muxer which needs not only the start time, but also
    the duration: typically, you have merged events with the same start
    time (stored in the AVPacket->pts) but a different duration. At the
    moment, only the matroska do the merge with the SSA-line codec.

    We will need to make sure all the decoders in the future can't add
    more than one rectangle (and only one Dialogue line in it
    obviously).

  FORMATS
  -------

  - lavf/assenc: the .ass/.ssa muxer can take both SSA and ASS packets.
    In the case of ASS packets as input, it adds the timing based on the
    AVPacket pts and duration, and mux it with "Dialogue:", trailing
    CRLF, etc.

  - lavf/assdec: unchanged; it currently still only outputs SSA-lines
    packets.

  - lavf/mkv: the demuxer can now output ASS packets without the need of
    any "SSA-lines" reconstruction hack. It will become the default at
    next libavformat bump, and the SSA support will be dropped from the
    demuxer. The muxer can take ASS packets since it's muxed normally,
    and still supports the old SSA packets. All the SSA support and
    hacks in Matroska code will be dropped at next lavf bump.

[1]: http://www.matroska.org/technical/specs/subtitles/ssa.html
2013-04-18 23:23:59 +02:00
Michael Niedermayer
23daee0dcc avcodec/mpegvideo_motion: Check P field references
If a reference is unavailable use a field from the current
picture
Fixes null pointer dereference

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-18 20:13:22 +02:00
Michael Niedermayer
4c8ce750ab svq3: use memmove to avoid overlap in memcpy.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-18 17:56:45 +02:00
Michael Niedermayer
5ae484e350 evrcdec: use memmove() instead of memcpy() when regions can overlap.
This occurs also with valid files.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-18 16:20:49 +02:00
Clément Bœsch
90a56ebbe5 lavc/gif: avoid encoding 0x0 images.
It seems browsers don't like it very much.
2013-04-18 15:30:02 +02:00
Michael Niedermayer
6998af4a40 avcodec/bitstream: check codes in ff_init_vlc_sparse()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-18 02:57:03 +02:00
Michael Niedermayer
fb3e3808ae avcodec/bitstream: Check bits in ff_init_vlc_sparse()
Fixes out of array reads

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-18 02:47:50 +02:00
Michael Niedermayer
bdfe60c769 xan: Check for overlapping copies
No valid samples i found use such copies

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-18 01:55:42 +02:00
Clément Bœsch
91a5b4d480 gif: remove outdated comments. 2013-04-18 00:43:38 +02:00
Clément Bœsch
8694e87127 lavc/gif: return more meaningful error code. 2013-04-18 00:24:25 +02:00
Clément Bœsch
71411b69a2 lavc/gif: merge two allocation checks. 2013-04-18 00:24:25 +02:00
Clément Bœsch
7b972d82b6 gif: reindent after previous commits. 2013-04-18 00:24:25 +02:00
Clément Bœsch
e065e8a4ea lavc/gif: crop image when possible.
Increase compression when pictures are similar.

-f lavfi testsrc=300: 61M -> 21M
2013-04-18 00:24:25 +02:00
Clément Bœsch
635389ccfa Cleanse GIF muxer and encoder.
This commit removes the badly duplicated code between the encoder and
the muxer. That may sound surprising, but the encoder is now responsible
from the encoding of the picture when muxing to a .gif file. It also
does not require anymore a manual user intervention such as a -pix_fmt
rgb24 to work properly. To summarize, output gif are now easier to
generate, code is saner and simpler, and files are smaller (thanks to
the lzw encoding which was unused so far with the default .gif output).
We can certainly make things even better, but this is the first step.

FATE is updated because of the output being produced by the encoder and
not the muxer (no lzw in the muxer), and in the seek test only the size
mismatches.

Fixes Ticket #2262
2013-04-18 00:24:25 +02:00
Michael Niedermayer
3220083c11 ra144: Try to fix int16/uint16 warnings from pgc
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-17 21:31:11 +02:00
Michael Niedermayer
7f2253078d Merge remote-tracking branch 'qatar/master'
* qatar/master:
  indeo3: check motion vectors.

Conflicts:
	libavcodec/indeo3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-17 17:30:07 +02:00
Michael Niedermayer
2787f7b188 Merge commit '34e6af9e204ca6bb18d8cf8ec68fe19b0e083e95'
* commit '34e6af9e204ca6bb18d8cf8ec68fe19b0e083e95':
  indeo3: fix data size check

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-17 16:57:45 +02:00
Michael Niedermayer
4029a5ebc2 Merge commit '66531d634e75b834e89e4a6a0f7470ca018712a1'
* commit '66531d634e75b834e89e4a6a0f7470ca018712a1':
  indeo3: switch parsing the header to bytestream2

Conflicts:
	libavcodec/indeo3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-17 16:50:34 +02:00
Michael Niedermayer
e5dc5095f9 Merge commit '01d376f598fe95478036f5d1e3e5e14ffe32d4bf'
* commit '01d376f598fe95478036f5d1e3e5e14ffe32d4bf':
  rv10: check that extradata is large enough

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-17 16:20:49 +02:00