summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* dca: remove unused decode_hf function and quant_d tablesAlexandra Hájková2015-12-2412-304/+9
| | | | | They were superseded with their integer equivalents. Rename integer decode_hf to decode_hf.
* dca: change the core to work with integer coefficients.Alexandra Hájková2015-12-237-58/+122
| | | | | | | | | | | | The DCA core decoder converts integer coefficients read from the bitstream to floats just after reading them (along with dequantization). All the other steps of the audio reconstruction are done with floats which makes the output for the DTS lossless extension (XLL) actually lossy. This patch changes the DCA core to work with integer coefficients until QMF. At this point the integer coefficients are converted to floats. The coefficients for the LFE channel (lfe_data) are not touched. This is the first step for the really lossless XLL decoding.
* dca: Add math helpers.Alexandra Hájková2015-12-231-0/+42
| | | | They will be used by the integer core decoder.
* checkasm: add fmtconvert testsJanne Grunau2015-12-214-0/+110
|
* checkasm: add synth_filter testJanne Grunau2015-12-214-1/+124
|
* checkasm: add tests for dcadspJanne Grunau2015-12-214-0/+142
|
* checkasm: add float comparison util functionsJanne Grunau2015-12-212-0/+84
|
* x86: checkasm: check for or handle missing cleanup after MMX instructionsJanne Grunau2015-12-214-26/+78
| | | | | | | | Not every asm routine is expected clear the MMX state after returning. It is however a requisite for testing floating point code in checkasm. Annotate functions requiring cleanup with declare_func_emms() and issue emms after the call. The remaining functions are checked for having a cleared MMX state after return.
* arm64: fix inverted register order in transpose_4x4HJanne Grunau2015-12-212-4/+4
| | | | | | Fix related register order issue in ff_h264_idct_add_neon. Found-by: zjh8890 <243186085@qq.com>
* exr: fix out of bounds read in get_codeAndreas Cadhalpun2015-12-161-5/+5
| | | | | | | | This macro unconditionally used out[-1], which causes an out of bounds read, if out is the very beginning of the buffer. Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* opus: Fix typo causing overflow in silk_stabilize_lsfAndreas Cadhalpun2015-12-161-1/+1
| | | | | | | | | | Due to this typo max_center can be too large, causing nlsf to be set to too large values, which in turn can cause nlsf[i - 1] + min_delta[i] to overflow to a negative value, which is not allowed for nlsf and can cause an out of bounds read in silk_lsf2lpc. Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* arm: add ff_int32_to_float_fmul_array8_neonJanne Grunau2015-12-142-0/+41
| | | | | | | | | | | | | | | | | | | | | | | Quite a bit faster than int32_to_float_fmul_array8_c calling ff_int32_to_float_fmul_scalar_neon through FmtConvertContext. Number of cycles per int32_to_float_fmul_array8 call while decoding padded.dts on exynos5422: before after change cortex-a7: 1270 951 -25% cortex-a15: 434 285 -34% checkasm --bench cycle counts: cortex-a15 cortex-a7 int32_to_float_fmul_array8_c: 1730.4 4384.5 int32_to_float_fmul_array8_neon_c: 571.5 1694.3 int32_to_float_fmul_array8_neon: 374.0 1448.8 Interesting are the differences between int32_to_float_fmul_array8_neon_c and int32_to_float_fmul_array8_neon. The former is current behaviour of calling ff_int32_to_float_fmul_scalar_neon repeatedly from the c function, The raw numbers differ since checkasm uses different lengths than the dca decoder.
* arm64: int32_to_float_fmul neon asmJanne Grunau2015-12-145-3/+130
| | | | | | | | | | 3% faster dts decoding on a cortex-a57. cortex-a57 cortex-a53 int32_to_float_fmul_array8_c: 1270.9 4475.6 int32_to_float_fmul_array8_neon: 328.6 569.2 int32_to_float_fmul_scalar_c: 928.5 4119.6 int32_to_float_fmul_scalar_neon: 309.1 524.1
* arm64: port synth_filter_float_neon from armJanne Grunau2015-12-146-3/+147
| | | | | | | | | | | | | | ~25% faster dts decoding overall. The checkasm CPU cycles numbers are not that useful since synth_filter_float() calls FFTContext.imdct_half(). cortex-a57 cortex-a53 synth_filter_float_c: 1866.2 3490.9 synth_filter_float_neon: 915.0 1531.5 With fftc.imdct_half forced to imdct_half_neon: cortex-a57 cortex-a53 synth_filter_float_c: 1718.4 3025.3 synth_filter_float_neon: 926.2 1530.1
* arm64: convert dcadsp neon asm from armJanne Grunau2015-12-145-0/+225
| | | | | | | | | | | | ~2% faster dts decoding overall. cortex-a57 cortex-a53 dca_decode_hf_c: 474.8 1659.9 dca_decode_hf_neon: 225.2 301.1 dca_lfe_fir0_c: 913.2 1537.7 dca_lfe_fir0_neon: 286.8 451.9 dca_lfe_fir1_c: 848.7 1711.5 dca_lfe_fir1_neon: 387.1 506.4
* arm: add a cpu flag for the VFPv2 vector modeJanne Grunau2015-12-149-5/+18
| | | | | | | | | | | | | | The vector mode was deprecated in ARMv7-A/VFPv3 and various cpu implementations do not support it in hardware. Vector mode code will depending the OS either be emulated in software or result in an illegal instruction on cpus which does not support it. This was not really problem in practice since NEON implementations of the same functions are preferred. It will however become a problem for checkasm which tests every cpu flag separately. Since this is a cpu feature newer cpu do not support anymore the behaviour of this flag differs from the other flags. It can be only activated by runtime cpu feature selection.
* x86_64: int32_to_float_fmul_scalar sign extend integer lengthJanne Grunau2015-12-141-0/+3
|
* arm64: add cycle counter supportJanne Grunau2015-12-142-1/+47
| | | | | | The ISB (instruction synchronization barrier) might be too heavy for START/STOPTIMER use but should be more accurate in checkasm where the timing overhead is subtracted.
* libavutil: move FFALIGN macro from common.h to macros.hJanne Grunau2015-12-145-2/+7
| | | | | | | | | Include macros.h explicitly in common.h so that external code using FFALIGN does not break. It was already implicitly included through version.h. Include macros.h in lls.h and internal.h for FFALIGN. lls.h was including common.h only for FFALIGN and internal.h was missing the include for FFALIGN. `make checkheaders` did not catch it because it's an internal header.
* mpegtsenc: add flag to embed an AC-3 ES the DVB wayStefan Pöschel2015-12-141-1/+13
| | | | | | | | | | | | | So far an AC-3 elementary stream is refered to in the PMT according to System A (ATSC). However System B (DVB) has a different way to signal an AC-3 ES within the PMT. This different way can be enabled by a new flag. The flag is more generally named 'system_b' as there are further differences between ATSC and DVB (e.g. the signalling of E-AC-3) which should then also be covered by it in the future. Bug-Id: 73 Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* avresample: Mark avresample_buffer() as pointer to constKip Warner2015-12-144-9/+13
| | | | | | | | That buffer is read only and marking it accordingly let the user passing a constant buffer to it without having a const-correctness warning. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* r3d: fix an invalid read introduced in 6bf4c1dAnton Khirnov2015-12-141-1/+1
|
* rtmpproto: Include the full path as app when "slist=" is foundMartin Storsjö2015-12-131-2/+2
| | | | | | | This matches what librtmp does. This fixes automatic url parsing of crunchyroll urls. Signed-off-by: Martin Storsjö <martin@martin.st>
* vocdec: do not create the stream in read_header()Anton Khirnov2015-12-121-5/+8
| | | | | The stream parameters are not known until we read a packet, so postpone creating it until then.
* vocdec: put the code not shared with other demuxers under appropriate ifdefAnton Khirnov2015-12-121-38/+39
|
* flvdec: do not create any streams in read_header()Anton Khirnov2015-12-121-9/+2
| | | | | | | | | | | The current muxer behaviour is to create streams in read_header() based on the audio/video presence flags, but fill in the stream parameters later when we actually get some packets for them. This is rather shady, since other demuxers set the stream parameters immediately when the stream is created and do not touch the stream codec context after that. Change the flv demuxer to behave in the same way as other similar demuxers -- create the streams only when we get a packet for them.
* lavc: make avpriv_mpa_decode_header private on next bumpAnton Khirnov2015-12-123-2/+15
| | | | It's not used by anything outside of lavc anymore.
* mp3dec: replace avpriv_mpa_decode_header with avpriv_mpegaudio_decode_headerAnton Khirnov2015-12-121-11/+6
| | | | | The latter does not require a full AVCodecContext and still provides all the functionality needed here.
* mpegaudiodecheader: check the header in avpriv_mpegaudio_decode_headerAnton Khirnov2015-12-125-24/+29
| | | | | | Almost all the places from which this function is called already check the header manually and in the two that don't (the mp3 muxer) the check should not cause any problems.
* lavc: get the profile name through the codec descriptor in avcodec_string()Anton Khirnov2015-12-121-11/+1
|
* lavc: add profiles to AVCodecDescriptorAnton Khirnov2015-12-1215-90/+219
| | | | | The profiles are a property of the codec, so it makes sense to export them through AVCodecDescriptors, not just the codec implementations.
* lavc: print the name of the codec, not its implementation, in avcodec_stringAnton Khirnov2015-12-121-2/+5
|
* r3d: do not create the audio stream until we know the sample rateAnton Khirnov2015-12-121-12/+25
|
* ff_parse_specific_params: do not use AVCodecContext.frame_sizeAnton Khirnov2015-12-121-5/+0
| | | | | | It will not be set unless the muxing codec context is also the encoding context, which is discouraged. When the frame size is not known from av_get_audio_frame_duration(), the fallback should still be good enough.
* rmenc: do not use AVCodecContext.frame_sizeAnton Khirnov2015-12-121-2/+5
| | | | | | It will not be set if the stream codec context is not the encoding context. Use av_get_audio_frame_duration() instead, it should work for all audio codecs supported by the muxer.
* mpegvideo_enc: actually add the side data with vbv_delay to the packetAnton Khirnov2015-12-121-0/+7
| | | | Fixes 2507b5dd674834be7261772996f47ae3b95cca69
* hevcdsp: use a macro for .rodata sectionDave Yeo2015-12-111-1/+1
| | | | | | | fixes assembling on OS/2 Signed-off-by: Dave Yeo <dave.r.yeo@gmail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* openh264: Directly include the deprecation guards headerLuca Barbato2015-12-081-0/+1
| | | | | Make easier to avoid compile failure when reworking the internal headers.
* log: Use a do {} while (0) for tlogLuca Barbato2015-12-081-1/+1
| | | | Avoid the warning `-Wempty-body`.
* matroskadec: Fix sample_aspect_ratio for stereo matroska contentAaron Colwell2015-12-071-2/+34
| | | | | | | | | matroskaenc applies divisors to the display width/height when generating stereo content. This patch adds the corresponding multipliers to matroskadec so that the original sample aspect ratio can be recovered. Signed-off-by: wm4 <nfxjfg@googlemail.com> Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* sgienc: Make sure to initialize skipped header portionsVittorio Giovara2015-12-071-3/+5
| | | | | | | Fix fate tests with asan. Introduced during bytestream2 porting (in revision 62cc8f4d79dad119e8efeaae080a58a8dcb1e89d). Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* lavc: Drop exporting 2-pass encoding statsVittorio Giovara2015-12-075-12/+37
| | | | | | | | | | | | | | These variables are coming from mpegvideoenc where are supposedly used as bit counters on various frame properties. However their use is unclear as they lack documentation, are available only from a very small subset of encoders, and they are hardly used in the wild. Also frame_bits in aacenc is employed in a similar way. Remove this functionality from AVCodecContex, these variable are mostly frame properties, and too few encoders support setting them with anything useful. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* lavc: Deprecate coder_type and its symbolsVittorio Giovara2015-12-0710-15/+181
| | | | | | | | | | Most option values are simply unused or ignored and in practice the majory of codecs only need to check whether to enable rle or not. Add appropriate codec private options which better expose the allowed features. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* h264: do not call frame_start() for missing framesAnton Khirnov2015-12-071-18/+32
| | | | | We do not need to do a full setup like for a real frame, just allocate a buffer and set cur_pic(_ptr).
* aacdec: fix aac_static_table_init() prototypeAnton Khirnov2015-12-071-1/+1
|
* avpacket: use ERANGE instead of EOVERFLOWAnton Khirnov2015-12-071-1/+1
| | | | EOVERFLOW seems to be unavailable on certain platforms.
* rtsp: free opts dictionary on failure of getnameinfoGanesh Ajjanagadde2015-12-071-0/+1
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* movenc-test: add a missing va_end callGanesh Ajjanagadde2015-12-071-0/+1
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* mxfenc: always assume long gopAnton Khirnov2015-12-061-1/+1
| | | | | | Checking the codec context parameters to find out this information is far too unreliable to be useful, so it is safer to assume B-frames are always present.
* lavc: export Dirac parsing API used by the ogg demuxer as publicAnton Khirnov2015-12-066-96/+200
| | | | Also, stop using AVCodecContext for storing the stream parameters.
OpenPOWER on IntegriCloud