summaryrefslogtreecommitdiff
path: root/libswscale/output.c
diff options
context:
space:
mode:
authorNelson Gomez <nelson.gomez@microsoft.com>2020-04-25 19:37:01 -0700
committerJosh de Kock <josh@itanimul.li>2020-06-14 16:34:07 +0100
commit7c39c3c1a6f35a6b47970417b1e273141eadb856 (patch)
treee46b220d6ec2463cbd242551ef7fa9d6ece7cfe3 /libswscale/output.c
parent01be03a4a0a81464aac1741bd393c09aaa8cc0e5 (diff)
downloadffmpeg-7c39c3c1a6f35a6b47970417b1e273141eadb856.tar.gz
swscale: make yuv2interleavedX more asm-friendly
Extracting information from SwsContext in assembly is difficult, and rearranging SwsContext just for asm access didn't look good. These functions only need a couple of fields from it anyway, so just make them parameters in their own right. Signed-off-by: Nelson Gomez <nelson.gomez@microsoft.com>
Diffstat (limited to 'libswscale/output.c')
-rw-r--r--libswscale/output.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/libswscale/output.c b/libswscale/output.c
index 257b07abbc..8903cf79b2 100644
--- a/libswscale/output.c
+++ b/libswscale/output.c
@@ -180,7 +180,7 @@ yuv2planeX_16_c_template(const int16_t *filter, int filterSize,
}
}
-static void yuv2p016cX_c(SwsContext *c, const int16_t *chrFilter, int chrFilterSize,
+static void yuv2p016cX_c(enum AVPixelFormat dstFormat, const uint8_t *chrDither, const int16_t *chrFilter, int chrFilterSize,
const int16_t **chrUSrc, const int16_t **chrVSrc,
uint8_t *dest8, int chrDstW)
{
@@ -188,7 +188,7 @@ static void yuv2p016cX_c(SwsContext *c, const int16_t *chrFilter, int chrFilterS
const int32_t **uSrc = (const int32_t **)chrUSrc;
const int32_t **vSrc = (const int32_t **)chrVSrc;
int shift = 15;
- int big_endian = c->dstFormat == AV_PIX_FMT_P016BE;
+ int big_endian = dstFormat == AV_PIX_FMT_P016BE;
int i, j;
for (i = 0; i < chrDstW; i++) {
@@ -402,12 +402,10 @@ static void yuv2plane1_8_c(const int16_t *src, uint8_t *dest, int dstW,
}
}
-static void yuv2nv12cX_c(SwsContext *c, const int16_t *chrFilter, int chrFilterSize,
+static void yuv2nv12cX_c(enum AVPixelFormat dstFormat, const uint8_t *chrDither, const int16_t *chrFilter, int chrFilterSize,
const int16_t **chrUSrc, const int16_t **chrVSrc,
uint8_t *dest, int chrDstW)
{
- enum AVPixelFormat dstFormat = c->dstFormat;
- const uint8_t *chrDither = c->chrDither8;
int i;
if (dstFormat == AV_PIX_FMT_NV12 ||
@@ -477,13 +475,13 @@ static void yuv2p010lX_c(const int16_t *filter, int filterSize,
}
}
-static void yuv2p010cX_c(SwsContext *c, const int16_t *chrFilter, int chrFilterSize,
+static void yuv2p010cX_c(enum AVPixelFormat dstFormat, const uint8_t *chrDither, const int16_t *chrFilter, int chrFilterSize,
const int16_t **chrUSrc, const int16_t **chrVSrc,
uint8_t *dest8, int chrDstW)
{
uint16_t *dest = (uint16_t*)dest8;
int shift = 17;
- int big_endian = c->dstFormat == AV_PIX_FMT_P010BE;
+ int big_endian = dstFormat == AV_PIX_FMT_P010BE;
int i, j;
for (i = 0; i < chrDstW; i++) {