Commit Graph

26143 Commits

Author SHA1 Message Date
Clément Bœsch
7e704b1e10 avcodec/vp9: add a never triggerable assert.
vp8_rac_get_tree() is called with a tree of size 3, so the returned
value can not be outside [0;3]. All of the [0;3] cases are handled in
the switch, so the assert should not be triggerable by any means. A
similar change was introduced in 97962b2 / 72ca830, with the
av_log()+AVERROR_INVALIDDATA form, suggesting it could be triggerable
somehow. This assert might help static analyzer, or simply the reader.
2013-11-16 22:34:23 +01:00
Martin Storsjö
ab80d7e8c5 vp9: Ensure that the arithmetic coder values are read in the right order
The operands of an addition can be evaluated in any order, since
the addition isn't a sequence point. The only operators that
have a defined evaluation order are &&, ||, ?: and the sequence
operator ','.

This fixes fate-vp9 on ARM RVCT.
2013-11-16 20:25:25 +01:00
Clément Bœsch
7cd555dfa5 avcodec/vp9: make last_invisible local.
Original change by one of these developers:
    Anton Khirnov <anton@khirnov.net>
    Diego Biurrun <diego@biurrun.de>
    Luca Barbato <lu_zero@gentoo.org>
    Martin Storsjö <martin@martin.st>

See 97962b2 / 72ca830
2013-11-16 17:13:33 +01:00
Clément Bœsch
d28c79b003 avcodec/x86/vp9dsp: use EXTERNAL_* macros.
Original fix by one of these developers:
    Anton Khirnov <anton@khirnov.net>
    Diego Biurrun <diego@biurrun.de>
    Luca Barbato <lu_zero@gentoo.org>
    Martin Storsjö <martin@martin.st>

See 97962b2 / 72ca830

Personnal guess is Diego Biurrun.
2013-11-16 17:03:17 +01:00
wangxingchao
68900bf16b avcodec: Fix duration error after seek operation
After seek, s->duration need recalculation, AVCodecParserContext need be set
again. Without the fix, the first audio packet would be dropped after
compute_pkt_fields() as the final pts/dts become invalid.

Signed-off-by: wangxingchao <wangxingchao@xiaomi.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-16 02:02:51 +01:00
Clément Bœsch
150c5543ff avcodec/vp9: fix "initialize" typo.
Originally spotted and fixed by one of these developers:
    Anton Khirnov <anton@khirnov.net>
    Diego Biurrun <diego@biurrun.de>
    Luca Barbato <lu_zero@gentoo.org>
    Martin Storsjö <martin@martin.st>

See 97962b2 / 72ca830
2013-11-15 23:28:48 +01:00
Michael Niedermayer
91e00c4a78 Merge commit '458446acfa1441d283dacf9e6e545beb083b8bb0'
* commit '458446acfa1441d283dacf9e6e545beb083b8bb0':
  lavc: Edge emulation with dst/src linesize

Conflicts:
	libavcodec/cavs.c
	libavcodec/h264.c
	libavcodec/hevc.c
	libavcodec/mpegvideo_enc.c
	libavcodec/mpegvideo_motion.c
	libavcodec/rv34.c
	libavcodec/svq3.c
	libavcodec/vc1dec.c
	libavcodec/videodsp.h
	libavcodec/videodsp_template.c
	libavcodec/vp3.c
	libavcodec/vp8.c
	libavcodec/wmv2.c
	libavcodec/x86/videodsp.asm
	libavcodec/x86/videodsp_init.c

Changes to the asm are not merged, they are left for volunteers or
in their absence for later.
The changes this merge introduces are reordering of the function
arguments

See: face578d56
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-15 15:07:10 +01:00
Michael Niedermayer
e28130bcaf Merge commit '3cbe1126530449336e2ce59b194bdb8c4eb4abb4'
* commit '3cbe1126530449336e2ce59b194bdb8c4eb4abb4':
  dv: Split DV data table declarations into their own header

Conflicts:
	libavcodec/dvdata.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-15 12:52:19 +01:00
