Commit Graph
100 Commits
Author SHA1 Message Date
Reimar Döffinger a149fa97d9 avcodec/frame_thread_encoder: Fix AV_OPT_TYPE_STRING handling in avctx
This is the equivalent to what 7d317d4706
did for the codec-specific options.
av_opt_copy has specific handling so it's fine that we already copied
the whole context before.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2017-09-16 16:46:00 +02:00
Reimar Döffinger 7c93f2c0b9 Move cbrt tables to separate cbrt_data(_fixed).c files.
Allows sharing and reusing the data between different files.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-03-13 18:15:57 +01:00
Reimar Döffinger b60dfae7af aacenc_utils: Use temporary variable.
This ensures gcc does not create unnecessary
loads or stores and possibly even does not vectorize
the negation.
Speeds up mp3 to aac transcoding with default settings
by 10% when using "gcc (Debian 5.3.1-10) 5.3.1 20160224".

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-03-08 23:56:51 +01:00
Reimar Döffinger b91e376390 aacenc: use generational cache instead of resetting.
Approximately 11% faster transcoding from mp3 with
default settings.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-03-08 23:56:51 +01:00
Reimar Döffinger 5f5e6033cd bitstream.c: improve init_vlc error messages.
Makes it far easier to spot the issue if e.g.
caused by a typo in the code table.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-03-06 12:31:40 +01:00
Reimar Döffinger 0a04c2885f aacenc: avoid double in quantize_bands.
I cannot see any point whatsoever to use
double here instead of float, the results
are likely identical in all cases..
Using float allows for much more
efficient use of SIMD.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-03-06 11:49:19 +01:00
Reimar Döffinger 4dd4d53531 Document and validate AVFrame plane pointers.
Check that the required plane pointers and only
those are set up.
Currently does not enforce anything for the palette
pointer of pseudopal formats as I am unsure about the
requirements.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-02-28 13:33:14 +01:00
Reimar Döffinger 45fa03b1f9 mjpegdec: Do not assume unused plane pointer are NULL.
We do neither document nor check such a requirement
and for application-provided get_buffer2 they could
contain the result of a malloc(0) or whatever value
they had previously.
This fixes a use-after-free in e.g. MPlayer:
https://trac.mplayerhq.hu/ticket/2262
We might want to consider changing the (documented)
API in addition though.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-02-28 13:32:01 +01:00
Reimar Döffinger 0f199f0ad0 mss2: Fix buffer overflow.
Reported as https://trac.mplayerhq.hu/ticket/2264 but have
not been able to reproduce with FFmpeg-only.
I have no idea what coded_height is used for here exactly,
so this might not be the best fix.
Fixes the following chain of events:
ff_mss12_decode_init sets coded_height while not setting height.
ff_mpv_decode_init then copies coded_height into MpegEncContext height.
This is then used by init_context_frame to allocate the data structures.
However the wmv9rects are validated/initialized based on avctx->height, not
avctx->coded_height.
Thus the decode_wmv9 function will try to decode a larger video that we
allocated data structures for, causing out-of-bounds writes.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2016-02-28 13:32:01 +01:00
Reimar Döffinger 5af621278d avformat_alloc_context: initialize raw_packet_buffer_remaining_size.
This currently works for most users because
avformat_open_input sets it, but this patch fixes any
applications not using that function.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2015-05-10 08:47:53 +02:00
Reimar DöffingerandMichael Niedermayer 7c2e35d1d0 avformat/avformat: improve the text about headerless formats in avformat_flush()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-05 00:09:26 +01:00
Reimar DöffingerandAlex Converse 8c1ce7787a aacsbr: silence message for SBR extension "padding".
Some files contain a few additional, all-0 bits.
Check for that case and don't print incorrect "not supported"
message.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Alex Converse <alex.converse@gmail.com>
2015-02-03 20:32:16 -08:00
Reimar Döffinger 6efd0ba977 swresample_internal.h: Move struct declaration before first use.
It seems more logical and works with more restricted C compilers
like tinycc.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2015-01-27 21:29:51 +01:00
Reimar Döffinger d96090e7b6 Support BMP files that do not properly align lines.
Quite a few programs missed that detail of the spec
(including old versions of FFmpeg I believe) and when
we would otherwise fail anyway it seems worth a try
to use a simple byte-aligned stride instead.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2015-01-27 21:29:42 +01:00
Reimar Döffinger 035180901d r210enc.c: Simplify and never store more than 10 bits.
The r10k and avrp decoders would previously store 12 bit precision
for the blue channel, which is inconsistent and probably not a
desirable behaviour.
Now the 2 unused extra bits are set to 0.
This is possibly not ideal either as RGBA1010102 format has the same
layout but stores alpha in these bits, thus explicitly setting them
to 1 might be preferable.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-12-27 22:57:53 +01:00
Reimar Döffinger bed78064f4 tableprint_vlc.h: Should not be checked by checkheaders.
Same as for tableprint.h.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-12-24 12:56:36 +01:00
Reimar Döffinger 70d80ed40f qdm2: Allow hard-coding VLC tables.
Also adds a lot of infrastructure necessary for it.
Some of it is a bit ugly though.
Increases binary size for hardcoded tables by about 12 kB,
which is about 15 kB from qdm2_table minus data and code
saved that was only used for creating it.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-12-18 23:51:07 +01:00
Reimar Döffinger de6d44829c aacps.c: Move large arrays to context to reduce stack usage.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-12-18 23:50:41 +01:00
Reimar Döffinger 254da44bf9 flacenc: calculate lower sum levels in-place.
Should improve cache usage and reduces stack usage.
Also reduces number of copies in case many levels
have the same number of bits.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-12-17 04:27:09 +01:00
Reimar DöffingerandMichael Niedermayer 49d9cbe55d h264_i386: Fix operand size
Fixes fate failure on macosx clang x86-64

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-03 23:03:13 +01:00
Reimar Döffinger cad3148ea3 xface: reduce stack usage by directly storing 2 bytes data instead of pointers.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-23 06:51:18 +01:00
Reimar Döffinger dfc6f56c5a xface: reduce table sizes.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-23 06:51:18 +01:00
Reimar Döffinger 6369a7b742 xface: Fix encoder crashes due to too small on-stack array.
Also add a FATE test.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-23 06:51:18 +01:00
Reimar Döffinger d0682b5eb0 svq1enc: reduce stack usage of recursively-called function.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-23 06:51:18 +01:00
Reimar Döffinger 458aadf862 lpc: Reduce stack usage by allocating LLSModel in context.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-23 06:51:18 +01:00
Reimar Döffinger 8437cc7206 ffv1dec: Avoid unnecessarily large stack usage and copies.
Ideally the compiler could figure this out on its own,
but it seems it can't.
An alternative that would avoid the messy explicit memcpy
would be to use a sub-struct for the parts that should
be preserved, which can then simply be assigned.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-22 19:06:12 +01:00
Reimar Döffinger 33fc1ccb49 h264_mb: Use smaller data type for refs in await_references.
As far as I can tell the value can never go outside
the int16_t type.
And especially the cost of the initialization is
reduced quite a bit by making it smaller.
Overall decoding speedup not measurable though.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-22 14:06:48 +01:00
Reimar Döffinger 478c61ccb2 h264_i386: Optimize decode_significance_8x8_x86 for 64 bit.
11674 -> 10877 decicycles on my Phenom II.
Overall speedup was unfortunately within measurement error.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-22 14:06:48 +01:00
Reimar Döffinger c2c27e9e51 indeo2: move variable declarations into blocks using them.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-22 14:06:48 +01:00
Reimar Döffinger 79be253635 mxfdec: minor simplification.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-22 14:06:48 +01:00
Reimar DöffingerandCarl Eugen Hoyos 5e8e2f3861 configure: Hack to treat x32 as x86_64.
Allows shared compilation on x32 with --disable-asm.
2014-11-12 09:53:01 +01:00
Reimar Döffinger a26d0ffa18 vdpau_mpeg4: Do not fail on unknown profile.
This is a regression, previous code did not require
users to set the profile to use VDPAU.
In addition, ASP is a superset of SP, so there is not
even a good reason to require it.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-05 20:07:31 +01:00
Reimar Döffinger 46353759cb mpeg4vdpau: Fix priv data size.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-11-01 15:43:52 +01:00
Reimar Döffinger b7082d953f configure: add noexecstack to linker options if supported.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-28 10:01:24 +01:00
Reimar Döffinger 2c5c37ade1 libswresample: move condition to start of loop.
This avoids several issue like calculating sum/maxcoef
incorrectly due to adding up matrix entries that will
be overwritten, as well as out-of-range writes to
s->matrix if the maximum allowed number of channels is used.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-07 11:31:34 +02:00
Reimar Döffinger 284123d7fd Remove pointless if.
A branch to avoid some calculation seems unlikely to have any benefits.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-07 11:31:33 +02:00
Reimar Döffinger 2231d5b671 libswresample: Avoid needlessly large on-stack array.
We only actually need to use a tiny part of it.
Unfortunately we seem to have no real test coverage on
the code, so this is a bit risky.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-07 11:31:33 +02:00
Reimar Döffinger 3dbf569032 huffyuvdec: avoid large stack use.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-06 21:01:09 +02:00
Reimar Döffinger 092d1977cc cabac: Allow hardcoding CABAC table.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-06 20:59:20 +02:00
Reimar Döffinger 0f1281b2b8 cabac: initialize all of ff_h264_cabac_tables programmatically.
Moves it from .data to .bss, slightly reducing binary size.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-06 20:59:20 +02:00
Reimar Döffinger 87c7fb2b21 aacsbr: support hardcoding tables.
For sbr_qmf_window_us there is even a question if it maybe
should be fully hardcoded all the time.
Since half of it is coded, it ends up in .data and not .bss.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-06 20:59:20 +02:00
Reimar Döffinger 235d401bfa vorbisenc: avoid large stack allocation.
Code is only used during initialization, so malloc/free
should be fine to use.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-03 21:22:59 +02:00
Reimar Döffinger fcfc90ed65 svq1enc: remove pointless array element.
Not sure it was meant to be used for something at some point though.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-03 21:22:58 +02:00
Reimar Döffinger 6724254118 ffv1enc: reduce stack usage.
A bit more complex than e.g. adding it to the context, but
using the context for something that will be used only during
initialization seemed a bit wasteful.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-03 21:22:58 +02:00
Reimar Döffinger 098af26067 vf_deshake: Avoid doing a malloc+free for every single frame.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-02 19:20:28 +02:00
Reimar Döffinger 4ea8406e38 vf_deshake: reduce stack usage.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-02 19:20:28 +02:00
Reimar Döffinger 3980ab12b7 rangecoder-test: Allow running with small stack size.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-02 19:20:28 +02:00
Reimar Döffinger e48cd2de98 rl.h: Use on-stack temporary VLC tables instead of having them static.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-02 19:20:28 +02:00
Reimar Döffinger 2ca78936c7 rl.h: remove deprecated and now unused vlc member.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-02 19:20:27 +02:00
Reimar Döffinger e8d0b84e8a h261dec, ituh263dec: Move condition.
Stops compiler from doing incredibly stupid things.
With vsynth1-flv inner loop goes from 3501 to 3275
decicycles.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-01 19:41:20 +02:00
Reimar Döffinger 36c0043344 h261dec, ituh263dec: ensure CLOSE_READER is done on error paths, too.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-01 19:41:20 +02:00
Reimar Döffinger 2a00812d82 h261dec, ituh263dec: Avoid unnecessary -1 inside inner loop.
3646 -> 3597 decicycles in inner loop when decoding
vsynth1-flv.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-01 19:41:20 +02:00
Reimar Döffinger 935453102b ituh263dec: Optimize new RL_VLC based decoding.
Together with the switch to RL_VLC this results in
a speedup of about 30% in this inner loop.
Overall speedup only relevant for medium to high bitrate
streams.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 20:13:58 +02:00
Reimar Döffinger c0d32686dd h261dec: Optimize new RL_VLC based decoding.
Together with the switch to RL_VLC this results in about
10% speedup for this inner loop.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 20:13:51 +02:00
Reimar Döffinger da0a670b3c h261, h263 decoders: convert to RL_VLC.
Some additional optimizations in following patch.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 20:09:54 +02:00
Reimar Döffinger 3efc174fd6 aacps_tablegen: replace TABLE_CONST by const.
Doesn't change generated code, just is more consistent
and a bit less error-prone.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 18:33:27 +02:00
Reimar Döffinger 1a558cec64 intmath.h: Remove duplicated ARM include.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 18:33:27 +02:00
Reimar Döffinger 6d7aa437e1 vf_drawtext: move "static const" before "struct".
This is consistent with all other occurrences.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:41:42 +02:00
Reimar Döffinger 2ca7edda89 lavu/hash.c: Add missing "static const".
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:33:02 +02:00
Reimar Döffinger 03bf457241 Add av_cold to table generation functions.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:33:02 +02:00
Reimar Döffinger 4fe448738e WMA: add "const" to avoid warnings with hardcoded tables.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:31:09 +02:00
Reimar Döffinger 3bc5d2a064 ac3dec_fixed: add missing "static const".
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:25:36 +02:00
Reimar Döffinger c9a4ec7969 lavfi: add const/static const to pix_fmts arrays.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:25:36 +02:00
Reimar Döffinger 18464d7270 sipr16kdata.h: add forgotten const.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:25:36 +02:00
Reimar Döffinger 2bb66cc8be fft_template: Move variables to where they are used.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:25:36 +02:00
Reimar Döffinger 1654514ab0 fft: add ff_ prefix to some global arrays.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-31 10:25:36 +02:00
Reimar Döffinger 8c63a0d171 xv.c: Add missing const to lookup table.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-30 18:02:45 +02:00
Reimar Döffinger e2cd28c926 fft: add missing const.
This table was the largest object in FFmpeg's .data,
and really should be in .rodata.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-30 16:33:00 +02:00
Reimar Döffinger d9e2aceb7f Add missing "const" all over the place.
Only "./configure --enable-gpl" on x86 was tested.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-29 18:57:25 +02:00
Reimar Döffinger be4aac302b patcheck: check for pointer arrays that are not const.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-29 18:57:25 +02:00
Reimar Döffinger 8fc9bd0d32 dict.c: Free non-strduped av_dict_set arguments on error.
Unfortunately this was not explicitly documented and thus
might be risky.
But all uses I could find in FFmpeg and one in VLC had a memleak
in these cases, and I could not find any that relied on the previous
behaviour.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-23 15:28:48 +02:00
Reimar Döffinger bddc592001 dict.c: empty dictionaries should be a NULL pointer.
Ensure this is even the case if they are empty because
we failed adding the first entry.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-16 14:47:06 +02:00
Reimar Döffinger a0941c8a2b Use new av_dict_set_int helper function.
Get rid of the many, slightly differing, implementations
of basically the same thing.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-16 14:31:41 +02:00
Reimar Döffinger c2829dc925 dict.c: Add av_dict_set_int helper function.
This allows getting rid of the many, slightly differing, implementations
of basically the same thing.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-16 14:30:18 +02:00
Reimar Döffinger 2c0454cd20 Add missing initialization for AVProbeData.
This has become necessary since the new mime field was added.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-08-11 21:10:22 +02:00
Reimar Döffinger f0de01856f dict.c: minor simplification.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-07-31 20:10:29 +02:00
Reimar Döffinger 1c84aad718 movdec: remove nonsensical snprintf.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-07-30 20:25:29 +02:00
Reimar Döffinger 04aec74f45 mxfdec: add missing "const" to array declaration.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-07-30 20:25:29 +02:00
Reimar DöffingerandMichael Niedermayer 6d695d7acc Fix nonsense non-mod16 AMV flipping code.
It is obviously nonsense since it produces wrong results
or even crashes (crashes should be encode-only though).
Fixes trac issue #1092.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-01 19:47:07 +02:00
Reimar Döffinger d90ba411ab dpx: use intfloat.h instead of deprecated intfloat_readwrite.h.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-05-13 20:53:24 +02:00
Reimar Döffinger 97bcb05889 Add missing "const" to pointer arrays.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-05-10 21:57:28 +02:00
Reimar Döffinger ab14bcb104 Add "const" to avoid compiler warning.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-04-22 20:44:31 +02:00
Reimar Döffinger 3bd7a7149f Add missing ';'.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-04-22 20:44:31 +02:00
Reimar Döffinger 8cbf0827e1 Various small spelling fixes.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-04-22 20:44:31 +02:00
Reimar Döffinger a0568ed254 rtspdec: check for strchr returning NULL.
Fixes CID 732244.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-04-06 22:04:03 +02:00
Reimar Döffinger 57d10a28f4 pulseaudio: move NULL check up before dereference.
Fixes CID 1197068.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-04-06 19:38:51 +02:00
Reimar DöffingerandVittorio Giovara b0a54516eb isom: add 'flic' tag 2014-04-04 00:20:12 +02:00
Reimar DöffingerandCarl Eugen Hoyos e535897fad Fix libswresample compilation with Apple Neon assembler.
Signed-off-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2014-02-17 17:40:10 +01:00
Reimar Döffinger 76421982d0 lossless_videodsp.asm: fix compilation.
Fixes these errors with nasm:
libavcodec/x86/lossless_videodsp.asm:86: error: invalid combination of opcode and operands
libavcodec/x86/lossless_videodsp.asm:88: error: invalid combination of opcode and operands
I don't know whether movd or movq was meant, but either way
maskq vs. maskd must match the mov size.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-01-21 19:46:02 +01:00
Reimar DöffingerandLuca Barbato d84bd4650b mxf: Set AV_FIELD_PROGRESSIVE
Needed for AVC-intra

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-14 17:28:48 +01:00
Reimar Döffinger cbeaf67888 Avoid using empty macro arguments.
These are not supported by all compilers (gcc 2.95 but also older SPARC
compilers, see gcc bug #33304 for example), and there is no real need for them.
One use of this feature remains in libavdevice/v4l2.c which can't be
replaced quite as easily.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-12-31 12:19:59 +01:00
Reimar Döffinger 3cc0f335fe af_aresample: remove only use of array compound literals with non-const initializers in FFmpeg.
Some older compilers might have particular trouble with them,
and they do not really seem worth it to me.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-12-30 12:38:04 +01:00
Reimar Döffinger 311f61e1b4 configure: check that pthreads is compatible with compiler.
In particular the mutex initialization for example won't actually
compile with e.g. gcc 2.95.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-12-30 12:38:04 +01:00
Reimar Döffinger b74eead27b compat: provide va_copy for old gcc versions.
Since we have this compat/va_copy.h header already we might just as well make
use of it for more than one compiler.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-12-30 12:38:03 +01:00
Reimar Döffinger 97a0bad87c Add --enable-rpath option to add -Wl,-rpath to pkg-config files.
This allows installing into e.g. /usr/lib/ffmpeg and binaries linked
against ffmpeg will pick these .so file while binaries linked against
some fork or different version will pick the libraries in /usr/lib.
There will be still some issues for binaries that (indirectly) end up
depending on multiple variants, but for the simpler cases it should allow
different applications to use different (compatible) variants that
are installed at the same time.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-11-23 09:57:38 +01:00
Reimar DöffingerandAnton Khirnov ecf442a58b lavf: improve support for AVC-Intra files.
Generate extradata with SPS/PPS based on container dimensions.

Authors of this commit are: Reimar and Thomas Mundt

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-14 18:59:39 +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
Reimar Döffinger c9a22d69af hevc: Initialize sample aspect to valid value.
Without this, it is 0/0 by default, which is not allowed.
This sets it to 0/1, which means "undefined".

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-10-20 12:17:09 +02:00
Reimar Döffinger af6e232ccf VC1 VDPAU: Mark missing reference frames as such.
Currently the code passes some nonsense values as
references instead, causing corruption with NVidia's
and assertion failures with Mesa's implementation.
For non-corrupted input this mostly happens in
interlaced bitstreams, e.g.
http://samples.mplayerhq.hu/V-codecs/WMV9/interlaced/480i30__codec_WVC1__mode_2__framerate_29.970__type_2__preproc_17.wmv.
The != VDP_INVALID handle assert does not trigger
(and probably is quite nonsense) because the frames
are initialized to 0.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2013-10-02 20:51:14 +02:00
Reimar DöffingerandLuca Barbato 779951cd2c lxf: Support version 1 files
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-09-27 01:33:45 +02:00