1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-08 13:22:53 +02:00
FFmpeg/libavcodec
Martin Storsjö dd299a2d6d arm: vp9: Add NEON loop filters
This work is sponsored by, and copyright, Google.

The implementation tries to have smart handling of cases
where no pixels need the full filtering for the 8/16 width
filters, skipping both calculation and writeback of the
unmodified pixels in those cases. The actual effect of this
is hard to test with checkasm though, since it tests the
full filtering, and the benefit depends on how many filtered
blocks use the shortcut.

Examples of relative speedup compared to the C version, from checkasm:
                          Cortex       A7     A8     A9    A53
vp9_loop_filter_h_4_8_neon:          2.72   2.68   1.78   3.15
vp9_loop_filter_h_8_8_neon:          2.36   2.38   1.70   2.91
vp9_loop_filter_h_16_8_neon:         1.80   1.89   1.45   2.01
vp9_loop_filter_h_16_16_neon:        2.81   2.78   2.18   3.16
vp9_loop_filter_mix2_h_44_16_neon:   2.65   2.67   1.93   3.05
vp9_loop_filter_mix2_h_48_16_neon:   2.46   2.38   1.81   2.85
vp9_loop_filter_mix2_h_84_16_neon:   2.50   2.41   1.73   2.85
vp9_loop_filter_mix2_h_88_16_neon:   2.77   2.66   1.96   3.23
vp9_loop_filter_mix2_v_44_16_neon:   4.28   4.46   3.22   5.70
vp9_loop_filter_mix2_v_48_16_neon:   3.92   4.00   3.03   5.19
vp9_loop_filter_mix2_v_84_16_neon:   3.97   4.31   2.98   5.33
vp9_loop_filter_mix2_v_88_16_neon:   3.91   4.19   3.06   5.18
vp9_loop_filter_v_4_8_neon:          4.53   4.47   3.31   6.05
vp9_loop_filter_v_8_8_neon:          3.58   3.99   2.92   5.17
vp9_loop_filter_v_16_8_neon:         3.40   3.50   2.81   4.68
vp9_loop_filter_v_16_16_neon:        4.66   4.41   3.74   6.02

The speedup vs C code is around 2-6x. The numbers are quite
inconclusive though, since the checkasm test runs multiple filterings
on top of each other, so later rounds might end up with different
codepaths (different decisions on which filter to apply, based
on input pixel differences). Disabling the early-exit in the asm
doesn't give a fair comparison either though, since the C code
only does the necessary calcuations for each row.

Based on START_TIMER/STOP_TIMER wrapping around a few individual
functions, the speedup vs C code is around 4-9x.

This is pretty similar in runtime to the corresponding routines
in libvpx. (This is comparing vpx_lpf_vertical_16_neon,
vpx_lpf_horizontal_edge_8_neon and vpx_lpf_horizontal_edge_16_neon
to vp9_loop_filter_h_16_8_neon, vp9_loop_filter_v_16_8_neon
and vp9_loop_filter_v_16_16_neon - note that the naming of horizonal
and vertical is flipped between the libraries.)

In order to have stable, comparable numbers, the early exits in both
asm versions were disabled, forcing the full filtering codepath.

                           Cortex           A7      A8      A9     A53
vp9_loop_filter_h_16_8_neon:             597.2   472.0   482.4   415.0
libvpx vpx_lpf_vertical_16_neon:         626.0   464.5   470.7   445.0
vp9_loop_filter_v_16_8_neon:             500.2   422.5   429.7   295.0
libvpx vpx_lpf_horizontal_edge_8_neon:   586.5   414.5   415.6   383.2
vp9_loop_filter_v_16_16_neon:            905.0   784.7   791.5   546.0
libvpx vpx_lpf_horizontal_edge_16_neon: 1060.2   751.7   743.5   685.2