Ronald S. Bultje
458446acfa lavc: Edge emulation with dst/src linesize
Allow supporting files for which the image stride is smaller than
the maximum block size + number of subpel mc taps, e.g. a 64x64 VP9
file or a 16x16 VP8 file with -fflags +emu_edge.
2013-11-15 10:16:27 +01:00
Diego Biurrun
3cbe112653 dv: Split DV data table declarations into their own header
This is necessary to avoid target config settings bleeding into the host
compilation process with hardcoded tables and the DV VLC tables no longer
present as static tables in a header file.
2013-11-15 01:29:47 +01:00
Michael Niedermayer
9244a68092 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  h264: free the tables and uninitialize the context on flush

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 21:11:42 +01:00
Anton Khirnov
9eda9d3322 h264: free the tables and uninitialize the context on flush
Prevents referencing empty frames when the first packet after the flush
does not contain a frame.
2013-11-14 19:00:20 +01:00
Michael Niedermayer
726566704f Merge commit '669fe505952f3d8175b1ad6971033a8e8120523b'
* commit '669fe505952f3d8175b1ad6971033a8e8120523b':
  twinvq: consume block_align+1 packets as full ones

Conflicts:
	libavcodec/twinvq.c

See: 2e7a1fdd6d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 16:02:11 +01:00
Michael Niedermayer
a24aef5dfa Merge commit '1afa8a7568ba57ad0cd2923f6e641e10d32cded4'
* commit '1afa8a7568ba57ad0cd2923f6e641e10d32cded4':
  twinvq: support multiple frames per packet

Conflicts:
	libavcodec/twinvq.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 15:42:05 +01:00
Michael Niedermayer
2cfdc2879a Merge commit 'ddb839e9286594ff7a862a956402106fca7055c9'
* commit 'ddb839e9286594ff7a862a956402106fca7055c9':
  metasound: add missing modes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 15:31:34 +01:00
Michael Niedermayer
1ac4797d19 Merge commit '7b9780e7bf9d86e3e4e9606a971bb2d0d718bac2'
* commit '7b9780e7bf9d86e3e4e9606a971bb2d0d718bac2':
  mpeg12dec: Remove unused swap_uv member from Mpeg1Context

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 15:24:30 +01:00
Michael Niedermayer
7c888ae746 Merge commit 'cce3e0a49f0dd030262c28d9c53de0bd2fd909c4'
* commit 'cce3e0a49f0dd030262c28d9c53de0bd2fd909c4':
  Move av_fast_{m,re}alloc from lavc to lavu.

Conflicts:
	libavcodec/avcodec.h
	libavcodec/utils.c
	libavutil/mem.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 15:04:04 +01:00
Diego Biurrun
ad1161799e mpeg12dec: Remove outdated UV swapping code for VCR2 2013-11-14 14:21:27 +01:00
Michael Niedermayer
2925571278 avcodec/mpegvideo_enc: Fix possibly exploitable security issue with -bf
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 14:19:38 +01:00
Michael Niedermayer
9f32048dd1 Merge commit 'aa241229891173b0357eee04e6ca78f806cc9c0c'
* commit 'aa241229891173b0357eee04e6ca78f806cc9c0c':
  lavc: deprecate FF_MAX_B_FRAMES

Conflicts:
	libavcodec/options_table.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 14:11:03 +01:00
Michael Niedermayer
dbfa4317f3 Merge commit 'b6094811f9fca66cdf853420696e96fdc3e4987a'
* commit 'b6094811f9fca66cdf853420696e96fdc3e4987a':
  lavc: move MB_TYPE_* macros from avcodec.h to mpegvideo.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 14:01:24 +01:00
