1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-18 03:19:31 +02:00
Commit Graph

42475 Commits

Author SHA1 Message Date
Reinhard Tartler
a1641e9540 attributes: drop pointless define guards
the av_-prefixed attributes must not be defined outside of this file
2012-07-03 17:26:51 +02:00
Mans Rullgard
06eb4f0885 configure: do not disable av_always_inline with --enable-small
Currently, --enable-small turns av_always_inline into plain inline,
which is more or less ignored by the compiler.  While the intent of
this is probably to reduce code size by avoiding some inlining, it
has more far-reaching effects.

We use av_always_inline in two situations:

1. The body of a function is smaller than the call overhead.
   Instances of these are abundant in libavutil, the bswap.h
   functions being good examples.

2. The function is a template relying on constant propagation
   through inlined calls for sane code generation.  These are
   often found in motion compensation code.

Both of these types of functions should be inlined even if targeting
small code size.

Although GCC has heuristics for detecting the first of these types,
it is not always reliable, especially when the function uses inline
assembler, which is often the reason for having those functions in
the first place, so making it explicit is generally a good idea.

The size increase from inlining template-type functions is usually
much smaller than it seems due to different branches being mutually
exclusive between the different invocations.  The dead branches can,
however, only be removed after inlining and constant propagation have
been performed, which means the initial cost estimate for inlining
these is much higher than is actually the case, resulting in GCC
often making bad choices if left to its own devices.

Furthermore, the GCC inliner limits how much it allows a function to
grow due to automatic inlining of calls, and this appears to not take
call overhead into account.  When nested inlining is used, the limit
may be hit before the innermost level is reached.  In some cases, this
has prevented inlining of type 1 functions as defined above, resulting
in significant performance loss.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-03 16:10:54 +01:00
Luca Barbato
09a445ce34 flvdec: initial stream switch support
Codec change midstream gets mapped to a separate stream.
2012-07-03 15:35:51 +02:00
Luca Barbato
906f9dce85 avplay: fix write on freed memory for rawvideo
Do not assume avpacket and the decoded frames are independent.

To be absolutely sure and not sprinkle av_free_packet around the code
the call had been placed before getting the frame and on the error path.
2012-07-03 15:35:51 +02:00
Ronald S. Bultje
3389545157 snow: remove a VLA used for edge emulation
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-03 16:31:23 +03:00
Mans Rullgard
fb93e61e2b x86: lavfi: fix gradfun/yadif build with mmx/sse disabled
These functions are defined conditionally so any uses need to have
preprocessor guards.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-03 14:14:13 +01:00
Paul B Mahol
5d171b1f47 jvdec: check if there is enough data
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 13:06:23 +00:00
Paul B Mahol
f8a81755c2 jvdec: remove redundant check
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 13:06:23 +00:00
Paul B Mahol
1bc9e4c5b2 jvdec: remove buf_size
It is same as avpkt->size.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 13:06:23 +00:00
Paul B Mahol
1c638cfc25 jvdec: stop reading partial palette
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 13:06:23 +00:00
Michael Niedermayer
c673a90b0d tools: add bisect script
This script works like "git bisect" except that you can
specify with "bisect need ffmpeg|ffplay|ffserver|ffprobe" which tool(s)
are needed for testing a checkout

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 13:29:12 +02:00
Michael Niedermayer
c9de83fefd yadif/x86: add prototypes for functions, make code valid C again.
Broken by: libav (a87b17f328)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 12:47:11 +02:00
Michael Niedermayer
114f82ee7e jvdec: check that the video_size fits in the packet.
Prevents use of out of array data and fate failure.

Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 12:38:03 +02:00
Paul B Mahol
596814f978 jvdec: fix memleak of jv->frames
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 09:53:42 +00:00
Ronald S. Bultje
cbd9b2f918 snow: remove the runs[] VLA.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-03 12:16:46 +03:00
Martin Storsjö
4d8516fdb1 snow: Check mallocs at init
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-03 12:16:39 +03:00
Michael Niedermayer
9d0c71e5e3 jvdemux: correct size for truncated packets
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 05:26:15 +02:00
Paul B Mahol
699083edce fate: add test for Bitmap Brothers JV demuxer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 02:18:01 +00:00
Paul B Mahol
7c52070131 fate: add test for Bitmap Brothers JV video
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2012-07-03 02:18:01 +00:00
Michael Niedermayer
6671c40038 h264pred: assert that depth is supported
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 03:31:06 +02:00
Michael Niedermayer
9c995fe19a h264dsp: assert that depth is supported
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 03:31:06 +02:00
Michael Niedermayer
5a1bbb3af0 dsputil: assert that depth is supported
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 03:31:06 +02:00
Stefano Sabatini
bb6effe059 lavfi: remove vsrc_buffer.h API
The vsrc_buffer.h is not installed since commit 0b3b958135, so there is
no point into keeping it around.

