summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/ffmpeg/libavcodec/arm/dsputil_init_arm.c
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/ffmpeg/libavcodec/arm/dsputil_init_arm.c')
-rw-r--r--chromium/third_party/ffmpeg/libavcodec/arm/dsputil_init_arm.c38
1 files changed, 25 insertions, 13 deletions
diff --git a/chromium/third_party/ffmpeg/libavcodec/arm/dsputil_init_arm.c b/chromium/third_party/ffmpeg/libavcodec/arm/dsputil_init_arm.c
index 68991fa9c52..c3a48cdecf4 100644
--- a/chromium/third_party/ffmpeg/libavcodec/arm/dsputil_init_arm.c
+++ b/chromium/third_party/ffmpeg/libavcodec/arm/dsputil_init_arm.c
@@ -19,8 +19,13 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <stdint.h>
+
#include "libavutil/attributes.h"
+#include "libavutil/cpu.h"
#include "libavutil/arm/cpu.h"
+#include "libavcodec/avcodec.h"
+#include "libavcodec/dsputil.h"
#include "dsputil_arm.h"
void ff_j_rev_dct_arm(int16_t *data);
@@ -34,43 +39,47 @@ void ff_add_pixels_clamped_arm(const int16_t *block, uint8_t *dest,
int line_size);
/* XXX: those functions should be suppressed ASAP when all IDCTs are
- converted */
+ * converted */
static void j_rev_dct_arm_put(uint8_t *dest, int line_size, int16_t *block)
{
- ff_j_rev_dct_arm (block);
+ ff_j_rev_dct_arm(block);
ff_put_pixels_clamped(block, dest, line_size);
}
+
static void j_rev_dct_arm_add(uint8_t *dest, int line_size, int16_t *block)
{
- ff_j_rev_dct_arm (block);
+ ff_j_rev_dct_arm(block);
ff_add_pixels_clamped(block, dest, line_size);
}
+
static void simple_idct_arm_put(uint8_t *dest, int line_size, int16_t *block)
{
- ff_simple_idct_arm (block);
+ ff_simple_idct_arm(block);
ff_put_pixels_clamped(block, dest, line_size);
}
+
static void simple_idct_arm_add(uint8_t *dest, int line_size, int16_t *block)
{
- ff_simple_idct_arm (block);
+ ff_simple_idct_arm(block);
ff_add_pixels_clamped(block, dest, line_size);
}
-av_cold void ff_dsputil_init_arm(DSPContext *c, AVCodecContext *avctx)
+av_cold void ff_dsputil_init_arm(DSPContext *c, AVCodecContext *avctx,
+ unsigned high_bit_depth)
{
int cpu_flags = av_get_cpu_flags();
ff_put_pixels_clamped = c->put_pixels_clamped;
ff_add_pixels_clamped = c->add_pixels_clamped;
- if (!avctx->lowres && avctx->bits_per_raw_sample <= 8) {
- if(avctx->idct_algo == FF_IDCT_AUTO ||
- avctx->idct_algo == FF_IDCT_ARM){
+ if (!avctx->lowres && !high_bit_depth) {
+ if (avctx->idct_algo == FF_IDCT_AUTO ||
+ avctx->idct_algo == FF_IDCT_ARM) {
c->idct_put = j_rev_dct_arm_put;
c->idct_add = j_rev_dct_arm_add;
c->idct = ff_j_rev_dct_arm;
c->idct_permutation_type = FF_LIBMPEG2_IDCT_PERM;
- } else if (avctx->idct_algo == FF_IDCT_SIMPLEARM){
+ } else if (avctx->idct_algo == FF_IDCT_SIMPLEARM) {
c->idct_put = simple_idct_arm_put;
c->idct_add = simple_idct_arm_add;
c->idct = ff_simple_idct_arm;
@@ -80,7 +89,10 @@ av_cold void ff_dsputil_init_arm(DSPContext *c, AVCodecContext *avctx)
c->add_pixels_clamped = ff_add_pixels_clamped_arm;
- if (have_armv5te(cpu_flags)) ff_dsputil_init_armv5te(c, avctx);
- if (have_armv6(cpu_flags)) ff_dsputil_init_armv6(c, avctx);
- if (have_neon(cpu_flags)) ff_dsputil_init_neon(c, avctx);
+ if (have_armv5te(cpu_flags))
+ ff_dsputil_init_armv5te(c, avctx, high_bit_depth);
+ if (have_armv6(cpu_flags))
+ ff_dsputil_init_armv6(c, avctx, high_bit_depth);
+ if (have_neon(cpu_flags))
+ ff_dsputil_init_neon(c, avctx, high_bit_depth);
}