- 05 Aug, 2014 4 commits
-
-
Michael Niedermayer authored
* commit '701e8b42': vc-1: Optimise parser (with special attention to ARM) Conflicts: libavcodec/vc1_parser.c See: a0d7f9ecMerged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit 'adf8227c': vc-1: Add platform-specific start code search routine to VC1DSPContext. Conflicts: configure libavcodec/arm/vc1dsp_init_arm.c libavcodec/vc1dsp.c libavcodec/vc1dsp.h See: 9d8ecdd8Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit 'db7f1c7c': h264: Move start code search functions into separate source files. Conflicts: libavcodec/arm/Makefile libavcodec/arm/h264dsp_init_arm.c libavcodec/h264_parser.c libavcodec/h264dsp.c libavcodec/startcode.c libavcodec/startcode.h See: 270cede3Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
- 04 Aug, 2014 36 commits
-
-
Bernd Kuhls authored
After the removal of all Blackfin architecture optimizations in http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b55d3bbeed375f7b74442c4dd274d116a3e3d2e1 some includes were left behind leading to a compile error: CC libavformat/adtsenc.o In file included from ./libavcodec/get_bits.h:35, from ./libavcodec/ac3_parser.h:27, from libavformat/ac3dec.c:23: ./libavcodec/mathops.h:43:29: error: bfin/mathops.h: No such file or directory This compile error was found by buildroot autobuild system: http://autobuild.buildroot.net/results/ae0/ae056f267e907091d09d2a1546d6f1ae02fa23b9/Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
Fixes Ticket644 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
Thilo Borgmann authored
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit 'eee813ee': fate: Only generate tests/pixfmts.mak if some pixfmts fate test is run Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit '990e2f35': avcodec: Suppress deprecation warnings from DTG code scheduled for removal Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit '086a5418': fate: png-suite Conflicts: tests/fate/image.mak Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit '60cbd6ad': tiff: support reading gray+alpha at 8 bits Conflicts: libavcodec/tiff.c See: f746f379Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit 'bcc5f69b': tiff: support reading gray+alpha at 16 bits Conflicts: libavcodec/tiff.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit 'e64f0bf2': png: support reading gray+alpha at 16 bits Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit '2257165b': png: disable broken MMX/SIMD code for bpp <= 2 See: d1c48025Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit 'f84a1b59': swscale: support AV_PIX_FMT_YA16 as input Conflicts: libswscale/swscale_unscaled.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Ben Avison authored
The previous implementation of the parser made four passes over each input buffer (reduced to two if the container format already guaranteed the input buffer corresponded to frames, such as with MKV). But these buffers are often 200K in size, certainly enough to flush the data out of L1 cache, and for many CPUs, all the way out to main memory. The passes were: 1) locate frame boundaries (not needed for MKV etc) 2) copy the data into a contiguous block (not needed for MKV etc) 3) locate the start codes within each frame 4) unescape the data between start codes After this, the unescaped data was parsed to extract certain header fields, but because the unescape operation was so large, this was usually also effectively operating on uncached memory. Most of the unescaped data was simply thrown away and never processed further. Only step 2 - because it used memcpy - was using prefetch, making things even worse. This patch reorganises these steps so that, aside from the copying, the operations are performed in parallel, maximising cache utilisation. No more than the worst-case number of bytes needed for header parsing is unescaped. Most of the data is, in practice, only read in order to search for a start code, for which optimised implementations already existed in the H264 codec (notably the ARM version uses prefetch, so we end up doing both remaining passes at maximum speed). For MKV files, we know when we've found the last start code of interest in a given frame, so we are able to avoid doing even that one remaining pass for most of the buffer. In some use-cases (such as the Raspberry Pi) video decode is handled by the GPU, but the entire elementary stream is still fed through the parser to pick out certain elements of the header which are necessary to manage the decode process. As you might expect, in these cases, the performance of the parser is significant. To measure parser performance, I used the same VC-1 elementary stream in either an MPEG-2 transport stream or a MKV file, and fed it through avconv with -c:v copy -c:a copy -f null. These are the gperftools counts for those streams, both filtered to only include vc1_parse() and its callees, and unfiltered (to include the whole binary). Lower numbers are better: Before After File Filtered Mean StdDev Mean StdDev Confidence Change M2TS No 861.7 8.2 650.5 8.1 100.0% +32.5% MKV No 868.9 7.4 731.7 9.0 100.0% +18.8% M2TS Yes 250.0 11.2 27.2 3.4 100.0% +817.9% MKV Yes 149.0 12.8 1.7 0.8 100.0% +8526.3% Yes, that last case shows vc1_parse() running 86 times faster! The M2TS case does show a larger absolute improvement though, since it was worse to begin with. This patch has been tested with the FATE suite (albeit on x86 for speed). Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
-
Ben Avison authored
Initialise VC1DSPContext for parser as well as for decoder. Note, the VC-1 code doesn't actually use the function pointer yet. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
-
Ben Avison authored
This permits re-use with parsers for codecs which use similar start codes. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
-
Michael Niedermayer authored
* commit 'e9abafca': avutil: add AV_PIX_FMT_YA16 pixel format Conflicts: libavutil/pixdesc.c libavutil/pixfmt.h libavutil/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit 'e96c3b81': avutil: rename AV_PIX_FMT_Y400A to AV_PIX_FMT_YA8 Conflicts: libavcodec/libopenjpegdec.c libavcodec/libopenjpegenc.c libavcodec/raw.c libavutil/pixdesc.c libavutil/pixfmt.h libavutil/version.h libswscale/swscale_internal.h libswscale/swscale_unscaled.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit 'e0d73fda': avutil: add alias names for gray 8/16 colour spaces Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit 'd2962e9f': pixdesc: Support pixelformat aliases Conflicts: doc/APIchanges libavutil/pixdesc.c libavutil/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit '5420099c': swscale: correctly pad destination buffer in rgb conversion Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Diego Biurrun authored
-
Diego Biurrun authored
-
Michael Niedermayer authored
Disfavor video streams with unknown resolution and no packets Fixes seeking in audio-only-speex.flv Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
Christophe Gisquet authored
The unpacks/shuffles later on makes it unnecessary. Before: 1508 decicycles in h, 2096759 runs, 393 skips 2512 decicycles in v, 2095422 runs, 1730 skips After: 1477 decicycles in h, 2096745 runs, 407 skips 2484 decicycles in v, 2095297 runs, 1855 skips Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com> Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
James Almer authored
Signed-off-by: James Almer <jamrial@gmail.com> Reviewed-by: Mickaël Raulet <mraulet@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit '23dfa00b': fate: explicitly set the default THREADS value Conflicts: tests/Makefile Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Michael Niedermayer authored
* commit 'eb9244f2': Add Icecast protocol Conflicts: Changelog configure doc/protocols.texi libavformat/icecast.c libavformat/version.h See: e3dc2c86Merged-by: Michael Niedermayer <michaelni@gmx.at>
-
Vittorio Giovara authored
Every supported format is converted to RGB.
-
Carl Eugen Hoyos authored
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
-
Vittorio Giovara authored
-
Vittorio Giovara authored
-
Vittorio Giovara authored
The decoder was producing different results when ASM was disabled. Based on a long debug session with Kostya.
-
Vittorio Giovara authored
Based on a long debug session with Kostya.
-
Vittorio Giovara authored
-
Vittorio Giovara authored
The rationale is that you have a packed format in form <greyscale sample> <alpha sample> <greyscale sample> <alpha sample> and shortening greyscale to 'G' might make one thing about Greenscale instead. An alias pixel format and color space name are provided for compatibility.
-