The buffersrc.h API, which is more powerful, should be used instead.
2012-07-03 01:32:16 +02:00
Stefano Sabatini
ab7dbdc92c lavc/rawdec: add assertion check in raw_decode()
Check on an implicit assumption done on the number of coded bits for
paletted rawvideo with coded bits == 2.
2012-07-03 01:25:02 +02:00
Stefano Sabatini
17a54f5de8 lavc/rawdec: prefer constant AVPALETTE_SIZE over 256*4
Improve readability.
2012-07-03 01:24:56 +02:00
Michael Niedermayer
4330b8bba2 h264: sps: handle more profiles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 00:40:26 +02:00
Michael Niedermayer
9091ba9dfa h264: add support for constraint_set4_flag / constraint_set5_flag
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-03 00:36:26 +02:00
Michael Niedermayer
b6851d34c0 x86/gradfun: fix compilation failure on open solaris
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 23:51:03 +02:00
Michael Niedermayer
b2527d5d5a Revert "alsdec: remove dead assignments"
This reverts commit 4ca6d206d1.

The assignment is not dead, this should fix fate failures on BSD
2012-07-02 23:43:06 +02:00
Michael Niedermayer
a08efa2e36 has_decode_delay_been_guessed: tighten up the heuristic.
This adds the minimum delay needed with the current decoder to
recognize the reorder buffer size for the reference bitstreams.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 23:23:33 +02:00
Michael Niedermayer
4e9e0700fb has_decode_delay_been_guessed: skip guessing when sps.num_reorder_frames is available
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 23:18:32 +02:00
Michael Niedermayer
1fb07be062 fate: drop strict 1 for MR4_TANDBERG_C.264 and MR5_TANDBERG_C.264
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 23:18:04 +02:00
Michael Niedermayer
bafa1c7f38 h264: add avpriv_h264_has_num_reorder_frames()
This function exports the exact sps.num_reorder_frames value

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 23:16:59 +02:00
Mans Rullgard
4719ea7e1e flacdec: remove redundant setting of avctx->sample_fmt
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-02 22:13:32 +01:00
Michael Niedermayer
2c883c6acf has_decode_delay_been_guessed: improve heuristic
This allows MR4_TANDBERG_C.264 and MR5_TANDBERG_C.264 to be decoded without -strict 1

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 22:59:42 +02:00
Michael Niedermayer
41dd30068a doc/developer: refer to av_malloc() instead of malloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 21:24:47 +02:00
Michael Niedermayer
b286383bd2 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  asfdec: read attached pictures.
  apetag: reindent
  apetag: export attached covers as video streams.
  apetag: fix the amount of data read from binary tags.
  apetag: make sure avio_get_str() doesn't read more than it should.
  mov: read itunes cover art.
  snow: remove VLA in mc_block()
  intfloat: Don't use designated initializers in the public headers
  snow: remove a VLA.
  doc: Remind devs to check return values, especially for malloc() et al
  MS ATC Screen (aka MSS3) decoder
  vf_yadif: move x86 init code to x86/yadif.c
  vf_gradfun: move x86 init code to x86/gradfun.c
  roqvideo: Remove a totally unused dspcontext
  smacker: remove some unused code
  dsicin: remove dead assignment
  aacdec: remove dead assignment
  rl2: remove dead assignment
  proresenc: make a variable local to the loop where it is used
  alsdec: remove dead assignments

Conflicts:
	Changelog
	doc/developer.texi
	libavcodec/allcodecs.c
	libavcodec/avcodec.h
	libavcodec/version.h
	libavfilter/gradfun.h
	libavfilter/x86/gradfun.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 21:19:41 +02:00
Clément Bœsch
7c84e7d337 mem: heap memory poisoning.
Enable it by default with FATE.
limitation: not random, and not supported with realloc.
2012-07-02 21:02:15 +02:00
Michael Niedermayer
2278a3e5f7 vc1dsp: use av_assert2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 20:52:36 +02:00
Michael Niedermayer
2ceaffc627 resample2: use av_assert()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 20:52:22 +02:00
Michael Niedermayer
7309451d73 swr: fix warning: passing argument 2 of s->mix_any_f from incompatible pointer type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 17:33:27 +02:00
Michael Niedermayer
338509c2e1 swr: fix warning: passing argument 1 of s->mix_any_f from incompatible pointer type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 17:32:23 +02:00
Michael Niedermayer
087d067a99 swr: fix warning: passing argument 2 of ctx->simd_f from incompatible pointer type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 17:31:16 +02:00
Michael Niedermayer
04b5eb47a6 swr: fix mix* related function pointer warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-07-02 17:23:22 +02:00
Anton Khirnov
5e745cefc0 asfdec: read attached pictures. 2012-07-02 16:16:45 +02:00
Anton Khirnov
728d2afa17 apetag: reindent 2012-07-02 16:16:38 +02:00
Anton Khirnov
02a951b919 apetag: export attached covers as video streams. 2012-07-02 16:16:11 +02:00
Anton Khirnov
b72767df8e apetag: fix the amount of data read from binary tags.
Substract the filename size from the data size.
2012-07-02 16:15:45 +02:00
Anton Khirnov
f2e175c756 apetag: make sure avio_get_str() doesn't read more than it should. 2012-07-02 16:15:34 +02:00
Anton Khirnov
a02b8c695c mov: read itunes cover art. 2012-07-02 16:14:25 +02:00