1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
FFmpeg/libavcodec
Rostislav Pehlivanov 2d208aaabe imdct15: replace the FFT with a faster PFA FFT algorithm
This commit replaces the current inefficient non-power-of-two FFT with a
much faster FFT based on the Prime Factor Algorithm.
Although it is already much faster than the old algorithm without SIMD,
the new algorithm makes use of the already very throughouly SIMD'd power
of two FFT, which improves performance even more across all platforms
which we have SIMD support for.

Most of the work was done by Peter Barfuss, who passed the code to me to
implement into the iMDCT and the current codebase. The code for a
5-point and 15-point FFT was derived from the previous implementation,
although it was optimized and simplified, which will make its future
SIMD easier. The 15-point FFT is currently using 6% of the current
overall decoder overhead.

The FFT can now easily be used as a forward transform by simply not
multiplying the 5-point FFT's imaginary component by -1 (which comes
from the fact that changing the complex exponential's angle by -1 also
changes the output by that) and by multiplying the "theta" angle of the
main exptab by -1. Hence the deliberately left multiplication by -1 at
the end.

FATE passes, and performance reports on other platforms/CPUs are
welcome.

Performance comparisons:

iMDCT, PFA:
101127 decicycles in speed,   32765 runs,      3 skips
iMDCT, Old:
211022 decicycles in speed,   32768 runs,      0 skips

Standalone FFT, 300000 transforms of size 960:
    PFA        Old FFT     kiss_fft    libfftw3f
    3.659695s, 15.726912s, 13.300789s, 1.182222s

Being only 3x slower than libfftw3f is a big achievement by itself.

