summaryrefslogtreecommitdiff
path: root/libavcodec/dsputil.c
diff options
context:
space:
mode:
authorMans Rullgard <mans@mansr.com>2010-04-21 00:09:00 +0100
committerMans Rullgard <mans@mansr.com>2011-03-16 23:19:40 +0000
commit381d37fda91494e312ab2938080a379c5e11998b (patch)
tree4643fe3926b5fe37f7a0319e02eac02c1bb96830 /libavcodec/dsputil.c
parentdff68563d846274cee0a2cd2430d6f1a2cb51eaa (diff)
dsputil: add bswap16_buf()
There are several places where a buffer is byte-swapped in 16-bit units. This allows them to share code which can be optimised for various architectures. Signed-off-by: Mans Rullgard <mans@mansr.com>
Diffstat (limited to 'libavcodec/dsputil.c')
-rw-r--r--libavcodec/dsputil.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c
index 1f7bd4cbc0..b293642b1d 100644
--- a/libavcodec/dsputil.c
+++ b/libavcodec/dsputil.c
@@ -222,6 +222,12 @@ static void bswap_buf(uint32_t *dst, const uint32_t *src, int w){
}
}
+static void bswap16_buf(uint16_t *dst, const uint16_t *src, int len)
+{
+ while (len--)
+ *dst++ = av_bswap16(*src++);
+}
+
static int sse4_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h)
{
int s, i;
@@ -4324,6 +4330,7 @@ av_cold void dsputil_init(DSPContext* c, AVCodecContext *avctx)
c->add_hfyu_left_prediction = add_hfyu_left_prediction_c;
c->add_hfyu_left_prediction_bgr32 = add_hfyu_left_prediction_bgr32_c;
c->bswap_buf= bswap_buf;
+ c->bswap16_buf = bswap16_buf;
#if CONFIG_PNG_DECODER
c->add_png_paeth_prediction= ff_add_png_paeth_prediction;
#endif