Michael Niedermayer
d67d3e2977 Merge commit 'b45c87083de67969c1598cfef41e7c947b137922'
* commit 'b45c87083de67969c1598cfef41e7c947b137922':
  lavc: schedule unused FF_QSCALE_TYPE_* for removal on next bump

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 13:49:02 +01:00
Kostya Shishkov
669fe50595 twinvq: consume block_align+1 packets as full ones
They can be produced by VQF.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-14 13:38:10 +01:00
Kostya Shishkov
1afa8a7568 twinvq: support multiple frames per packet
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-14 13:38:10 +01:00
Kostya Shishkov
ddb839e928 metasound: add missing modes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-14 13:38:10 +01:00
Michael Niedermayer
b71e4d8717 Merge commit '8941971a8f2e24b9a84fe29f128d13ceb89c0a65'
* commit '8941971a8f2e24b9a84fe29f128d13ceb89c0a65':
  lavc: make error_rate a private option of mpegvideo encoders

Conflicts:
	libavcodec/options_table.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 13:14:41 +01:00
Michael Niedermayer
31c09b7663 Merge commit '728c4658563dc82115ade0f1679679eddb7be5ff'
* commit '728c4658563dc82115ade0f1679679eddb7be5ff':
  vdpau: add a constructor for AVVDPAUContext.

Conflicts:
	libavcodec/vdpau.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 13:08:36 +01:00
Michael Niedermayer
5f231d909f Merge commit 'ca22d1dea2842fca0422dd1d2bd09e7eb2c8f118'
* commit 'ca22d1dea2842fca0422dd1d2bd09e7eb2c8f118':
  vdpau: add a convenience function for getting a decoder profile.

Conflicts:
	doc/APIchanges
	libavcodec/vdpau.c
	libavcodec/vdpau.h
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 13:00:10 +01:00
Michael Niedermayer
f3458a56c1 avcodec/vdpau: try to fix version macro use
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 12:53:46 +01:00
Diego Biurrun
7b9780e7bf mpeg12dec: Remove unused swap_uv member from Mpeg1Context 2013-11-14 12:46:00 +01:00
Michael Niedermayer
9e5ef1c5c3 h264: Do not treat the initial frame special in handling of frame gaps
The not handling of frame gaps has lead to the lack of a dummy reference
frame, which has lead to the failure of decode_slice_header() which has
lead to one SEI recovery message being skiped which had introduced a
slightly suboptimal recovery point for at least 1 h264 file compared to
JM.

Found-by: Carl & BugMaster
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 12:16:01 +01:00
Anton Khirnov
cce3e0a49f Move av_fast_{m,re}alloc from lavc to lavu. 2013-11-14 09:42:22 +01:00
Anton Khirnov
aa24122989 lavc: deprecate FF_MAX_B_FRAMES
We should not arbitrarily decide the maximum B-frame number for all
encoders supported by Libav, each encoder should be able to set its own
limits.
2013-11-14 09:41:03 +01:00
Anton Khirnov
b6094811f9 lavc: move MB_TYPE_* macros from avcodec.h to mpegvideo.h
They are mpegvideo-specific and not supposed to be used by callers.
2013-11-14 09:40:39 +01:00
Anton Khirnov
b45c87083d lavc: schedule unused FF_QSCALE_TYPE_* for removal on next bump 2013-11-14 09:40:27 +01:00
Anton Khirnov
8941971a8f lavc: make error_rate a private option of mpegvideo encoders 2013-11-14 09:39:43 +01:00
Anton Khirnov
728c465856 vdpau: add a constructor for AVVDPAUContext.
We will likely want to add new fields to it in the future, so this is
needed to avoid breaking ABI.
2013-11-14 09:38:58 +01:00
Anton Khirnov
ca22d1dea2 vdpau: add a convenience function for getting a decoder profile.
Based on the code by Rémi Denis-Courmont <remi@remlab.net> from VLC.
2013-11-14 09:38:50 +01:00
Diego Biurrun
3215140425 mpeg12dec: Remove incomplete and wrong UV swapping code for VCR2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 08:19:29 +01:00
Kostya Shishkov
bae14f38d9 mpegvideo: Fix swapping of UV planes for VCR2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 07:33:59 +01:00
Michael Niedermayer
5231eecdaf Merge remote-tracking branch 'qatar/master'
* qatar/master:
  Deprecate obsolete XvMC hardware decoding support