There appears to be something capping the performance in the iMDCT side
of things, possibly during the pre-stage reindexing. However, it is
certainly fast enough for now.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-01-05 22:32:02 +00:00
..
aarch64 imdct15: remove the AArch64 assembly 2017-01-05 22:32:02 +00:00
alpha
arm Merge commit '5f74bd31a9bd1ac7655103b11743c12d38e0419f' 2016-11-17 15:05:07 +01:00
avr32
bfin
mips avcodec/mips: version 1 of vc1dsp optimizations for loongson mmi 2016-12-17 18:41:18 +01:00
neon
ppc ppc: pixblockdsp: do unaligned block accesses correctly again 2016-11-03 01:23:36 +01:00
sh4
sparc
tests avcodec/tests/fft: Fix indention of dct_init() 2017-01-01 23:04:31 +01:00
x86 avcodec/x86/vc1dsp_mc: Fix build with NASM 2.09.10 2017-01-02 22:37:55 +01:00
.gitignore
4xm.c
8bps.c
8svx.c
012v.c
a64colors.h
a64multienc.c
a64tables.h
aac_ac3_parser.c
aac_ac3_parser.h
aac_adtstoasc_bsf.c avcodec/aac_adtstoasc_bsf: validate and forward extradata if the stream is already ASC 2016-11-25 18:24:56 -03:00
aac_defines.h
aac_parser.c
aac.h
aacadtsdec.c
aacadtsdec.h
aaccoder_trellis.h
aaccoder_twoloop.h
aaccoder.c
aacdec_fixed.c
aacdec_template.c aacdec: Rename elem_type_prev to che_prev_type. 2016-12-08 13:31:50 -08:00
aacdec.c
aacdectab.h
aacenc_is.c
aacenc_is.h
aacenc_ltp.c
aacenc_ltp.h
aacenc_pred.c
aacenc_pred.h
aacenc_quantization_misc.h
aacenc_quantization.h
aacenc_tns.c
aacenc_tns.h
aacenc_utils.h
aacenc.c aacenc: quit when the audio queue reaches 0 rather than keeping track of empty frames 2016-11-08 00:50:51 +00:00
aacenc.h aacenc: quit when the audio queue reaches 0 rather than keeping track of empty frames 2016-11-08 00:50:51 +00:00
aacenctab.c
aacenctab.h
aacps_fixed_tablegen.c
aacps_fixed_tablegen.h
aacps_fixed.c
aacps_float.c
aacps_tablegen_template.c
aacps_tablegen.c
aacps_tablegen.h
aacps.c
aacps.h
aacpsdata.c
aacpsdsp_fixed.c
aacpsdsp_float.c
aacpsdsp_template.c
aacpsdsp.h
aacpsy.c
aacsbr_fixed_tablegen.h
aacsbr_fixed.c
aacsbr_tablegen_common.h
aacsbr_tablegen.h
aacsbr_template.c
aacsbr.c
aacsbr.h
aacsbrdata.h
aactab.c
aactab.h
aandcttab.c
aandcttab.h
aasc.c
ac3_parser.c
ac3_parser.h
ac3.c
ac3.h
ac3dec_data.c
ac3dec_data.h
ac3dec_fixed.c
ac3dec_float.c
ac3dec.c avcodec/ac3dec: Check expacc 2016-11-03 22:05:46 +01:00
ac3dec.h
ac3dsp.c
ac3dsp.h
ac3enc_fixed.c
ac3enc_float.c
ac3enc_opts_template.c
ac3enc_template.c
ac3enc.c
ac3enc.h
ac3tab.c
ac3tab.h
acelp_filters.c
acelp_filters.h
acelp_pitch_delay.c
acelp_pitch_delay.h
acelp_vectors.c
acelp_vectors.h
adpcm_data.c
adpcm_data.h
adpcm.c
adpcm.h
adpcmenc.c
adx_parser.c
adx.c
adx.h
adxdec.c
adxenc.c
aic.c
alac_data.c
alac_data.h
alac.c
alacdsp.c
alacdsp.h
alacenc.c
aliaspixdec.c
aliaspixenc.c
allcodecs.c avcodec: add Apple Pixlet decoder 2016-12-22 22:47:06 +01:00
alsdec.c
amr.h
amrnbdata.h
amrnbdec.c
amrwbdata.h
amrwbdec.c
anm.c
ansi.c
apedec.c
apng.h
ass_split.c avcodec/ass_split: Change order of operations in ass_split_section() 2016-11-17 18:05:18 +01:00
ass_split.h
ass.c
ass.h
assdec.c
assenc.c
asv.c
asv.h
asvdec.c avcodec/asvdec: return correct value in case of error 2016-12-23 11:10:47 +01:00
asvenc.c
atrac1.c
atrac1data.h
atrac3.c
atrac3data.h
atrac3plus_data.h
atrac3plus.c
atrac3plus.h
atrac3plusdec.c
atrac3plusdsp.c
atrac.c
atrac.h
audio_frame_queue.c
audio_frame_queue.h
audioconvert.c
audioconvert.h
audiodsp.c
audiodsp.h
audiotoolboxdec.c lavc/audiotoolboxdec: fix OSX SDK detection 2016-11-14 02:35:26 +01:00
audiotoolboxenc.c
aura.c
avcodec.h avcodec: add Apple Pixlet decoder 2016-12-22 22:47:06 +01:00
avcodecres.rc
avdct.c
avdct.h
avfft.c
avfft.h
avpacket.c lavc: Add spherical packet side data API 2016-12-07 14:40:06 -05:00
avpicture.c
avrndec.c
avs.c
avuidec.c
avuienc.c
bethsoftvideo.c
bethsoftvideo.h
bfi.c
bgmc.c
bgmc.h
bink.c
binkaudio.c
binkdata.h
binkdsp.c
binkdsp.h
bintext.c
bintext.h
bit_depth_template.c
bitstream_filter.c
bitstream_filters.c
bitstream.c avcodec/bitstream: Document the values supported for *_size in ff_init_vlc_sparse() 2017-01-05 12:08:24 +01:00
blockdsp.c
blockdsp.h
bmp_parser.c
bmp.c
bmp.h
bmpenc.c
bmvaudio.c
bmvvideo.c
brenderpix.c
bsf.c
bsf.h
bswapdsp.c
bswapdsp.h
bytestream.h
c93.c
cabac_functions.h
cabac.c
cabac.h
canopus.c
canopus.h
cavs_parser.c
cavs.c
cavs.h
cavsdata.c
cavsdec.c
cavsdsp.c
cavsdsp.h
cbrt_data_fixed.c
cbrt_data.c
cbrt_data.h
cbrt_fixed_tablegen.c
cbrt_tablegen_template.c
cbrt_tablegen.c
cbrt_tablegen.h
ccaption_dec.c
cdgraphics.c
cdxl.c
celp_filters.c
celp_filters.h
celp_math.c
celp_math.h
cfhd.c
cfhd.h
cfhddata.c
cga_data.c
cga_data.h
chomp_bsf.c
cinepak.c
cinepakenc.c
cljrdec.c
cljrenc.c
cllc.c
cngdec.c
cngenc.c
codec_desc.c avcodec: add Apple Pixlet decoder 2016-12-22 22:47:06 +01:00
cook_parser.c
cook.c
cookdata.h
copy_block.h
cos_tablegen.c
cpia.c
crystalhd.c avcodec/crystalhd: Handle errors from av_image_get_linesize 2016-11-30 16:14:39 -08:00
cscd.c
cuvid.c avcodec/cuvid: fix compilation with msvc11 2016-12-12 13:09:55 +01:00
cyuv.c
d3d11va.c
d3d11va.h
dca_core_bsf.c
dca_core.c
dca_core.h
dca_exss.c
dca_exss.h
dca_lbr.c
dca_lbr.h
dca_parser.c
dca_syncwords.h
dca_xll.c
dca_xll.h
dca.c
dca.h
dcadata.c
dcadata.h
dcadct.c
dcadct.h
dcadec.c
dcadec.h
dcadsp.c
dcadsp.h
dcaenc.c
dcaenc.h
dcahuff.c
dcahuff.h
dcamath.h
dct32_fixed.c
dct32_float.c
dct32_template.c
dct32.h
dct.c
dct.h
dctref.c
dctref.h
dds.c dds: limit 4 bpp handling to AV_PIX_FMT_PAL8 2016-11-16 19:29:45 +01:00
dfa.c
dirac_arith.c
dirac_arith.h
dirac_dwt_template.c
dirac_dwt.c
dirac_dwt.h
dirac_parser.c
dirac_vlc.c
dirac_vlc.h
dirac.c
dirac.h
diracdec.c diracdec: check return code of get_buffer_with_edge 2016-11-04 20:35:23 +01:00
diracdsp.c
diracdsp.h
diractab.c
diractab.h
dnxhd_parser.c
dnxhddata.c
dnxhddata.h
dnxhddec.c lavc: Remove CR/LF from avpriv_request_sample() calls. 2016-12-03 15:40:26 +01:00
dnxhdenc.c
dnxhdenc.h avcodec/dnxhdenc: Fix alignment of edge_buf* 2016-11-01 21:02:26 +01:00
dpcm.c
dpx_parser.c
dpx.c lavc/dpx: Support GRAY12 colourspace. 2016-11-14 00:33:12 +01:00
dpxenc.c
dsd_tablegen.h
dsd.c
dsd.h
dsddec.c
dsicinaudio.c
dsicinvideo.c
dss_sp.c
dstdec.c
dump_extradata_bsf.c
dv_profile_internal.h
dv_profile.c
dv_profile.h
dv_tablegen.c
dv_tablegen.h
dv.c
dv.h
dvaudio_parser.c
dvaudio.h
dvaudiodec.c
dvbsub_parser.c
dvbsub.c
dvbsubdec.c dvbsubdec: fix division by zero in compute_default_clut 2016-11-10 21:01:59 +01:00
dvbtxt.h
dvd_nav_parser.c
dvdata.c
dvdata.h
dvdec.c
dvdsub_parser.c
dvdsubdec.c
dvdsubenc.c
dvenc.c
dxa.c
dxtory.c
dxv.c
dxva2_h264.c
dxva2_hevc.c
dxva2_internal.h dxva2: make ff_dxva2_get_surface() static and rename it 2017-01-05 23:18:36 +01:00
dxva2_mpeg2.c
dxva2_vc1.c dxva2_vc1: support multiple slices 2016-11-26 13:11:36 +01:00
dxva2_vp9.c
dxva2.c dxva2: make ff_dxva2_get_surface() static and rename it 2017-01-05 23:18:36 +01:00
dxva2.h
eac3_data.c
eac3_data.h
eac3dec.c
eac3enc.c
eac3enc.h
eacmv.c
eaidct.c
eaidct.h
eamad.c
eatgq.c
eatgv.c
eatqi.c
elbg.c
elbg.h
elsdec.c
elsdec.h
error_resilience.c avcodec/error_resilience: Move variable initialization down, remove unneeded inits 2016-12-25 22:58:52 +01:00
error_resilience.h
escape124.c escape124: reject codebook size 0 2016-11-09 21:10:59 +01:00
escape130.c
evrcdata.h
evrcdec.c
exif.c
exif.h
exr.c libavcodec/exr: add support for uint32 channel decoding with pxr24 2016-11-25 00:57:38 +01:00
faandct.c
faandct.h
faanidct.c
faanidct.h
faxcompr.c
faxcompr.h
fdctdsp.c
fdctdsp.h
ffjni.c
ffjni.h
fft_fixed_32.c
fft_fixed.c
fft_float.c
fft_init_table.c
fft_table.h
fft_template.c
fft-internal.h
fft.h
ffv1_template.c
ffv1.c
ffv1.h
ffv1dec_template.c
ffv1dec.c lavc/ffv1: Support YUV4xxP12 and GRAY12. 2016-11-20 22:23:01 +01:00
ffv1enc_template.c
ffv1enc.c avcodec/ffv1enc: Allocate smaller packet if the worst case size cannot be allocated 2016-12-09 01:59:40 +01:00
ffwavesynth.c
fic.c
file_open.c
flac_parser.c avcodec/flac_parser: Update nb_headers_buffered 2016-11-30 00:58:56 +01:00
flac.c avcodec/flac: forward errors from ff_flac_parse_streaminfo() 2016-12-03 23:39:11 +01:00
flac.h avcodec/flac: forward errors from ff_flac_parse_streaminfo() 2016-12-03 23:39:11 +01:00
flacdata.c
flacdata.h
flacdec.c avcodec/flacdec: Fix undefined shift in decode_subframe() 2016-12-04 00:12:06 +01:00
flacdsp_lpc_template.c
flacdsp_template.c avcodec/flacdsp_template: Fix undefined shift in flac_decorrelate_indep_c 2016-12-03 17:25:40 +01:00
flacdsp.c
flacdsp.h
flacenc.c
flashsv2enc.c
flashsv.c
flashsvenc.c
flicvideo.c
flv.h
flvdec.c
flvenc.c
fmtconvert.c
fmtconvert.h
frame_thread_encoder.c
frame_thread_encoder.h
fraps.c
frwu.c
g2meet.c
g722.c
g722.h
g722dec.c
g722dsp.c
g722dsp.h
g722enc.c
g723_1.c
g723_1.h
g723_1dec.c
g723_1enc.c
g726.c
g729_parser.c
g729.h
g729data.h
g729dec.c
g729postfilter.c
g729postfilter.h
get_bits.h avcodec/get_bits: add av_assert2 to get_bits_long() 2016-12-18 10:06:29 +01:00
gif.c
gif.h
gifdec.c
golomb.c
golomb.h avcodec/golomb: Consume invalid data in get_ur_golomb_jpegls() 2016-12-08 02:47:47 +01:00
gsm_parser.c
gsm.h
gsmdec_data.c
gsmdec_data.h
gsmdec_template.c
gsmdec.c
h261_parser.c
h261.c
h261.h
h261data.c
h261dec.c
h261enc.c
h263_parser.c
h263_parser.h
h263.c
h263.h
h263data.c
h263data.h
h263dec.c avcodec/h263dec: Return the correct error code in explode mode 2016-12-15 22:13:17 +01:00
h263dsp.c
h263dsp.h
h264_cabac.c
h264_cavlc.c
h264_direct.c
h264_loopfilter.c
h264_mb_template.c
h264_mb.c
h264_mc_template.c
h264_mp4toannexb_bsf.c
h264_mvpred.h
h264_parse.c
h264_parse.h
h264_parser.c
h264_picture.c
h264_ps.c Merge commit 'a8cbe5a0ccebf60a8a8b0aba5d5716dd54c1595c' 2016-11-17 15:17:21 +01:00
h264_ps.h Merge commit 'a8cbe5a0ccebf60a8a8b0aba5d5716dd54c1595c' 2016-11-17 15:17:21 +01:00
h264_refs.c
h264_sei.c
h264_sei.h
h264_slice.c h264_slice: Wait for refs to be available before we use them in error concealment 2016-12-09 15:00:29 +00:00
h264.h
h264addpx_template.c
h264chroma_template.c
h264chroma.c
h264chroma.h
h264data.c
h264data.h
h264dec.c
h264dec.h
h264dsp_template.c
h264dsp.c
h264dsp.h
h264idct_template.c
h264idct.c
h264idct.h
h264pred_template.c
h264pred.c
h264pred.h
h264qpel_template.c
h264qpel.c
h264qpel.h
h2645_parse.c
h2645_parse.h Merge commit '61bd0ed781b56eea1e8e851aab34a2ee3b59fbac' 2016-11-17 15:24:25 +01:00
hap.c
hap.h avcodec/hap: add "compressor" option to Hap encoder to disable secondary compression 2016-11-10 14:27:38 +00:00
hapdec.c avcodec/hap: consistent name for codec 2016-11-04 11:19:47 -08:00
hapenc.c avcodec/hap: add "compressor" option to Hap encoder to disable secondary compression 2016-11-10 14:27:38 +00:00
hevc_cabac.c
hevc_data.c
hevc_filter.c
hevc_mp4toannexb_bsf.c
hevc_mvs.c
hevc_parse.c
hevc_parse.h
hevc_parser.c
hevc_ps_enc.c
hevc_ps.c lavc/hevc_ps: Use correct pix_fmt for 10bit 4:0:0. 2016-11-14 10:36:25 +01:00
hevc_refs.c
hevc_sei.c
hevc.c hevc: Support extradata changes 2016-12-02 15:04:24 -05:00
hevc.h
hevcdsp_template.c
hevcdsp.c
hevcdsp.h
hevcpred_template.c
hevcpred.c
hevcpred.h
hnm4video.c
hpel_template.c
hpeldsp.c
hpeldsp.h
hq_hqa.c
hq_hqa.h
hq_hqadata.c
hq_hqadsp.c
hq_hqadsp.h
hqx.c
hqx.h
hqxdsp.c
hqxdsp.h
hqxvlc.c
htmlsubtitles.c avcodec/htmlsubtitles: Fix reading one byte beyond the array 2016-11-12 03:23:03 +01:00
htmlsubtitles.h
huffman.c
huffman.h
huffyuv.c
huffyuv.h
huffyuvdec.c
huffyuvdsp.c
huffyuvdsp.h
huffyuvenc.c
huffyuvencdsp.c
huffyuvencdsp.h
idcinvideo.c
idctdsp.c
idctdsp.h
iff.c
iirfilter.c
iirfilter.h
imc.c
imcdata.h
imdct15.c imdct15: replace the FFT with a faster PFA FFT algorithm 2017-01-05 22:32:02 +00:00
imdct15.h imdct15: replace the FFT with a faster PFA FFT algorithm 2017-01-05 22:32:02 +00:00
imgconvert.c
imx_dump_header_bsf.c
indeo2.c
indeo2data.h
indeo3.c
indeo3data.h
indeo4.c
indeo4data.h
indeo5.c
indeo5data.h
intelh263dec.c
internal.h Fix -Werror=parentheses error 2016-11-16 02:39:57 +01:00
interplayacm.c interplayacm: increase bitstream buffer size by AV_INPUT_BUFFER_PADDING_SIZE 2016-11-01 00:39:06 +01:00
interplayvideo.c
intrax8.c
intrax8.h
intrax8dsp.c
intrax8dsp.h
intrax8huf.h
ituh263dec.c avcodec/ituh263dec: Avoid spending a long time in slice sync 2016-11-15 18:27:31 +01:00
ituh263enc.c
ivi_dsp.c
ivi_dsp.h
ivi.c
ivi.h
j2kenc.c
jacosub.h
jacosubdec.c
jfdctfst.c
jfdctint_template.c
jfdctint.c
jni.c
jni.h
jpeg2000.c
jpeg2000.h
jpeg2000dec.c
jpeg2000dsp.c
jpeg2000dsp.h
jpeg2000dwt.c
jpeg2000dwt.h
jpegls.c
jpegls.h
jpeglsdec.c
jpeglsdec.h
jpeglsenc.c
jpegtables.c
jpegtables.h
jrevdct.c
jvdec.c
kbdwin.c
kbdwin.h
kgv1dec.c
kmvc.c
lagarith.c
lagarithrac.c
lagarithrac.h
latm_parser.c
lcl.h
lcldec.c
lclenc.c
libavcodec.v
libcelt_dec.c
libfdk-aacdec.c
libfdk-aacenc.c
libgsmdec.c
libgsmenc.c
libilbc.c
libkvazaar.c
libmp3lame.c lavc/libmp3lame: add support for cutoff 2016-12-31 17:20:06 +01:00
libopencore-amr.c
libopenh264.c
libopenh264.h
libopenh264dec.c Merge commit '36b380dcd52ef47d7ba0559ed51192c88d82a9bd' 2016-11-18 10:45:08 +01:00
libopenh264enc.c Merge commit '7a76371437f9562c3414f985523f883489e3936a' 2016-11-18 10:47:08 +01:00
libopenjpegdec.c avcodec/libopenjpegdec: Set key frame metadata 2016-12-28 16:04:59 +01:00
libopenjpegenc.c
libopus.c
libopus.h
libopusdec.c libopusdec: default to stereo for invalid number of channels 2016-11-25 00:36:36 +01:00
libopusenc.c
libschroedinger.c
libschroedinger.h
libschroedingerdec.c libschroedingerdec: fix leaking of framewithpts 2016-11-16 19:31:11 +01:00
libschroedingerenc.c
libshine.c
libspeexdec.c
libspeexenc.c
libtheoraenc.c
libtwolame.c
libvo-amrwbenc.c
libvorbisdec.c
libvorbisenc.c
libvpx.c
libvpx.h
libvpxdec.c
libvpxenc.c libvpxenc: Don't spam level errors for VP8 encodes 2016-12-13 10:43:57 -08:00
libwavpackenc.c
libwebpenc_animencoder.c
libwebpenc_common.c
libwebpenc_common.h
libwebpenc.c
libx264.c avcodec/libx264: fix forced_idr logic 2016-11-22 16:35:08 +01:00
libx265.c libx265: Add option to force IDR frames 2016-11-04 02:45:51 +01:00
libxavs.c
libxvid_rc.c
libxvid.c
libxvid.h
libzvbi-teletextdec.c
ljpegenc.c
loco.c
log2_tab.c
lossless_audiodsp.c
lossless_audiodsp.h
lossless_videodsp.c avcodec/lossless_videodsp: fix output of add_hfyu_left_pred_int16_c() 2016-12-26 12:02:38 -03:00
lossless_videodsp.h
lpc.c
lpc.h
lsp.c
lsp.h
lzf.c lzf: update pointer p after realloc 2016-11-05 18:56:26 +01:00
lzf.h
lzw.c
lzw.h
lzwenc.c
m101.c lavc: Remove CR/LF from avpriv_request_sample() calls. 2016-12-03 15:40:26 +01:00
mace.c
magicyuv.c avcodec/magicyuv: export colorspace and color_range for YUV 2016-12-26 17:34:57 +01:00
Makefile lavc/Makefile: Clean up the amv encoder dependencies. 2017-01-05 12:17:54 +01:00
mathops.h
mathtables.c
mdct_fixed_32.c
mdct_fixed.c
mdct_float.c
mdct_template.c
mdec.c
me_cmp.c
me_cmp.h avcodec/me_cmp: Fix median_sad size 2016-11-27 14:34:57 +01:00
mediacodec_surface.c
mediacodec_surface.h
mediacodec_sw_buffer.c
mediacodec_sw_buffer.h
mediacodec_wrapper.c
mediacodec_wrapper.h
mediacodec.c
mediacodec.h
mediacodecdec_common.c
mediacodecdec_common.h
mediacodecdec.c
metasound_data.c
metasound_data.h
metasound.c
microdvddec.c
mimic.c
mjpeg2jpeg_bsf.c
mjpeg_parser.c
mjpeg.h
mjpega_dump_header_bsf.c
mjpegbdec.c
mjpegdec.c lavc/mjpegdec: Do not overread too short JFIF tags. 2017-01-01 18:53:27 +01:00
mjpegdec.h
mjpegenc_common.c
mjpegenc_common.h
mjpegenc.c
mjpegenc.h
mlp_parser.c
mlp_parser.h
mlp.c
mlp.h
mlpdec.c
mlpdsp.c
mlpdsp.h
mlpenc.c
mlz.c mlz: limit next_code to data buffer size 2016-11-15 22:01:08 +01:00
mlz.h
mmaldec.c
mmvideo.c
motion_est_template.c
motion_est.c
motion_est.h
motionpixels_tablegen.c
motionpixels_tablegen.h
motionpixels.c
movsub_bsf.c
movtextdec.c avcodec/movtextdec: Add error message for tsmb_size check 2016-11-15 15:08:20 +01:00
movtextenc.c
mp3_header_decompress_bsf.c
mpc7.c
mpc7data.h
mpc8.c
mpc8data.h
mpc8huff.h
mpc.c
mpc.h
mpcdata.h
mpeg4_unpack_bframes_bsf.c
mpeg4audio.c avcodec/mpeg4audio: correctly propagate meaningful error values 2016-11-25 10:40:59 -03:00
mpeg4audio.h
mpeg4data.h
mpeg4video_parser.c
mpeg4video_parser.h
mpeg4video.c
mpeg4video.h
mpeg4videodec.c avcodec/mpeg4videodec: Fix undefined shifts in mpeg4_decode_sprite_trajectory() 2016-12-09 17:44:54 +01:00
mpeg4videoenc.c
mpeg12.c
mpeg12.h
mpeg12data.c Merge commit 'fe27792fd779ac4cdd5e57be5f6f488483c307b2' 2016-11-14 10:42:36 +01:00
mpeg12data.h
mpeg12dec.c avcodec/mpeg12dec: Add FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM 2016-12-10 04:58:52 +01:00
mpeg12enc.c
mpeg12framerate.c Merge commit 'fe27792fd779ac4cdd5e57be5f6f488483c307b2' 2016-11-14 10:42:36 +01:00
mpeg12vlc.h
mpeg_er.c
mpeg_er.h
mpegaudio_parser.c mpegaudio_parser: don't return AVERROR_PATCHWELCOME 2016-11-07 19:41:17 +01:00
mpegaudio_tablegen.c
mpegaudio_tablegen.h
mpegaudio.c
mpegaudio.h
mpegaudiodata.c
mpegaudiodata.h
mpegaudiodec_fixed.c
mpegaudiodec_float.c
mpegaudiodec_template.c
mpegaudiodecheader.c
mpegaudiodecheader.h
mpegaudiodectab.h
mpegaudiodsp_data.c
mpegaudiodsp_fixed.c
mpegaudiodsp_float.c
mpegaudiodsp_template.c
mpegaudiodsp.c
mpegaudiodsp.h
mpegaudioenc_fixed.c
mpegaudioenc_float.c
mpegaudioenc_template.c
mpegaudiotab.h
mpegpicture.c avcodec/mpegvideo: Fix edge emu buffer overlap with interlaced mpeg4 2016-11-17 12:21:48 +01:00
mpegpicture.h
mpegutils.c
mpegutils.h
mpegvideo_enc.c avcodec/mpegvideo: Fix edge emu buffer overlap with interlaced mpeg4 2016-11-17 12:21:48 +01:00
mpegvideo_motion.c avcodec/mpeg4videodec: Workaround interlaced mpeg4 edge MC bug 2016-11-17 12:21:48 +01:00
mpegvideo_parser.c
mpegvideo_xvmc.c
mpegvideo.c avcodec/mpeg4videodec: Workaround interlaced mpeg4 edge MC bug 2016-11-17 12:21:48 +01:00
mpegvideo.h
mpegvideodata.c
mpegvideodata.h
mpegvideodsp.c
mpegvideodsp.h
mpegvideoencdsp.c
mpegvideoencdsp.h
mpl2dec.c
mqc.c
mqc.h
mqcdec.c
mqcenc.c
msgsmdec.c
msgsmdec.h
msmpeg4.c
msmpeg4.h
msmpeg4data.c
msmpeg4data.h
msmpeg4dec.c
msmpeg4enc.c
msrle.c
msrledec.c avcodec/msrledec: implement vertical offset in 4-bit RLE 2016-11-29 10:57:49 +01:00
msrledec.h
mss1.c
mss2.c mss2: only use error correction for matching block counts 2016-11-25 21:05:03 +01:00
mss2dsp.c
mss2dsp.h
mss3.c
mss4.c
mss12.c
mss12.h
mss34dsp.c
mss34dsp.h
msvideo1.c
msvideo1enc.c
mvcdec.c
mxpegdec.c
nellymoser.c
nellymoser.h
nellymoserdec.c
nellymoserenc.c
noise_bsf.c
nuv.c
nvenc_h264.c avcodec/nvenc: Add bluray_compat basic implementation 2017-01-01 14:47:25 +01:00
nvenc_hevc.c avcodec/nvenc: Add bluray_compat basic implementation 2017-01-01 14:47:25 +01:00
nvenc.c avcodec/nvenc: Add bluray_compat basic implementation 2017-01-01 14:47:25 +01:00
nvenc.h avcodec/nvenc: Add bluray_compat basic implementation 2017-01-01 14:47:25 +01:00
omx.c omx: Fix OOM check 2016-12-06 13:20:55 -08:00
on2avc.c
on2avcdata.c
on2avcdata.h
options_table.h avcodec: Add max_pixels options 2016-12-10 22:24:10 +01:00
options.c
opus_celt.c opus: move the entropy decoding functions to opus_rc.c 2016-11-08 14:18:59 +00:00
opus_parser.c opus_parser: make ParseContext the first element in OpusParseContext 2016-12-10 13:36:57 +01:00
opus_rc.c opus: move the entropy decoding functions to opus_rc.c 2016-11-08 14:18:59 +00:00
opus_rc.h opus: move the entropy decoding functions to opus_rc.c 2016-11-08 14:18:59 +00:00
opus_silk.c opus: move the entropy decoding functions to opus_rc.c 2016-11-08 14:18:59 +00:00
opus.c opus_parser: fix leaking channel_maps on error 2016-12-10 13:36:12 +01:00
opus.h opus: remove redundant ff_celt_window2 declaration 2016-12-18 07:11:27 +00:00
opusdec.c opus: remove redundant ff_celt_window2 declaration 2016-12-18 07:11:27 +00:00
opustab.c opus: move all tables to a separate file 2016-11-08 14:18:59 +00:00
opustab.h opus: move all tables to a separate file 2016-11-08 14:18:59 +00:00
paf.h
pafaudio.c
pafvideo.c
pamenc.c
parser.c
parser.h
pcm_tablegen.c
pcm_tablegen.h
pcm-bluray.c
pcm-dvd.c
pcm.c avcodec: add pcm_f16le and pcm_f24le decoder 2016-12-22 10:30:21 +01:00
pcx.c
pcxenc.c
pel_template.c
pgssubdec.c pgssubdec: only set w/h/linesize when allocating data 2016-11-24 01:48:43 +01:00
pictordec.c
pixblockdsp.c
pixblockdsp.h
pixels.h
pixlet.c avcodec/pixlet: simplify lowpass_prediction() function 2016-12-24 16:42:00 +01:00
png_parser.c
png.c
png.h
pngdec.c pngdec: check if previous frame exists instead of trusting sequence_number 2016-11-27 23:46:30 +01:00
pngdsp.c
pngdsp.h
pngenc.c
pnm_parser.c
pnm.c pnm: limit maxval to UINT16_MAX 2016-11-12 01:36:47 +01:00
pnm.h
pnmdec.c pnmdec: make sure v is capped by maxval 2016-11-12 01:36:47 +01:00
pnmenc.c
profiles.c
profiles.h
proresdata.c
proresdata.h
proresdec2.c
proresdec_lgpl.c proresdec_lgpl: explicitly check coff[3] against slice_data_size 2016-11-10 21:00:44 +01:00
proresdec.h
proresdsp.c
proresdsp.h
proresenc_anatoliy.c
proresenc_kostya.c
psd.c lavc/psd: Support indexed files. 2017-01-02 11:39:21 +01:00
psymodel.c
psymodel.h
pthread_frame.c
pthread_internal.h
pthread_slice.c
pthread.c
ptx.c
put_bits.h
qcelpdata.h
qcelpdec.c
qdm2_tablegen.c
qdm2_tablegen.h
qdm2.c
qdm2data.h
qdrw.c
qpeg.c
qpel_template.c
qpeldsp.c
qpeldsp.h
qsv_api.c
qsv_internal.h Merge commit '536bb17e9659c5ed7576a218d4085cdd6d5742fa' 2016-11-14 15:19:43 +01:00
qsv.c Merge commit '92736c74fb1633e36f7134a880422a9b7db14d3f' 2016-11-14 15:20:00 +01:00
qsv.h
qsvdec_h2645.c Merge commit '92736c74fb1633e36f7134a880422a9b7db14d3f' 2016-11-14 15:20:00 +01:00
qsvdec_mpeg2.c
qsvdec_vc1.c
qsvdec.c qsvdec: Fix memory leak 2016-12-06 13:21:08 -08:00
qsvdec.h Merge commit 'ce320cf1c4daab3e2e3726ed7d2e879d10f7b991' 2016-11-14 15:19:51 +01:00
qsvenc_h264.c
qsvenc_hevc.c
qsvenc_mpeg2.c
qsvenc.c qsvenc: do not re-execute encoding on all positive status codes 2016-11-04 18:56:01 +00:00
qsvenc.h
qtrle.c
qtrleenc.c
r210dec.c
r210enc.c
ra144.c
ra144.h
ra144dec.c
ra144enc.c
ra288.c
ra288.h
ralf.c
ralfdata.h
rangecoder.c
rangecoder.h
ratecontrol.c
ratecontrol.h
raw.c avcodec/raw: add gray10 support in nut 2016-11-29 11:23:20 +01:00
raw.h
rawdec.c avcodec/rawdec: check for side data before checking its size 2016-11-04 23:38:56 -03:00
rawenc.c
rdft.c
rdft.h
realtextdec.c
rectangle.h
remove_extradata_bsf.c
resample2.c
resample.c
reverse.c
rl2.c
rl.c
rl.h
rle.c Merge commit 'eeb6849cedac099d41feb482da581f4059c63ca7' 2016-11-14 12:03:00 +01:00
rle.h Merge commit 'eeb6849cedac099d41feb482da581f4059c63ca7' 2016-11-14 12:03:00 +01:00
rnd_avg.h
roqaudioenc.c
roqvideo.c
roqvideo.h
roqvideodec.c
roqvideoenc.c
rpza.c
rscc.c avcodec/rscc: return the packet size instead of 0 2016-12-15 22:10:40 +01:00
rtjpeg.c
rtjpeg.h
rv10.c
rv10.h
rv10enc.c
rv20enc.c
rv30.c
rv30data.h
rv30dsp.c
rv34_parser.c
rv34.c
rv34.h
rv34data.h
rv34dsp.c
rv34dsp.h
rv34vlc.h
rv40.c avcodec/rv40: Test remaining space in loop of get_dimension() 2016-11-15 23:08:43 +01:00
rv40data.h
rv40dsp.c
rv40vlc2.h
s302m.c
s302menc.c
samidec.c
sanm.c
sbr.h
sbrdsp_fixed.c
sbrdsp_template.c
sbrdsp.c
sbrdsp.h
screenpresso.c avcodec/screenpresso: return the packet size instead of 0 2016-12-15 22:11:26 +01:00
sgi.h
sgidec.c
sgienc.c
sgirledec.c
sheervideo.c
shorten.c
simple_idct_template.c
simple_idct.c
simple_idct.h
sinewin_fixed_tablegen.c
sinewin_fixed.c
sinewin_tablegen_template.c
sinewin_tablegen.c
sinewin_tablegen.h
sinewin.c
sinewin.h
sipr16k.c
sipr16kdata.h
sipr.c
sipr.h
siprdata.h
smacker.c smacker: limit recursion depth of smacker_decode_bigtree 2016-11-23 00:57:10 +01:00
smc.c
smvjpegdec.c avcodec/smvjpegdec: return the packet size instead of 0 2016-12-15 22:12:48 +01:00
snappy.c
snappy.h
snow_dwt.c
snow_dwt.h
snow.c
snow.h
snowdata.h
snowdec.c
snowenc.c
sonic.c
sp5x.h
sp5xdec.c
srtdec.c
srtenc.c
startcode.c
startcode.h
subviewerdec.c
sunrast.c avcodec/sunrast: Fix input buffer pointer check 2016-11-02 12:06:22 +01:00
sunrast.h
sunrastenc.c
svq1_cb.h
svq1_vlc.h
svq1.c
svq1.h
svq1dec.c
svq1enc_cb.h
svq1enc.c
svq1enc.h
svq3.c lavc: Remove CR/LF from avpriv_request_sample() calls. 2016-12-03 15:40:26 +01:00
svq13.c
synth_filter.c
synth_filter.h
tableprint_vlc.h
tableprint.h
tak_parser.c
tak.c
tak.h
takdec.c
takdsp.c
takdsp.h
targa_y216dec.c
targa.c
targa.h
targaenc.c Merge commit 'd8f3b0fb584677d4882e3a2d7c28f8b15c7319f5' 2016-11-14 12:16:32 +01:00
tdsc.c avcodec/tdsc: return the packet size instead of 0 2016-12-15 22:12:12 +01:00
textdec.c
texturedsp.c
texturedsp.h
texturedspenc.c
thread.h
tiertexseqv.c
tiff_common.c
tiff_common.h
tiff_data.c
tiff_data.h
tiff.c tiff: fix overflows when calling av_reduce 2016-12-15 01:30:57 +01:00
tiff.h
tiffenc.c Merge commit '6c445990e64124ad64c79423dfd3764520648c89' 2016-11-14 12:32:08 +01:00
tmv.c
tpeldsp.c
tpeldsp.h
truemotion1.c truemotion1: fix leaking frame on init failure 2016-12-05 23:04:35 +01:00
truemotion1data.h
truemotion2.c
truemotion2rt.c
truespeech_data.h
truespeech.c
tscc2.c
tscc2data.h
tscc.c
tta.c
ttadata.c
ttadata.h
ttadsp.c
ttadsp.h
ttaenc.c
ttaencdsp.c
ttaencdsp.h
twinvq_data.h
twinvq.c
twinvq.h
twinvqdec.c
txd.c
ulti_cb.h
ulti.c
unary.h
utils.c avcodec: add pcm_f16le and pcm_f24le decoder 2016-12-22 10:30:21 +01:00
utvideo.c
utvideo.h avcodec/utvideodec: add SIMD support for median prediction for planar formats 2016-12-23 17:44:01 +01:00
utvideodec.c avcodec/utvideo: fix mistake using wrong arguments for left and lefttop pixel components 2016-12-24 10:59:26 +01:00
utvideoenc.c avcodec/utvideodec: add SIMD support for median prediction for planar formats 2016-12-23 17:44:01 +01:00
v210dec.c
v210dec.h
v210enc.c
v210enc.h
v210x.c
v308dec.c
v308enc.c
v408dec.c
v408enc.c
v410dec.c
v410enc.c
vaapi_encode_h26x.c
vaapi_encode_h26x.h
vaapi_encode_h264.c vaapi_encode: Fix format specifier for bitrate logging 2016-11-21 22:59:58 +00:00
vaapi_encode_h265.c vaapi_encode: Fix format specifier for bitrate logging 2016-11-21 22:59:58 +00:00
vaapi_encode_mjpeg.c vaapi_encode: Check packed header capabilities 2016-11-21 22:13:41 +00:00
vaapi_encode.c vaapi_encode: Write sequence header as extradata 2016-12-05 21:04:00 +00:00
vaapi_encode.h vaapi_encode: Write sequence header as extradata 2016-12-05 21:04:00 +00:00
vaapi_h264.c
vaapi_hevc.c lavc/vaapi_hevc: fix scaling list duplicate transfer issue. 2016-11-23 21:38:10 +00:00
vaapi_internal.h
vaapi_mpeg2.c
vaapi_mpeg4.c
vaapi_vc1.c
vaapi_vp9.c avcodec/vaapi-vp9: add support for profile 2 (bpp > 8) 2016-12-05 22:12:34 +00:00
vaapi.c
vaapi.h
vb.c
vble.c
vc1_block.c
vc1_common.h
vc1_loopfilter.c
vc1_mc.c
vc1_parser.c
vc1_pred.c
vc1_pred.h
vc1.c
vc1.h
vc1acdata.h
vc1data.c
vc1data.h
vc1dec.c vc1dec: support multiple slices in frame coded images with hwaccel 2016-11-26 13:11:32 +01:00
vc1dsp.c avcodec/mips: version 1 of vc1dsp optimizations for loongson mmi 2016-12-17 18:41:18 +01:00
vc1dsp.h avcodec/mips: version 1 of vc1dsp optimizations for loongson mmi 2016-12-17 18:41:18 +01:00
vc2enc_dwt.c
vc2enc_dwt.h
vc2enc.c
vcr1.c
vda_h264_dec.c
vda_h264.c
vda_vt_internal.h
vda.c
vda.h
vdpau_compat.h
vdpau_h264.c
vdpau_hevc.c avcodec/vdpau_hevc: Fix potential out-of-bounds write 2016-11-30 16:14:39 -08:00
vdpau_internal.h
vdpau_mpeg4.c
vdpau_mpeg12.c
vdpau_vc1.c
vdpau.c
vdpau.h
version.h avcodec/nvenc: Add bluray_compat basic implementation 2017-01-01 14:47:25 +01:00
videodsp_template.c
videodsp.c
videodsp.h
videotoolbox.c
videotoolbox.h
videotoolboxenc.c
vima.c
vlc.h
vmdaudio.c
vmdvideo.c
vmnc.c
vorbis_data.c
vorbis_enc_data.h
vorbis_parser_internal.h
vorbis_parser.c
vorbis_parser.h
vorbis.c
vorbis.h
vorbisdec.c
vorbisdsp.c
vorbisdsp.h
vorbisenc.c
vp3_parser.c
vp3.c
vp3data.h
vp3dsp.c
vp3dsp.h
vp5.c
vp5data.h
vp6.c
vp6data.h
vp6dsp.c
vp8_parser.c
vp8.c
vp8.h
vp8data.h
vp8dsp.c
vp8dsp.h Merge commit '2866d108c9e9da7baf53ff57a51d470691049a57' 2016-11-17 15:06:28 +01:00
vp9_mc_template.c vp9_mc_template: limit assert to SCALED == 0 2016-11-13 12:38:15 +01:00
vp9_parser.c
vp9_superframe_bsf.c
vp9.c avcodec/vaapi-vp9: add support for profile 2 (bpp > 8) 2016-12-05 22:12:34 +00:00
vp9.h avcodec/vp9: move bpp to the shared context for use in hwaccel 2016-12-05 22:12:26 +00:00
vp9data.h
vp9dsp_8bpp.c
vp9dsp_10bpp.c
vp9dsp_12bpp.c
vp9dsp_template.c vp9dsp: Deduplicate the subpel filters 2016-11-15 15:10:03 -05:00
vp9dsp.c aarch64: vp9: Add NEON optimizations of VP9 MC functions 2016-11-15 15:10:03 -05:00
vp9dsp.h aarch64: vp9: Add NEON optimizations of VP9 MC functions 2016-11-15 15:10:03 -05:00
vp56.c
vp56.h
vp56data.c
vp56data.h
vp56dsp.c
vp56dsp.h
vp56rac.c
vqavideo.c
wavpack.c avcodec/wavpack: Treat the first block coding too many channels as an error 2016-12-07 13:16:32 +01:00
wavpack.h
wavpackenc.c
wavpackenc.h
webp.c
webvttdec.c
webvttenc.c
wma_common.c
wma_common.h
wma_freqs.c
wma_freqs.h
wma.c
wma.h
wmadata.h
wmadec.c
wmaenc.c
wmalosslessdec.c
wmaprodata.h
wmaprodec.c avcodec/wmaprodec: cleanup extradata dumping 2016-12-22 09:47:47 +01:00
wmavoice_data.h
wmavoice.c wmavoice: validate block alignment 2017-01-03 00:52:55 +01:00
wmv2.c
wmv2.h
wmv2data.c
wmv2data.h
wmv2dec.c
wmv2dsp.c avcodec/mips: version 1 of wmv2dsp optimizations for loongson mmi 2016-12-13 03:47:04 +01:00
wmv2dsp.h avcodec/mips: version 1 of wmv2dsp optimizations for loongson mmi 2016-12-13 03:47:04 +01:00
wmv2enc.c
wnv1.c
wrapped_avframe.c
ws-snd1.c
xan.c
xbmdec.c
xbmenc.c
xface.c
xface.h
xfacedec.c
xfaceenc.c
xiph.c
xiph.h
xl.c
xsubdec.c
xsubenc.c
xvididct.c
xvididct.h
xvmc_internal.h
xvmc.h
xwd.h
xwddec.c
xwdenc.c
xxan.c
y41pdec.c
y41penc.c
ylc.c avcodec/ylc: thread safe initialization is possible with this codec 2016-12-26 20:28:40 +01:00
yop.c
yuv4dec.c
yuv4enc.c
zerocodec.c
zmbv.c
zmbvenc.c