Our version is consistently faster on on A7 and A53, marginally slower on
A8, and sometimes faster, sometimes slower on A9 (marginally slower in all
three tests in this particular test run).

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-11-11 14:16:42 +02:00
..
aarch64 aarch64: h264idct: Use the offset parameter to movrel 2016-11-10 11:18:22 +02:00
arm arm: vp9: Add NEON loop filters 2016-11-11 14:16:42 +02:00
avr32
mips
neon
ppc ppc: avcodec: Drop silly "_ppc" suffixes from files in ppc subdirectories 2016-10-18 00:10:36 +02:00
tests idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
x86 h264_qpel: x86: Move function with only one instance out of template macro 2016-11-08 17:21:02 +01:00
.gitignore
4xm.c
8bps.c
8svx.c
a64colors.h
a64enc.h
a64multienc.c
a64tables.h
aac_ac3_parser.c
aac_ac3_parser.h
aac_adtstoasc_bsf.c
aac_parser.c
aac_tablegen_decl.h
aac_tablegen.c
aac_tablegen.h
aac.h
aacadtsdec.c
aacadtsdec.h
aaccoder.c
aacdec.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
aacdectab.h
aacenc.c
aacenc.h
aacps_tablegen.c
aacps_tablegen.h
aacps.c
aacps.h
aacpsdata.c
aacpsdsp.c
aacpsdsp.h
aacpsy.c
aacsbr.c aac: Drop broken cruft 2016-08-17 12:16:42 +02:00
aacsbr.h
aacsbrdata.h
aactab.c
aactab.h aactab: Move extern keyword to the front of array declarations 2016-11-02 10:33:36 +01:00
aandcttab.c
aandcttab.h
aasc.c
ac3_parser.c
ac3_parser.h
ac3.c
ac3.h
ac3dec_data.c
ac3dec_data.h
ac3dec.c ac3dsp: x86: Replace inline asm for in-decoder downmixing with standalone asm 2016-10-01 00:46:25 +02:00
ac3dec.h ac3dsp: Reverse matrix in/out order in downmix() 2016-10-01 00:45:55 +02:00
ac3dsp.c ac3dsp: x86: Replace inline asm for in-decoder downmixing with standalone asm 2016-10-01 00:46:25 +02:00
ac3dsp.h ac3dsp: x86: Replace inline asm for in-decoder downmixing with standalone asm 2016-10-01 00:46:25 +02:00
ac3enc_fixed.c
ac3enc_float.c audiodsp: reorder arguments for vector_clipf 2016-09-22 09:47:52 +02:00
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 Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
alacenc.c
aliaspixdec.c
aliaspixenc.c
allcodecs.c lavc/vaapi: Add VP8 decode hwaccel 2016-09-08 21:58:22 +01:00
alsdec.c
amr.h
amrnbdata.h
amrnbdec.c
amrwbdata.h
amrwbdec.c
anm.c
ansi.c
apedec.c
apedsp.h
ass.c
ass.h
assdec.c
assenc.c
asv.c
asv.h
asvdec.c
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
audiodsp.c audiodsp: reorder arguments for vector_clipf 2016-09-22 09:47:52 +02:00
audiodsp.h audiodsp: reorder arguments for vector_clipf 2016-09-22 09:47:52 +02:00
aura.c
avcodec.h lavc: bsf: Document input/output codecparam alloc/init process 2016-10-12 11:06:58 -04:00
avfft.c
avfft.h
avpacket.c
avpicture.c
avs.c
bethsoftvideo.c
bethsoftvideo.h
bfi.c
bgmc.c
bgmc.h
bink.c
binkaudio.c
binkdata.h
binkdsp.c
binkdsp.h bink: Have function pointer prototype match implementation 2016-11-02 10:33:39 +01:00
bit_depth_template.c
bitstream_filter.c
bitstream_filters.c lavc: add a bitstream filter for extracting extradata from packets 2016-10-16 20:27:16 +02:00
bitstream.c Use ISO C printf conversion specifiers where appropriate 2016-10-28 13:24:44 +02:00
blockdsp.c blockdsp: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
blockdsp.h blockdsp: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
bmp_parser.c
bmp.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
bmp.h
bmpenc.c
bmvaudio.c
bmvvideo.c Drop unreachable break and return statements 2016-11-03 20:17:12 +01:00
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: Change type of stride parameters to ptrdiff_t 2016-08-26 11:48:15 +02:00
cavs.h cavs: Change type of stride parameters to ptrdiff_t 2016-08-26 11:48:15 +02:00
cavsdata.c
cavsdec.c cavs: Change type of stride parameters to ptrdiff_t 2016-08-26 11:48:15 +02:00
cavsdsp.c cavs: Change type of stride parameters to ptrdiff_t 2016-08-26 11:48:15 +02:00
cavsdsp.h cavs: Change type of stride parameters to ptrdiff_t 2016-08-26 11:48:15 +02:00
cbrt_tablegen.c
cbrt_tablegen.h
cdgraphics.c
cdxl.c
celp_filters.c
celp_filters.h
celp_math.c
celp_math.h
cga_data.c
cga_data.h
chomp_bsf.c
cinepak.c
cljrdec.c
cljrenc.c
cllc.c
cngdec.c
cngenc.c
codec_desc.c av1: Add codec_id and basic demuxing support 2016-08-24 14:45:08 +02:00
cook_parser.c
cook.c audiodsp: reorder arguments for vector_clipf 2016-09-22 09:47:52 +02:00
cookdata.h
copy_block.h copy_block: Change type of array stride parameters to ptrdiff_t 2016-09-04 12:19:47 +02:00
cos_tablegen.c
cscd.c
cyuv.c
d3d11va.c
d3d11va.h
dca_exss.c
dca_parser.c
dca_syncwords.h
dca_xll.c
dca.c
dca.h
dcadata.c
dcadata.h
dcadec.c
dcadsp.c
dcadsp.h
dcahuff.h
dcamath.h
dct32_fixed.c
dct32_float.c
dct32_template.c
dct32.h
dct.c
dct.h idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
dctref.c
dctref.h
dds.c
dfa.c
dirac_parser.c
dirac.c
dirac.h
dnxhd_parser.c
dnxhddata.c
dnxhddata.h
dnxhddec.c Use ISO C printf conversion specifiers where appropriate 2016-10-28 13:24:44 +02:00
dnxhdenc.c dnxhdenc: Drop pointless, commented-out debug output 2016-10-27 12:21:46 +02:00
dnxhdenc.h dnxhdenc: Have function pointer prototype match implementation 2016-11-03 17:43:55 +01:00
dpcm.c
dpx_parser.c
dpx.c
dpxenc.c
dsicinaudio.c
dsicinvideo.c
dss_sp.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 idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
dvbsub_parser.c
dvbsub.c
dvbsubdec.c dvbsubdec: Remove disabled, near-duplicate debug code 2016-08-17 12:16:42 +02:00
dvdata.c
dvdata.h
dvdec.c Use ISO C printf conversion specifiers where appropriate 2016-10-28 13:24:44 +02:00
dvdsub_parser.c
dvdsubdec.c Use ISO C printf conversion specifiers where appropriate 2016-10-28 13:24:44 +02:00
dvdsubenc.c
dvenc.c pixblockdsp: Change type of stride parameters to ptrdiff_t 2016-09-14 14:12:36 +02:00
dxa.c
dxtory.c dxtory: Drop nonsense ISO C printf conversion specifiers for standard types 2016-10-28 13:24:55 +02:00
dxv.c Use ISO C printf conversion specifiers where appropriate 2016-10-28 13:24:44 +02:00
dxva2_h264.c
dxva2_hevc.c hevcdec: split ff_hevc_diag_scan* declarations into a separate header 2016-10-16 20:26:40 +02:00
dxva2_internal.h d3d11va: Use the proper decoding slice index 2016-10-05 18:37:27 +02:00
dxva2_mpeg2.c
dxva2_vc1.c
dxva2.c dxva2: fix surface selection when compiled with both d3d11va and dxva2 2016-11-07 10:05:12 +01:00
dxva2.h
eac3_data.c
eac3_data.h
eac3dec.c
eac3enc.c
eac3enc.h
eacmv.c ea: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:23 +02:00
eaidct.c ea: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:23 +02:00
eaidct.h ea: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:23 +02:00
eamad.c ea: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:23 +02:00
eatgq.c ea: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:23 +02:00
eatgv.c ea: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:23 +02:00
eatqi.c ea: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:23 +02:00
elbg.c
elbg.h
elsdec.c
elsdec.h
error_resilience.c error_resilience: Change type of array stride parameters to ptrdiff_t 2016-09-07 11:30:17 +02:00
error_resilience.h error_resilience: Change type of array stride parameters to ptrdiff_t 2016-09-07 11:30:17 +02:00
escape124.c
escape130.c
exr.c
extract_extradata_bsf.c lavc: add a bitstream filter for extracting extradata from packets 2016-10-16 20:27:16 +02:00
faandct.c faan(i)dct: Kill some disabled code 2016-08-17 12:16:42 +02:00
faandct.h
faanidct.c idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
faanidct.h idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
faxcompr.c
faxcompr.h
fdctdsp.c
fdctdsp.h
fft_fixed.c
fft_float.c
fft_template.c
fft-internal.h
fft.h
ffv1.c
ffv1.h
ffv1dec.c ffv1: Remove broken disabled cruft 2016-08-17 12:16:42 +02:00
ffv1enc.c ffv1: Remove broken disabled cruft 2016-08-17 12:16:42 +02:00
fic.c
file_open.c
flac_parser.c
flac.c
flac.h
flacdata.c
flacdata.h
flacdec.c
flacdsp_lpc_template.c
flacdsp_template.c
flacdsp.c
flacdsp.h
flacenc.c
flashsv.c
flashsvenc.c
flicvideo.c Use avpriv_request_sample() where appropriate 2016-10-29 18:32:21 +02:00
flv.h
flvdec.c
flvenc.c
fmtconvert.c
fmtconvert.h
fraps.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
frwu.c
g2meet.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
g722.c
g722.h
g722dec.c
g722dsp.c
g722dsp.h
g722enc.c
g723_1.c
g723_1.h
g723_1dec.c
g723_1enc.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
g726.c
get_bits.h
gif.c
gifdec.c
golomb.c
golomb.h golomb: Drop disabled cruft 2016-08-17 12:22:29 +02: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 ituh263dec: Have function signature match across declaration and definition 2016-11-03 17:43:55 +01:00
h263data.c
h263data.h
h263dec.c
h263dsp.c
h263dsp.h
h264_cabac.c
h264_cavlc.c
h264_direct.c h264_direct: use the reference mask from the actual reference 2016-08-11 10:52:54 +02:00
h264_loopfilter.c h264_loopfilter: Do not print value of uninitialized variable 2016-10-27 12:21:46 +02:00
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 Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
h264_ps.h
h264_refs.c h264: Kill broken disabled cruft 2016-08-17 12:16:42 +02:00
h264_sei.c
h264_sei.h
h264_slice.c
h264.h
h264addpx_template.c
h264chroma_template.c h264chroma: Change type of stride parameters to ptrdiff_t 2016-09-29 14:48:04 +02:00
h264chroma.c
h264chroma.h h264chroma: Change type of stride parameters to ptrdiff_t 2016-09-29 14:48:04 +02:00
h264data.c
h264data.h
h264dec.c h264dec: support broken files with mp4 extradata/annex b data 2016-10-02 11:41:45 +02:00
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
hap.c
hap.h
hapdec.c
hapenc.c hap: Adjust printf length modifiers to match variable types 2016-10-28 11:22:22 +02:00
hevc_cabac.c hevc: move the SliceType enum to hevc.h 2016-10-21 10:11:20 +02:00
hevc_data.c hevcdec: split ff_hevc_diag_scan* declarations into a separate header 2016-10-16 20:26:40 +02:00
hevc_data.h hevcdec: split ff_hevc_diag_scan* declarations into a separate header 2016-10-16 20:26:40 +02:00
hevc_filter.c hevc: rename hevc.[ch] to hevcdec.[ch] 2016-10-16 20:26:17 +02:00
hevc_mp4toannexb_bsf.c hevcdec: move decoder-independent declarations into a separate header 2016-10-16 20:26:28 +02:00
hevc_mvs.c hevc: move the SliceType enum to hevc.h 2016-10-21 10:11:20 +02:00
hevc_parser.c hevcdec: move decoder-independent declarations into a separate header 2016-10-16 20:26:28 +02:00
hevc_ps_enc.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
hevc_ps.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
hevc_ps.h hevcdec: move parameter set parsing into a separate header 2016-10-16 20:26:47 +02:00
hevc_refs.c hevc: move the SliceType enum to hevc.h 2016-10-21 10:11:20 +02:00
hevc_sei.c Drop unreachable break and return statements 2016-11-03 20:17:12 +01:00
hevc.h hevc: move the SliceType enum to hevc.h 2016-10-21 10:11:20 +02:00
hevcdec.c hevc: Support extradata changes from multiple stsd 2016-11-08 11:22:29 -05:00
hevcdec.h hevc: move the SliceType enum to hevc.h 2016-10-21 10:11:20 +02:00
hevcdsp_template.c hevc: rename hevc.[ch] to hevcdec.[ch] 2016-10-16 20:26:17 +02:00
hevcdsp.c hevc: Add DC IDCT 2016-07-18 15:27:13 +02:00
hevcdsp.h hevc: x86: Add add_residual() SIMD optimizations 2016-10-22 17:33:35 +02:00
hevcpred_template.c hevc: rename hevc.[ch] to hevcdec.[ch] 2016-10-16 20:26:17 +02:00
hevcpred.c hevc: rename hevc.[ch] to hevcdec.[ch] 2016-10-16 20:26:17 +02:00
hnm4video.c
hpel_template.c
hpeldsp.c
hpeldsp.h hpeldsp: Explain why put_no_rnd_pixels_tab is larger than necessary 2016-07-25 19:38:18 +02:00
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
huffman.c
huffman.h
huffyuv.c
huffyuv.h
huffyuvdec.c
huffyuvdsp.c huffyuvdsp: Reenable PPC optimizations 2016-10-02 17:13:36 +02:00
huffyuvdsp.h
huffyuvenc.c
huffyuvencdsp.c
huffyuvencdsp.h
idcinvideo.c
idctdsp.c idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
idctdsp.h idct: Have function pointer prototype match implementation 2016-11-02 10:33:39 +01:00
iff.c
iirfilter.c iir_filter: Change type of array stride parameters to ptrdiff_t 2016-09-07 11:30:18 +02:00
iirfilter.h iir_filter: Change type of array stride parameters to ptrdiff_t 2016-09-07 11:30:18 +02:00
imc.c
imcdata.h
imdct15.c
imdct15.h
imgconvert.c
imx_dump_header_bsf.c
indeo2.c
indeo2data.h
indeo3.c Drop unreachable break and return statements 2016-11-03 20:17:12 +01:00
indeo3data.h
indeo4.c
indeo4data.h
indeo5.c
indeo5data.h
intelh263dec.c
internal.h
interplayvideo.c
intrax8.c intrax8: Have function signature match across declaration and definition 2016-11-03 15:50:48 +01:00
intrax8.h
intrax8dsp.c intrax8: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
intrax8dsp.h intrax8: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
intrax8huf.h
ituh263dec.c
ituh263enc.c
ivi_dsp.c indeo: Change type of array pitch parameters to ptrdiff_t 2016-09-04 11:57:15 +02:00
ivi_dsp.h indeo: Change type of array pitch parameters to ptrdiff_t 2016-09-04 11:57:15 +02:00
ivi.c indeo: Change type of array pitch parameters to ptrdiff_t 2016-09-04 11:57:15 +02:00
ivi.h indeo: Change type of array pitch parameters to ptrdiff_t 2016-09-04 11:57:15 +02:00
jfdctfst.c
jfdctint_template.c jfdct: Kill broken cruft 2016-08-17 12:16:42 +02:00
jfdctint.c
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 idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
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
libdcadec.c
libfaac.c
libfdk-aacdec.c
libfdk-aacenc.c
libgsmdec.c
libgsmenc.c
libilbc.c
libkvazaar.c
libmp3lame.c
libopencore-amr.c
libopenh264.c
libopenh264.h
libopenh264dec.c
libopenh264enc.c
libopenjpegdec.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
libopenjpegenc.c
libopus.c
libopus.h
libopusdec.c
libopusenc.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
libschroedinger.c
libschroedinger.h
libschroedingerdec.c
libschroedingerenc.c
libspeexdec.c
libspeexenc.c
libtheoraenc.c
libtwolame.c
libvo-aacenc.c
libvo-amrwbenc.c
libvorbis.c
libvpx.c
libvpx.h
libvpxdec.c libvpx: Cast a pointer to const to squelch a warning 2016-08-26 13:25:59 +02:00
libvpxenc.c vpx: Support color range 2016-07-23 08:27:29 +02:00
libwavpackenc.c
libwebpenc.c
libx264.c
libx265.c libx265: Add option to force IDR frames 2016-11-07 10:16:10 +02:00
libxavs.c
libxvid_rc.c libxvid: Check return value of write() call 2016-11-11 10:17:07 +01:00
libxvid.c
libxvid.h ratecontrol: Move Xvid-related functions to the place they are actually used 2016-07-20 18:59:36 +02:00
ljpegenc.c
loco.c
log2_tab.c
lpc.c
lpc.h
lsp.c
lsp.h
lzf.c lzf: update pointer p after realloc 2016-11-07 22:42:00 +01:00
lzf.h
lzw.c
lzw.h
lzwenc.c
mace.c
magicyuv.c
Makefile lavc: add a bitstream filter for extracting extradata from packets 2016-10-16 20:27:16 +02:00
mathops.h mathops: Drop disabled alternative mid_pred() implementation 2016-08-17 12:16:42 +02:00
mathtables.c
mdct_fixed.c
mdct_float.c
mdct_template.c
mdec.c
me_cmp.c
me_cmp.h
metasound_data.c
metasound_data.h
metasound.c
mimic.c mimic: do not release the newly obsolete reference at the end of decoding 2016-07-29 15:59:48 +02:00
mjpeg2jpeg_bsf.c
mjpeg_parser.c
mjpeg.h
mjpega_dump_header_bsf.c
mjpegbdec.c
mjpegdec.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +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
mmaldec.c mmaldec: convert to stdatomic 2016-10-02 19:35:12 +02:00
mmvideo.c
motion_est_template.c
motion_est.c
motion_est.h
motionpixels_tablegen.c
motionpixels_tablegen.h
motionpixels.c
movsub_bsf.c
mpc7.c
mpc7data.h
mpc8.c
mpc8data.h
mpc8huff.h
mpc.c
mpc.h
mpcdata.h
mpeg4audio.c
mpeg4audio.h
mpeg4data.h
mpeg4video_parser.c
mpeg4video_parser.h
mpeg4video.c
mpeg4video.h
mpeg4videodec.c
mpeg4videoenc.c mpeg4videoenc: Kill non-compiling disabled cruft 2016-08-17 12:16:42 +02:00
mpeg12.c
mpeg12.h
mpeg12data.c
mpeg12data.h
mpeg12dec.c
mpeg12enc.c
mpeg12framerate.c
mpeg12vlc.h
mpeg_er.c
mpeg_er.h
mpegaudio_parser.c
mpegaudio_tablegen.c
mpegaudio_tablegen.h
mpegaudio.c
mpegaudio.h
mpegaudiodata.c
mpegaudiodata.h
mpegaudiodec_fixed.c
mpegaudiodec_float.c
mpegaudiodec_template.c mpegaudio: Do not print value of uninitialized variable 2016-10-27 12:21:46 +02:00
mpegaudiodecheader.c
mpegaudiodecheader.h
mpegaudiodectab.h
mpegaudiodsp_data.c
mpegaudiodsp_fixed.c
mpegaudiodsp_float.c
mpegaudiodsp_template.c mpegaudiodsp: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:24 +02:00
mpegaudiodsp.c
mpegaudiodsp.h mpegaudiodsp: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:24 +02:00
mpegaudioenc.c
mpegaudiotab.h
mpegpicture.c
mpegpicture.h
mpegutils.c
mpegutils.h
mpegvideo_enc.c mpegvideo_enc: use the new encoding API for b_strategy=2 2016-09-28 10:01:52 +02:00
mpegvideo_motion.c mpegvideo_motion: Handle edge emulation even without unrestricted_mv 2016-09-16 16:28:07 +02:00
mpegvideo_parser.c
mpegvideo_xvmc.c
mpegvideo.c Fix instances of broken indentation found by gcc 6 2016-07-31 08:19:27 +02:00
mpegvideo.h
mpegvideodata.c
mpegvideodata.h
mpegvideodsp.c
mpegvideodsp.h
mpegvideoencdsp.c mpegvideo: Kill some disabled code 2016-08-17 12:16:42 +02:00
mpegvideoencdsp.h
mqc.c
mqc.h
mqcdec.c
msgsmdec.c
msgsmdec.h
msmpeg4.c
msmpeg4.h
msmpeg4data.c
msmpeg4data.h
msmpeg4dec.c msmpeg4: Drop disabled debug cruft 2016-08-17 12:16:42 +02:00
msmpeg4enc.c msmpeg4: Drop disabled debug cruft 2016-08-17 12:16:42 +02:00
msrle.c
msrledec.c
msrledec.h
mss1.c
mss2.c mss*: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:24 +02:00
mss2dsp.c mss*: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:24 +02:00
mss2dsp.h mss*: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:24 +02:00
mss3.c mss*: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:24 +02:00
mss4.c mss*: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:24 +02:00
mss12.c mss*: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:24 +02:00
mss12.h mss*: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:24 +02:00
mss34dsp.c mss*: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:24 +02:00
mss34dsp.h mss*: Change type of array stride parameters to ptrdiff_t 2016-09-29 17:54:24 +02:00
msvideo1.c
mvcdec.c
mxpegdec.c
nellymoser.c
nellymoser.h
nellymoserdec.c
nellymoserenc.c
noise_bsf.c
nuv.c
nvenc_h264.c nvenc: Extended rate-control support as provided by SDK 7 2016-09-24 19:03:10 +02:00
nvenc_hevc.c nvenc: Extended rate-control support as provided by SDK 7 2016-09-24 19:03:10 +02:00
nvenc.c nvenc: Fix error log 2016-10-09 20:58:10 +02:00
nvenc.h nvenc: Extended rate-control support as provided by SDK 7 2016-09-24 19:03:10 +02:00
omx.c
on2avc.c
on2avcdata.c
on2avcdata.h
options_table.h lavc: Add hevc main10 profile to avconv cli 2016-11-08 11:22:29 -05:00
options.c lavc: initialize AVCodecContext.sw_pix_fmt properly 2016-07-22 19:08:13 +02:00
opus_celt.c
opus_parser.c
opus_silk.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
opus.c
opus.h
opusdec.c
pafaudio.c
pafvideo.c
pamenc.c
parser.c
parser.h
pcm_tablegen.c
pcm_tablegen.h
pcm-bluray.c
pcm-dvd.c
pcm.c
pcx.c pcx: use the bytestream2 API for reading from input 2016-08-18 17:06:46 +02:00
pcxenc.c
pel_template.c
pgssubdec.c
pictordec.c
pixblockdsp_template.c pixblockdsp: Change type of stride parameters to ptrdiff_t 2016-09-14 14:12:36 +02:00
pixblockdsp.c pixblockdsp: Change type of stride parameters to ptrdiff_t 2016-09-14 14:12:36 +02:00
pixblockdsp.h pixblockdsp: Have function pointer prototype match implementation 2016-11-03 17:43:55 +01:00
pixels.h
png_parser.c
png.c
png.h
pngdec.c
pngdsp.c
pngdsp.h
pngenc.c
pnm_parser.c pnm_parser: Drop broken disabled cruft 2016-08-17 12:16:42 +02:00
pnm.c
pnm.h
pnmdec.c
pnmenc.c
profiles.c
profiles.h
proresdata.c
proresdata.h
proresdec.c
proresdsp.c prores: Change type of stride parameters to ptrdiff_t 2016-08-26 11:50:21 +02:00
proresdsp.h prores: Change type of stride parameters to ptrdiff_t 2016-08-26 11:50:21 +02:00
proresenc.c prores: Change type of stride parameters to ptrdiff_t 2016-08-26 11:50:21 +02:00
psymodel.c
psymodel.h
pthread_frame.c pthread_frame: Unreference hw_frames_ctx on per-thread codec contexts 2016-11-10 20:36:11 +00:00
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 Fix instances of broken indentation found by gcc 6 2016-07-31 08:19:27 +02:00
qdm2data.h
qdrw.c
qpeg.c qpeg: fix an off by 1 error in the MV check 2016-08-18 17:06:46 +02:00
qpel_template.c
qpeldsp.c
qpeldsp.h
qsv_api.c
qsv_internal.h qsv{enc,dec}: extend the internal frame allocator 2016-11-07 12:48:00 +01:00
qsv.c qsv{enc,dec}: extend the internal frame allocator 2016-11-07 12:48:00 +01:00
qsv.h
qsvdec_h2645.c
qsvdec_mpeg2.c
qsvdec.c qsv{enc,dec}: extend the internal frame allocator 2016-11-07 12:48:00 +01:00
qsvdec.h
qsvenc_h264.c qsvenc: add support for p010 2016-07-22 19:08:13 +02:00
qsvenc_hevc.c hevcdec: move decoder-independent declarations into a separate header 2016-10-16 20:26:28 +02:00
qsvenc_mpeg2.c
qsvenc.c qsv{enc,dec}: extend the internal frame allocator 2016-11-07 12:48:00 +01:00
qsvenc.h
qtrle.c
qtrleenc.c
r210dec.c
ra144.c
ra144.h
ra144dec.c
ra144enc.c
ra288.c
ra288.h
ralf.c
ralfdata.h
rangecoder.c
rangecoder.h rangecoder: Kill non-compiling disabled cruft 2016-08-17 12:16:42 +02:00
ratecontrol.c ratecontrol: Reorder functions to avoid forward declarations 2016-07-20 19:03:31 +02:00
ratecontrol.h ratecontrol: Move Xvid-related functions to the place they are actually used 2016-07-20 18:59:36 +02:00
raw.c
raw.h
rawdec.c
rawenc.c
rdft.c
rdft.h
rectangle.h
remove_extradata_bsf.c
rl2.c
rl.c
rl.h
rle.c
rle.h
rnd_avg.h
roqaudioenc.c
roqvideo.c
roqvideo.h
roqvideodec.c Use avpriv_request_sample() where appropriate 2016-10-29 18:32:21 +02:00
roqvideoenc.c roqvideoenc: Drop broken disabled cruft 2016-08-17 12:16:42 +02:00
rpza.c
rscc.c rscc: Support palette format 2016-10-02 15:42:03 -04: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
rv40data.h
rv40dsp.c h264chroma: Change type of stride parameters to ptrdiff_t 2016-09-29 14:48:04 +02:00
rv40vlc2.h
s302m.c
sanm.c Drop unreachable break and return statements 2016-11-03 20:17:12 +01:00
sbr.h
sbrdsp.c sbrdsp: Move a misplaced #endif directive to the right spot 2016-08-03 08:26:40 +02:00
sbrdsp.h
screenpresso.c
sgi.h
sgidec.c
sgienc.c
sgirledec.c
shorten.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
simple_idct_template.c idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
simple_idct.c idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
simple_idct.h idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
sinewin_tablegen.c
sinewin_tablegen.h
sinewin.c
sinewin.h
sipr16k.c
sipr16kdata.h
sipr.c
sipr.h
siprdata.h
smacker.c
smc.c
snappy.c
snappy.h
sp5x.h
sp5xdec.c
srtdec.c srt: Adjust signedness of sscanf format strings 2016-10-28 13:28:36 +02:00
startcode.c
startcode.h
sunrast.c
sunrast.h
sunrastenc.c
svq1_cb.h
svq1_vlc.h
svq1.c
svq1.h
svq1dec.c svq1dec: Change type of array pitch parameters to ptrdiff_t 2016-09-04 11:57:15 +02:00
svq1enc_cb.h
svq1enc.c
svq1enc.h
svq3.c svq3: Drop unused function dctcoef_get() 2016-11-03 15:52:12 +01:00
svq13.c
synth_filter.c
synth_filter.h
tableprint.h
tak_parser.c
tak.c
tak.h
takdec.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
targa.c
targa.h
targaenc.c
tdsc.c tdsc: use the new decoding API 2016-09-28 10:01:52 +02:00
texturedsp.c
texturedsp.h
texturedspenc.c
thread.h
tiertexseqv.c
tiff.c
tiff.h
tiffenc.c
tmv.c
tpeldsp.c
tpeldsp.h
truemotion1.c
truemotion1data.h
truemotion2.c
truemotion2rt.c
truespeech_data.h
truespeech.c
tscc2.c
tscc2data.h
tscc.c
tta.c
twinvq_data.h
twinvq.c
twinvq.h
twinvqdec.c
txd.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
ulti_cb.h
ulti.c
unary.h
utils.c Add GBRAP12 pixel format support 2016-10-12 21:33:34 +02:00
utvideo.c
utvideo.h utvideo: Change type of array stride parameters to ptrdiff_t 2016-09-08 13:51:30 +02:00
utvideodec.c utvideo: Change type of array stride parameters to ptrdiff_t 2016-09-08 13:51:30 +02:00
utvideoenc.c utvideo: Change type of array stride parameters to ptrdiff_t 2016-09-08 13:51:30 +02:00
v210dec.c
v210enc.c
v210enc.h
v210x.c
v410dec.c
v410enc.c
vaapi_decode.c vaapi_decode: Remove vestigial unmap code 2016-10-24 20:17:47 +01:00
vaapi_decode.h lavc: Remove old vaapi decode infrastructure 2016-08-30 22:16:01 +01:00
vaapi_encode_h26x.c
vaapi_encode_h26x.h
vaapi_encode_h264.c vaapi_h264: Write bitstream restriction fields 2016-10-02 20:23:18 +01:00
vaapi_encode_h265.c hevc: move the SliceType enum to hevc.h 2016-10-21 10:11:20 +02:00
vaapi_encode_mjpeg.c vaapi_encode: Check packed header capabilities 2016-09-28 22:54:11 +01:00
vaapi_encode.c vaapi_encode: Write sequence header as extradata 2016-10-17 21:07:25 +01:00
vaapi_encode.h vaapi_encode: Write sequence header as extradata 2016-10-17 21:07:25 +01:00
vaapi_h264.c vaapi_h264: fix RefPicList[] field flags. 2016-10-24 20:17:47 +01:00
vaapi_mpeg2.c vaapi_mpeg2: Convert to use the new VAAPI hwaccel code 2016-08-30 21:45:59 +01:00
vaapi_mpeg4.c vaapi_mpeg4: Convert to use the new VAAPI hwaccel code 2016-08-30 21:45:59 +01:00
vaapi_vc1.c vaapi_vc1: Convert to use the new VAAPI hwaccel code 2016-08-30 21:45:59 +01:00
vaapi_vp8.c vaapi_vp8: Explicitly include libva vp8 decode header 2016-09-09 18:56:18 +01:00
vaapi.h lavc: Remove old vaapi decode infrastructure 2016-08-30 22:16:01 +01:00
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 vc1: check that slices have a positive height 2016-08-18 17:06:46 +02:00
vc1dsp.c h264chroma: Change type of stride parameters to ptrdiff_t 2016-09-29 14:48:04 +02:00
vc1dsp.h idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
vcr1.c
vda_h264.c
vda_internal.h
vda.c
vda.h
vdpau_h264.c
vdpau_hevc.c hevcdec: split ff_hevc_diag_scan* declarations into a separate header 2016-10-16 20:26:40 +02:00
vdpau_internal.h
vdpau_mpeg4.c
vdpau_mpeg12.c
vdpau_vc1.c
vdpau.c
vdpau.h
version.h lavc: Add hevc main10 profile to avconv cli 2016-11-08 11:22:29 -05:00
videodsp_template.c
videodsp.c
videodsp.h
vima.c
vlc.h
vmdaudio.c
vmdvideo.c
vmnc.c vmnc: check that subrectangles fit into their containing rectangles 2016-08-18 17:06:46 +02:00
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 vp3: Change type of stride parameters to ptrdiff_t 2016-08-26 11:36:26 +02:00
vp3dsp.h vp3: Change type of stride parameters to ptrdiff_t 2016-08-26 11:36:26 +02:00
vp5.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
vp5data.h
vp6.c vp56: Separate VP5 and VP6 dsp initialization 2016-08-26 11:50:22 +02:00
vp6data.h
vp6dsp.c vp56: Change type of stride parameters to ptrdiff_t 2016-08-26 11:36:26 +02:00
vp8_parser.c
vp8.c lavc/vaapi: Add VP8 decode hwaccel 2016-09-08 21:58:22 +01:00
vp8.h vp8: Add hwaccel hooks 2016-09-08 21:58:22 +01:00
vp8data.h
vp8dsp.c
vp8dsp.h
vp9.c vp9: ignore reference segmentation map if error_resilience flag is set. 2016-10-04 10:54:07 +02:00
vp9.h aarch64: vp9: Add NEON optimizations of VP9 MC functions 2016-11-10 11:15:56 +02:00
vp9block.c aarch64: vp9: Add NEON optimizations of VP9 MC functions 2016-11-10 11:15:56 +02:00
vp9data.c
vp9data.h
vp9dsp.c aarch64: vp9: Add NEON optimizations of VP9 MC functions 2016-11-10 11:15:56 +02:00
vp9mvs.c vp9: add frame threading 2016-08-11 10:54:44 +02:00
vp9prob.c
vp56.c vp56: Separate VP5 and VP6 dsp initialization 2016-08-26 11:50:22 +02:00
vp56.h vp56: Separate VP5 and VP6 dsp initialization 2016-08-26 11:50:22 +02:00
vp56data.c
vp56data.h
vp56dsp.c vp56: Separate VP5 and VP6 dsp initialization 2016-08-26 11:50:22 +02:00
vp56dsp.h vp56: Separate VP5 and VP6 dsp initialization 2016-08-26 11:50:22 +02:00
vp56rac.c
vqavideo.c
wavpack.c
webp.c
wma_common.c
wma_common.h
wma_freqs.c
wma_freqs.h
wma.c wma: Kill non-compiling disabled cruft 2016-08-17 12:16:42 +02:00
wma.h
wmadata.h
wmadec.c
wmaenc.c wma: Kill non-compiling disabled cruft 2016-08-17 12:16:42 +02:00
wmalosslessdec.c
wmaprodata.h
wmaprodec.c
wmavoice_data.h
wmavoice.c wmavoice: Simplify GetBitContext initialization 2016-08-30 22:06:47 +02:00
wmv2.c
wmv2.h
wmv2data.c
wmv2data.h
wmv2dec.c
wmv2dsp.c idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
wmv2dsp.h idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
wmv2enc.c
wnv1.c
wrapped_avframe.c
ws-snd1.c
xan.c
xbmdec.c
xbmenc.c
xiph.c
xiph.h
xl.c
xsubdec.c
xsubenc.c
xvididct.c idct: Change type of array stride parameters to ptrdiff_t 2016-09-29 14:48:03 +02:00
xvididct.h
xvmc_internal.h
xvmc.h
xwd.h
xwddec.c Use avpriv_report_missing_feature() where appropriate 2016-11-08 17:54:34 +01:00
xwdenc.c
xxan.c
yop.c
zerocodec.c
zmbv.c
zmbvenc.c