Conflicts:
	libavcodec/mpeg12.c
	libavcodec/mpeg12dec.c
	libavcodec/mpegvideo.c
	libavcodec/options_table.h
	libavutil/pixdesc.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 03:26:35 +01:00
Michael Niedermayer
e25ed2608c Merge commit 'c7f7bfc9e3a3150ba72bc34366c13fb2210c66ac'
* commit 'c7f7bfc9e3a3150ba72bc34366c13fb2210c66ac':
  Remove all Alpha architecture optimizations

Conflicts:
	libavcodec/alpha/asm.h
	libavcodec/alpha/dsputil_alpha.c
	libavcodec/alpha/dsputil_alpha.h
	libavcodec/alpha/dsputil_alpha_asm.S
	libavcodec/alpha/hpeldsp_alpha.c
	libavcodec/alpha/hpeldsp_alpha.h
	libavcodec/alpha/hpeldsp_alpha_asm.S
	libavcodec/alpha/motion_est_alpha.c
	libavcodec/alpha/motion_est_mvi_asm.S
	libavcodec/alpha/mpegvideo_alpha.c
	libavcodec/alpha/regdef.h
	libavcodec/alpha/simple_idct_alpha.c

We have a qemu based fate alpha client. And various failures
on alpha have previously pointed to issues in generic C code.
Thus IMHO it makes sense to keep alpha code as long as someone
is willing to do the little bit of maintaince it needs

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-14 02:55:42 +01:00
Diego Biurrun
19e30a58fc Deprecate obsolete XvMC hardware decoding support
XvMC has long ago been superseded by newer acceleration APIs, such as
VDPAU, and few downstreams still support it. Furthermore XvMC is not
implemented within the hwaccel framework, but requires its own specific
code in the MPEG-1/2 decoder, which is a maintenance burden.
2013-11-13 21:07:45 +01:00
Diego Biurrun
c7f7bfc9e3 Remove all Alpha architecture optimizations
Alpha has been end-of-lifed and no more test machines are available.
2013-11-13 20:45:49 +01:00
Stefano Sabatini
fe55c31976 lavc/elbg: rename ff_ symbols to avpriv_, so they can be used in shared libs
In particular, allows the use of elbg in other FFmpeg libraries, required
by the pending elbg filter.
2013-11-13 11:21:46 +01:00
Ben Boeckel
255302da70 vorbis: handle special packets in the middle of a stream
This allows for updating metadata from new metadata packets in the
middle of a stream (e.g., MPD streams). There still needs to be a signal
that there *is* new metadata, but this is at least gets the data into a
data structure.

Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-13 01:36:56 +01:00
Paul B Mahol
e1c7892013 avcodec/vp9: use av_freep() for above_partition_ctx
Fixes use after free if memory allocation fails.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-11-12 23:41:58 +00:00
Michael Niedermayer
7b1e0beb2d avcodec/mpegvideo_motion: Handle edge emulation even without unrestricted_mv
Fixes out of array reads
Fixes part of: MSVR 440 (the other issues seem to have been fixed already)
Found-by: Jeremy Brown (jerbrown) of ReSP
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-12 18:21:20 +01:00
Erik Olofsson
da9d36055a libavcodec/xsubenc.c: set coded_bits_per_sample
Explicitly set the number of bits per sample to stop
the avi muxer from guessing at 24 bits.
The result is that bits per pixel in the avi stream header
matches what other XSUB muxers produce, such as AVIAddXSubs.exe

Signed-off-by: Erik Olofsson <eaj.olofsson@gmail.com>
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-12 03:15:33 +01:00
Erik Olofsson
3b1dcdec7d libavcodec/xsubenc.c: Fix bounding box coordinates
Fix coordinates of the lower right corner of the text area.
Note that the coordinates are redundant as the size and
position of the text area are known.
Many decoders (including Sony Playstation 3, VLC and FFmpeg)
ignore the redundant coordinates.
Some hardware decoders need them for correct playback.

Verified on Philips DVD player models HTS7201 and DVP3380.

Fixes ticket #3031

Signed-off-by: Erik Olofsson <eaj.olofsson@gmail.com>
Reviewed-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-12 03:15:33 +01:00