summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* armv6: Accelerate butterflies_floatBen Avison2014-07-18
| | | | | | | | | | | | | | I benchmarked the result by measuring the number of gperftools samples that hit anywhere in the AAC decoder (starting from aac_decode_frame()) or specifically in butterflies_float_c() / ff_butterflies_float_vfp() for the same sample AAC stream: Before After Mean StdDev Mean StdDev Confidence Change Audio decode 1542.8 43.7 1470.5 41.5 100.0% +4.9% butterflies_float 130.0 11.9 70.2 12.1 100.0% +85.2% Signed-off-by: Martin Storsjö <martin@martin.st>
* armv6: Accelerate vector_fmul_windowBen Avison2014-07-18
| | | | | | | | | | | | | | I benchmarked the result by measuring the number of gperftools samples that hit anywhere in the AAC decoder (starting from aac_decode_frame()) or specifically in vector_fmul_window_c() / ff_vector_fmul_window_vfp() for the same sample AAC stream: Before After Mean StdDev Mean StdDev Confidence Change Audio decode 1598.2 47.4 1529.2 25.4 100.0% +4.5% vector_fmul_window 244.0 22.1 188.9 22.3 100.0% +29.2% Signed-off-by: Martin Storsjö <martin@martin.st>
* armv6: Accelerate ff_fft_calc for general case (nbits != 4)Ben Avison2014-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | The previous implementation targeted DTS Coherent Acoustics, which only requires nbits == 4 (fft16()). This case was (and still is) linked directly rather than being indirected through ff_fft_calc_vfp(), but now the full range from radix-4 up to radix-65536 is available. This benefits other codecs such as AAC and AC3. The implementaion is based upon the C version, with each routine larger than radix-16 calling a hierarchy of smaller FFT functions, then performing a post-processing pass. This pass benefits a lot from loop unrolling to counter the long pipelines in the VFP. A relaxed calling standard also reduces the overhead of the call hierarchy, and avoiding the excessive inlining performed by GCC probably helps with I-cache utilisation too. I benchmarked the result by measuring the number of gperftools samples that hit anywhere in the AAC decoder (starting from aac_decode_frame()) or specifically in the FFT routines (fft4() to fft512() and pass()) for the same sample AAC stream: Before After Mean StdDev Mean StdDev Confidence Change Audio decode 2245.5 53.1 1599.6 43.8 100.0% +40.4% FFT routines 940.6 22.0 348.1 20.8 100.0% +170.2% Signed-off-by: Martin Storsjö <martin@martin.st>
* armv6: Accelerate ff_imdct_half for general case (mdct_bits != 6)Ben Avison2014-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | The previous implementation targeted DTS Coherent Acoustics, which only requires mdct_bits == 6. This relatively small size lent itself to unrolling the loops a small number of times, and encoding offsets calculated at assembly time within the load/store instructions of each iteration. In the more general case (codecs such as AAC and AC3) much larger arrays are used - mdct_bits == [8, 9, 11]. The old method does not scale for these cases, so more integer registers are used with non-unrolled versions of the loops (and with some stack spillage). The postrotation filter loop is still unrolled by a factor of 2 to permit the double-buffering of some VFP registers to facilitate overlap of neighbouring iterations. I benchmarked the result by measuring the number of gperftools samples that hit anywhere in the AAC decoder (starting from aac_decode_frame()) or specifically in ff_imdct_half_c / ff_imdct_half_vfp, for the same example AAC stream: Before After Mean StdDev Mean StdDev Confidence Change aac_decode_frame 2368.1 35.8 2117.2 35.3 100.0% +11.8% ff_imdct_half_* 457.5 22.4 251.2 16.2 100.0% +82.1% Signed-off-by: Martin Storsjö <martin@martin.st>
* dsputil: Split motion estimation compare bits off into their own contextDiego Biurrun2014-07-17
|
* configure: Assume runtime cpu detection on arm on --target-os=android as wellMartin Storsjö2014-07-17
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* x86: dsputil: Coalesce all init filesDiego Biurrun2014-07-17
| | | | This makes the init files match the structure of the dsputil split.
* avpacket: Check for and return errors in ff_interleave_add_packet()Nidhi Makhijani2014-07-17
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* h264: K&R formatting cosmeticsLuca Barbato2014-07-17
| | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de> Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* h264: Remove some commented-out, broken cruftDiego Biurrun2014-07-16
|
* arm: dsputil: Coalesce all init filesDiego Biurrun2014-07-16
|
* g2meet: allow size changes within original sizesVittorio Giovara2014-07-15
|
* fate: Use the correct, local path to samples for opus reference filesMartin Storsjö2014-07-14
| | | | | | | This fixes running fate in configs where the samples are located in a different path on the target. Signed-off-by: Martin Storsjö <martin@martin.st>
* x86: dsputil: Avoid pointless CONFIG_ENCODERS indirectionDiego Biurrun2014-07-13
| | | | The remaining dsputil bits are encoding-specific anyway.
* ppc: dsputil: Coalesce all init filesDiego Biurrun2014-07-13
|
* examples/output: Remove unused variableDiego Biurrun2014-07-11
| | | | doc/examples/output.c:460:9: warning: unused variable ‘i’
* dsputil: Drop unused bit_depth parameter from all init functionsDiego Biurrun2014-07-11
|
* mov: Clarify tkhd flag settingsLuca Barbato2014-07-11
|
* mov: Do not group tracks if more than one is enabled per typeLuca Barbato2014-07-11
| | | | The specification requires at most 1 track enabled per alternate group.
* hevc: implement pic_output_flag handlingGildas Cocherel2014-07-11
| | | | | | Sample-Id: OPFLAG_B_Qualcomm_1.bit, OPFLAG_C_Qualcomm_1.bit Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: set the keyframe flag on output framesMickaël Raulet2014-07-11
| | | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: Replace nal type chek with equivalent IS_IRAP macroMickaël Raulet2014-07-11
| | | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc_ps: remove a write-only variableAnton Khirnov2014-07-11
|
* cdg: Forward error from avio_size() in read_header() functionNidhi Makhijani2014-07-10
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* mpegts: pass MpegTSContext ptr explicitlyAlexander V. Lukyanov2014-07-10
| | | | | | | | | | | | | | AVFormatContext->priv_data is not always a MpegTSContext, it can be RTSPState when decoding a RTP stream. So it is necessary to pass MpegTSContext pointer explicitly. Within libav, the write_section_data function doesn't actually use the MpegTSContext at all, so this doesn't change anything at the moment (no memory was corrupted before), but it reduces the risk of anybody trying to touch the MpegTSContext via AVFormatContext->priv_data in the future. Signed-off-by: Martin Storsjö <martin@martin.st>
* dsputil: Split off pixel block routines into their own contextDiego Biurrun2014-07-09
|
* hevc: parse display orientation SEI messageVittorio Giovara2014-07-09
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* h264: parse display orientation SEI messageVittorio Giovara2014-07-09
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* display: add matrix flip apiVittorio Giovara2014-07-09
|
* doc: mention option to mix shared/static librariesAndrew Kelley2014-07-09
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* rtpdec: pass an AVFormatContext to ff_parse_fmtp()Anton Khirnov2014-07-09
| | | | Use it for logging, instead of NULL or the stream codec context.
* yuv4mpegenc: do not access AVCodecContext.coded_frameAnton Khirnov2014-07-09
| | | | | | | | Its contents are meaningful only if the stream codec context is the one actually used for encoding, which is often not the case (and is discouraged). Use AVCodecContext.field_order instead.
* nsvdec: remove commented out cruftAnton Khirnov2014-07-09
|
* mov: free the dv demux context with avformat_free_context()Anton Khirnov2014-07-09
|
* mtv: do not set sample_rate for videoAnton Khirnov2014-07-09
|
* oggparsecelt: do not set AVCodecContext.frame_sizeAnton Khirnov2014-07-09
| | | | It is supposed to be set by decoders only.
* adxdec: get rid of an avpriv functionAnton Khirnov2014-07-09
| | | | | The only thing the demuxer needs is the sample rate to set the timebase, which can be simply read with AV_RB32.
* lavc: export DV profile API used by muxer/demuxer as publicAnton Khirnov2014-07-09
|
* avconv: set the output stream timebaseAnton Khirnov2014-07-09
| | | | This is required by the new API.
* avformat: update muxing doxyAnton Khirnov2014-07-09
| | | | The callers should now set the stream timebase, not the codec one.
* cdg: set the keyframe flag on the first packetAnton Khirnov2014-07-09
| | | | Bug-Id: 55
* mov: Remove a variable that is set but never usedMartin Storsjö2014-07-08
| | | | | | This silences a warning with gcc. Signed-off-by: Martin Storsjö <martin@martin.st>
* avplay: Handle pixel aspect ratio properlyMartin Storsjö2014-07-08
| | | | | | | This was broken (left half-implemented) in 354468fc12. CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* nut: Use nut->version in the version range checkLuca Barbato2014-07-08
| | | | | It was wrongly left unchanged when the version field had been introduced. (c94e2e85cb6af8a570d8542a830556243bd32873)
* arm: Avoid using the 'setend' instruction on ARMv7 and newerMartin Storsjö2014-07-08
| | | | | | | | | | This instruction is deprecated on ARMv8, and it is serializing on some ARMv7 cores as well [1]. [1] http://article.gmane.org/gmane.linux.ports.arm.kernel/339293 CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st>
* avformat_new_stream: make the AVCodec parameter constRoman Savchenko2014-07-08
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* af_compand: make sure request_frame always outputs at least one frameAndrew Kelley2014-07-08
| | | | | | | | | | | This fixes a segmentation fault because request_frame in fifo.c assumes that the call to ff_request_frame will populate fifo->root.next. Before, it was possible for request_frame in af_compand to not do this, resulting in a null pointer access. Now, request_frame in af_compand always will return at least one frame or an error, as per the API specifications in avfilter.h for request_frame. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* dsputil: Split off FDCT bits into their own contextDiego Biurrun2014-07-07
|
* libfdk-aacdec: Decode the first AAC frame to reliably identify the bitstreamOmer Osman2014-07-07
| | | | | | | | | | | | For implicit signaling cases (as possible for Spectral Band Replication and Parametric Stereo Tools), the decoder must decode the first frame to correctly identify the stream configuration (as called from avformat_find_stream_info). The mechanism for this is built-in and only requires adding CODEC_CAP_CHANNEL_CONF to the libfdk-aacdec AVCodec struct. Signed-off-by: Omer Osman <omer.osman@iis.fraunhofer.de> Signed-off-by: Martin Storsjö <martin@martin.st>
* smoothstreamingenc: Fix a memory leak on errorsMichael Niedermayer2014-07-07
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>