Anton Khirnov
bdd1567c35
lavc: remove disabled FF_API_CODEC_ID cruft
2013-03-09 08:37:08 +01:00
Anton Khirnov
7d42fd6bb9
lavc: remove disabled FF_API_FIND_BEST_PIX_FMT cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
845017105f
lavc: remove disabled FF_API_DSP_MASK cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
d03a94e2b7
lavc: remove disabled FF_API_SUB_ID cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
2a11369523
lavc: remove disabled FF_API_INTER_THRESHOLD cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
9d6cf81f02
lavc: remove disabled FF_API_COLOR_TABLE_ID cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
3b0f586f07
lavc: remove disabled FF_API_MPV_GLOBAL_OPTS cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
0f24a3ca99
lavc: remove disabled FF_API_OLD_ENCODE_VIDEO cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
f073b1500e
lavc: remove disabled FF_API_OLD_ENCODE_AUDIO cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
5d606863c3
lavc: remove disabled FF_API_OLD_DECODE_AUDIO cruft
2013-03-09 08:36:40 +01:00
Anton Khirnov
6327c10702
atomic: fix CAS with armcc.
...
On the current code, armcc will fail with:
"libavutil/atomic_gcc.h", line 52: Error: #2771 : first argument must be
a pointer to integer or enumeration type
2013-03-09 08:36:40 +01:00
Anton Khirnov
e7553f4c78
avconv: do not silently ignore unused codec AVOptions.
...
Print an error and abort when the option is of the wrong type (decoding
for output file or vice versa), since this could never be correct for
any input or output configuration.
Print a warning and continue when the option is of the correct type,
just unused, so same commandlines can be reused for different kinds of
input or output files.
2013-03-08 14:15:51 +01:00
Anton Khirnov
db2d65ce1e
avconv: fix a typo
2013-03-08 14:14:25 +01:00
Anton Khirnov
64bfc3e205
FATE: replace -vb with -b:v
...
The -{vas}<option> syntax is now obsolete and deprecated, and has never
been documented or encouraged.
2013-03-08 14:14:17 +01:00
Anton Khirnov
6deae8e053
FATE: remove the -dct option from some decoding tests.
...
It is an encoding option, it has no effect when applied to decoding.
2013-03-08 14:14:05 +01:00
Anton Khirnov
41d2008b15
avconv: use a local variable for InputFile in open_input_file().
...
This is shorter and more readable.
2013-03-08 14:13:46 +01:00
Anton Khirnov
1da54e908e
avconv: use a local variable for OutputFile in open_output_file().
...
This is shorter and more readable.
2013-03-08 14:13:39 +01:00
Anton Khirnov
9d3009c6c4
avconv: print an error on applying options of the wrong type.
...
I.e. input options to output files or vice versa.
2013-03-08 14:12:43 +01:00
Anton Khirnov
7c45087b84
lavc: update the fallback versions of ff_thread_*
...
Fixes build without threads after
759001c534 .
2013-03-08 10:22:10 +01:00
Anton Khirnov
f86d66bcfa
vmdaudio: fix invalid reads when packet size is not a multiple of chunk size
...
CC:libav-stable@libav.org
2013-03-08 08:12:41 +01:00
Anton Khirnov
4c0080b7e7
wmaprodec: return an error, not 0, when the input is too small.
...
Returning 0 may result in an infinite loop in valid calling programs. A
decoder should never return 0 without producing any output.
CC:libav-stable@libav.org
2013-03-08 08:12:26 +01:00
Anton Khirnov
cacad1c058
wmaprodec: require block_align to be set.
...
Avoids an infinite loop in the calling programs with decoder not
consuming any input and not returning output.
CC:libav-stable@libav.org
2013-03-08 08:12:16 +01:00
Anton Khirnov
ea1136baaf
wmadec: require block_align to be set.
...
Avoids an infinite loop in the calling programs with decoder not
consuming any input and not returning output.
CC:libav-stable@libav.org
2013-03-08 08:12:03 +01:00
Anton Khirnov
3ba40ebb6c
ivi_common: do not call MC for intra frames when dc_transform is unset
...
CC:libav-stable@libav.org
2013-03-08 08:11:46 +01:00
Anton Khirnov
3e2f200237
roqvideodec: fix a potential infinite loop in roqvideo_decode_frame().
...
When there is just 1 byte remanining in the buffer, nothing will be read
and the loop will continue forever. Check that there are at least 8
bytes, which are always read at the beginning.
CC:libav-stable@libav.org
2013-03-08 08:11:35 +01:00
Anton Khirnov
8a49d2bcbe
xxan: fix invalid memory access in xan_decode_frame_type0()
...
The loop a few lines below the xan_unpack() call accesses up to
dec_size * 2 bytes into y_buffer, so dec_size must be limited to
buffer_size / 2.
CC:libav-stable@libav.org
2013-03-08 08:11:22 +01:00
Anton Khirnov
6c7d339afc
tty: set avg_frame_rate.
...
The container does not store any timestamps and is CFR-only.
2013-03-08 08:11:05 +01:00
Anton Khirnov
bde48aa92d
FATE: enable multiple slices in the ffv1 vsynth test
...
This allows us to test the slice threading code.
2013-03-08 08:10:52 +01:00
Anton Khirnov
d243896987
ffv1: fix calculating slice dimensions for version 2
...
It got broken in 0f13cd3187 .
CC:libav-stable@libav.org
2013-03-08 08:10:02 +01:00
Anton Khirnov
7b89cd20d8
eamad: allocate a dummy reference frame when the real one is missing
...
CC:libav-stable@libav.org
2013-03-08 08:09:51 +01:00
Anton Khirnov
0651e892e1
Replace remaining includes of audioconvert.h with channel_layout.h
2013-03-08 07:42:13 +01:00
Anton Khirnov
542b83fc90
Replace some forgotten instances of PIX_FMT_* with AV_PIX_FMT_*.
2013-03-08 07:42:09 +01:00
Anton Khirnov
d8b31be6ca
Add the bumps and APIchanges entries for reference counted buffers changes.
2013-03-08 07:41:49 +01:00
Anton Khirnov
8df23e938b
lavc: postpone the removal of request_channels API.
...
Its replacement is still not ready.
2013-03-08 07:41:42 +01:00
Anton Khirnov
1296b1f6c0
AVFrame: deprecate all now unused fields
2013-03-08 07:41:21 +01:00
Anton Khirnov
ddcca4ba07
lavc: stop setting AVFrame.motion_subsample_log2
...
It is not used inside lavc anywhere and now it makes no sense to export
it.
2013-03-08 07:41:14 +01:00
Anton Khirnov
e7bbfc4242
avserver: don't set deprecated options.
2013-03-08 07:41:07 +01:00
Anton Khirnov
354468fc12
avplay: switch to new refcounted frames API
...
Remove now unused cmdutils get_buffer() implementation.
2013-03-08 07:40:59 +01:00
Anton Khirnov
9b2dc29534
avconv: convert to new refcounted AVFrame API
2013-03-08 07:40:50 +01:00
Anton Khirnov
37045e4229
mpegvideo: drop vismv code
...
It has been broken for over a year without anyone complaining or
noticing, thus proving that nobody ever uses it.
2013-03-08 07:40:41 +01:00
Anton Khirnov
2eba9087f3
lavc: make up a fake frame channel layout when there is no real one.
...
This should ensure that a valid channel layout is always set on a frame,
until a better solution is implemented.
2013-03-08 07:40:06 +01:00
Anton Khirnov
192f1984b1
lavc: limit maximum number of channels to 63
...
This is the most that can be represented with the current channel layout
system. This limit should be raised/removed when a better system is
implemented.
2013-03-08 07:39:53 +01:00
Anton Khirnov
15ec0450b4
lavc: allow decoders to override frame parameters.
2013-03-08 07:39:44 +01:00
Anton Khirnov
3b199d29cd
lavc decoders: properly initialize AVFrame.
2013-03-08 07:39:37 +01:00
Anton Khirnov
759001c534
lavc decoders: work with refcounted frames.
2013-03-08 07:38:30 +01:00
Anton Khirnov
6e7b50b427
mpegvideo_enc: drop support for reusing the input motion vectors.
...
This misfeature is most likely completely useless and conflicts with
removing the mpegvideo-specific fields from AVFrame. In the improbable
case it is actually useful, it should be reimplemented in a better way.
2013-03-08 07:37:45 +01:00
Anton Khirnov
7e350379f8
lavfi: switch to AVFrame.
...
Deprecate AVFilterBuffer/AVFilterBufferRef and everything related to it
and use AVFrame instead.
2013-03-08 07:37:18 +01:00
Anton Khirnov
77b2cd7b41
AVFrame: add side data.
2013-03-08 07:37:01 +01:00
Anton Khirnov
7ecc2d403c
Move AVFrame from lavc to lavu.
...
Add AVBuffer-based reference counting API to it.
2013-03-08 07:36:15 +01:00
Anton Khirnov
ad0c9f2d5d
lavc: move AVFrame.hwaccel_picture_private to Picture.
...
This field is private and should not be present in a public struct. It
is only used in DXVA with mpegvideo-based decoders currently.
2013-03-08 07:36:01 +01:00
Anton Khirnov
1a5e913016
pthread: avoid copying input packets when possible.
2013-03-08 07:35:14 +01:00
Anton Khirnov
1afddbe59e
avpacket: use AVBuffer to allow refcounting the packets.
...
This will allow us to avoid copying the packets in many cases.
This breaks ABI.
2013-03-08 07:33:45 +01:00
Anton Khirnov
1cec0624d0
AVBuffer: add a new API for buffer pools
2013-03-08 07:33:28 +01:00
Anton Khirnov
8e401dbe90
lavu: add a new API for reference-counted data buffers.
2013-03-08 07:33:03 +01:00
Anton Khirnov
437211ae73
h264: set ref_count to 0 for intra slices.
...
CC:libav-stable@libav.org
2013-03-02 10:27:13 +01:00
Anton Khirnov
668e16a0dd
h264: on reference overflow, reset the reference count to 0, not 1.
...
Since decode_slice_header() returns before the reference lists are
constructed, there are zero valid references.
CC:libav-stable@libav.org
2013-03-02 10:27:03 +01:00
Anton Khirnov
e671d3ad6c
h264: do not copy ref count/ref2frm when updating per-frame context
...
They are filled in decode_slice_header() anyway.
2013-03-02 10:26:50 +01:00
Anton Khirnov
d8a74d1d95
qtrle: use AV_LOG_ERROR in an error message.
2013-02-23 13:06:12 +01:00
Anton Khirnov
7b4f91155b
qtrle: cosmetics, reformat CHECK_PIXEL_PTR() macro
2013-02-23 13:06:08 +01:00
Anton Khirnov
e106592447
qtrle: add more checks against pixel_ptr being negative.
...
CC:libav-stable@libav.org
2013-02-23 13:05:54 +01:00
Anton Khirnov
4f3b058c84
cavs: initialize various context tables to 0
...
Avoids crashes with corrupted files.
CC:libav-stable@libav.org
2013-02-23 13:05:43 +01:00
Anton Khirnov
0dff40bfb9
mlpdec: do not try to allocate a zero-sized output buffer.
...
CC:libav-stable@libav.org
2013-02-23 13:05:31 +01:00
Anton Khirnov
56daf10e03
mov: use the format context for logging.
...
CC:libav-stable@libav.org
2013-02-23 13:05:16 +01:00
Anton Khirnov
ddfe1246d9
flicvideo: avoid an infinite loop in byte run compression
...
When byte_run is 0, pixel_countdown is not touched and the loop will run
forever.
CC:libav-stable@libav.org
2013-02-23 09:22:30 +01:00
Anton Khirnov
067432c1c9
loco: check that there is data left after decoding a plane.
...
CC:libav-stable@libav.org
2013-02-23 09:20:42 +01:00
Anton Khirnov
de6dfa2bb8
lagarith: avoid infinite loop in lag_rac_refill()
...
range == 0 happens with corrupted files
CC:libav-stable@libav.org
2013-02-23 09:16:32 +01:00
Anton Khirnov
f935aca44c
av_memcpy_backptr: avoid an infinite loop for back = 0
...
CC:libav-stable@libav.org
2013-02-23 09:16:15 +01:00
Anton Khirnov
8097fc9a2d
4xm: check the return value of read_huffman_tables().
...
CC:libav-stable@libav.org
2013-02-23 09:13:08 +01:00
Anton Khirnov
1f8f43a5b5
error_resilience: add required headers.
2013-02-17 06:46:43 +01:00
Anton Khirnov
2c54155407
h264: deMpegEncContextize
...
Most of the changes are just trivial are just trivial replacements of
fields from MpegEncContext with equivalent fields in H264Context.
Everything in h264* other than h264.c are those trivial changes.
The nontrivial parts are:
1) extracting a simplified version of the frame management code from
mpegvideo.c. We don't need last/next_picture anymore, since h264 uses
its own more complex system already and those were set only to appease
the mpegvideo parts.
2) some tables that need to be allocated/freed in appropriate places.
3) hwaccels -- mostly trivial replacements.
for dxva, the draw_horiz_band() call is moved from
ff_dxva2_common_end_frame() to per-codec end_frame() callbacks,
because it's now different for h264 and MpegEncContext-based
decoders.
4) svq3 -- it does not use h264 complex reference system, so I just
added some very simplistic frame management instead and dropped the
use of ff_h264_frame_start(). Because of this I also had to move some
initialization code to svq3.
Additional fixes for chroma format and bit depth changes by
Janne Grunau <janne-libav@jannau.net >
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2013-02-15 16:35:16 +01:00
Anton Khirnov
1d0feb5d1a
mpegvideo: split ff_draw_horiz_band().
...
Split out dependency on MpegEncContext.
2013-02-15 16:10:19 +01:00
Anton Khirnov
54974c6298
error_resilience: decouple ER from MpegEncContext
2013-02-15 16:10:11 +01:00
Anton Khirnov
d9ebb00dcb
svq3: remove a pointless if()
...
The H264 context is always uninitialized at this point.
2013-02-15 16:09:52 +01:00
Anton Khirnov
2491f9ee29
h264: remove a pointless if()
...
!encoding is always true, we do not have a H.264 encoder
2013-02-15 16:09:45 +01:00
Anton Khirnov
68f930d218
h264: simplify calls to ff_er_add_slice().
...
partitioned_frame is never set for h264 (as easily seen from git grep).
2013-02-15 16:09:37 +01:00
Anton Khirnov
d2a25c4032
get_buffer(): do not initialize the data.
...
There may be more decoders that rely on this. Those should be found and
fixed.
2013-02-15 16:08:44 +01:00
Anton Khirnov
64ed397635
vf_yadif: fix out-of line reads
...
Some changes in the border pixels, visually indistinguishable.
2013-02-15 16:08:33 +01:00
Anton Khirnov
ccd70d9c16
vf_yadif: factorize initializing the filtering callbacks
...
Do it all in config_props().
2013-02-15 16:08:00 +01:00
Anton Khirnov
81726a4f0b
FATE: add tests for additional flavors of asf cover art
2013-02-09 18:57:21 +01:00
Anton Khirnov
1ef0e8a6bf
asfdec: do not assume every AVStream has a corresponding ASFStream
...
This won't be true for ID3 attached picture.
Also stop allocating now useless dummy ASFStreams for ASF native
attached pictures.
2013-02-09 18:57:21 +01:00
Anton Khirnov
12b54a1f39
mpegvideo: remove an unused function parameter
2013-02-06 21:48:48 +01:00
Anton Khirnov
605b047bcc
rv10: improve buffer size check.
...
Check slice count and input buffer size before constructing a possibly
invalid pointer, not after.
2013-02-06 21:47:57 +01:00
Anton Khirnov
c5fcdb4402
error_resilience: remove a useless if() and FIXME
...
pp_time is never set for h264
2013-02-06 21:46:55 +01:00
Anton Khirnov
9782c778a2
h264: remove silly macros
...
They serve no useful purpose and wreak all kind of havoc when h264.h is
included elsewhere.
2013-02-06 21:45:02 +01:00
Anton Khirnov
ca1fe6c0e6
h263: remove an unused parameter from ff_h263_decode_init_vlc
2013-02-06 21:44:38 +01:00
Anton Khirnov
293065bdb5
mpegvideo: initialize dummy reference frames.
...
Do not rely on get_buffer initializing them.
Changes yadif tests (off by one in one border pixel), because yadif
reads from those uninitialized lines.
2013-02-06 10:21:52 +01:00
Anton Khirnov
dff6197dfb
nuv: do not rely on get_buffer() initializing the frame.
2013-02-06 10:21:52 +01:00
Anton Khirnov
39a9fdd00f
yop: initialize palette to 0
...
The FATE sample contains some pixels with value 0, but the palette
stored in the file contains only values from 16 up. Because the default
and cmdutils get_buffer() initialize the data to 0x80, they appear as
gray dots.
After this commit they change to black dots, which is probably still
incorrect but less visible and doesn't rely on get_buffer() initializing
the data.
2013-02-06 10:21:52 +01:00
Anton Khirnov
8136f23444
yop: check for input overreads.
...
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
06cf597c35
yop: check that extradata is large enough.
...
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
2cd4068071
fraps: fix off-by one bug for version 1.
...
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
da7baaaae7
aasc: fix output for msrle compression.
...
The bottom line was invalid before.
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
9bd6375d5f
msrledec: check bounds before constructing a possibly invalid pointer,
...
CC:libav-stable@libav.org
2013-02-06 10:21:52 +01:00
Anton Khirnov
6a39985451
cmdutils: remove ansi from the list of broken codecs.
...
It's not relying on get_buffer() initializing the frame since
99e36ddd3e .
2013-02-06 10:21:52 +01:00
Anton Khirnov
238614de67
cdgraphics: do not rely on get_buffer() initializing the frame.
...
Setting it to zero (instead of 128, as the default get_buffer() does)
also produces more correctly-looking output.
2013-02-06 10:21:52 +01:00
Anton Khirnov
6ed9fc44ba
svq1: replace struct svq1_frame_size with an array.
...
It is used as an array in svq1enc, so this is more correct.
2013-02-06 10:21:52 +01:00
Anton Khirnov
99162f8d46
vf_yadif: silence a warning.
...
clang says:
libavfilter/vf_yadif.c:192:28: warning: incompatible pointer types assigning to
'void (*)(uint8_t *, uint8_t *, uint8_t *, uint8_t *, int, int, int, int, int)'
from 'void (uint16_t *, uint16_t *, uint16_t *, uint16_t *, int, int, int, int, int)'
2013-02-06 10:21:51 +01:00
Anton Khirnov
d9df93efbf
mpegvideo: simplify REBASE_PICTURE
...
Always evaluate to NULL when the source Picture is not located in the
MpegEncContext.picture array. That will only happen for
next/last_picture_ptr when updating the thread context during h264 frame
threaded decoding, where they will point to elements of ref_list. Since
ref_list is not copied during updating the context and is invalid until
it is constructed for the current slice, there is no point in doing
anything complicated with next/last_picture_ptr, as they will get
updated when the ref_list is filled.
2013-02-04 06:17:15 +01:00
Anton Khirnov
9ec8971060
bink demuxer: set framerate.
2013-02-01 12:42:17 +01:00
Anton Khirnov
1730ca2eca
bink demuxer: check malloc return value
2013-02-01 12:41:38 +01:00