aboutsummaryrefslogtreecommitdiffstats
path: root/libswscale/swscale_unscaled.c
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.dev>2024-10-10 12:16:44 +0200
committerNiklas Haas <git@haasn.dev>2024-11-21 12:49:56 +0100
commit2d077f9acda4946b3455ded5778fb3fc7e85bba2 (patch)
tree44ab5d5889e65b4067fbe54f4e7966a31f4c9f13 /libswscale/swscale_unscaled.c
parent10d1be262126f1699a89b54cf5f23a5370c57cb5 (diff)
downloadffmpeg-2d077f9acda4946b3455ded5778fb3fc7e85bba2.tar.gz
swscale/internal: group user-facing options together
This is a preliminary step to separating these into a new struct. This commit contains no functional changes, it is a pure search-and-replace. Sponsored-by: Sovereign Tech Fund Signed-off-by: Niklas Haas <git@haasn.dev>
Diffstat (limited to 'libswscale/swscale_unscaled.c')
-rw-r--r--libswscale/swscale_unscaled.c308
1 files changed, 154 insertions, 154 deletions
diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
index 60c8d328a9..143c4c1002 100644
--- a/libswscale/swscale_unscaled.c
+++ b/libswscale/swscale_unscaled.c
@@ -146,10 +146,10 @@ static int planarToNv12Wrapper(SwsInternal *c, const uint8_t *const src[],
{
uint8_t *dst = dstParam[1] + dstStride[1] * srcSliceY / 2;
- ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW,
+ ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->opts.src_w,
dstParam[0], dstStride[0]);
- if (c->dstFormat == AV_PIX_FMT_NV12)
+ if (c->opts.dst_format == AV_PIX_FMT_NV12)
interleaveBytes(src[1], src[2], dst, c->chrSrcW, (srcSliceH + 1) / 2,
srcStride[1], srcStride[2], dstStride[1]);
else
@@ -167,10 +167,10 @@ static int nv12ToPlanarWrapper(SwsInternal *c, const uint8_t *const src[],
uint8_t *dst1 = dstParam[1] + dstStride[1] * srcSliceY / 2;
uint8_t *dst2 = dstParam[2] + dstStride[2] * srcSliceY / 2;
- ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW,
+ ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->opts.src_w,
dstParam[0], dstStride[0]);
- if (c->srcFormat == AV_PIX_FMT_NV12)
+ if (c->opts.src_format == AV_PIX_FMT_NV12)
deinterleaveBytes(src[1], dst1, dst2, c->chrSrcW, (srcSliceH + 1) / 2,
srcStride[1], dstStride[1], dstStride[2]);
else
@@ -187,10 +187,10 @@ static int planarToNv24Wrapper(SwsInternal *c, const uint8_t *const src[],
{
uint8_t *dst = dstParam[1] + dstStride[1] * srcSliceY;
- ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW,
+ ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->opts.src_w,
dstParam[0], dstStride[0]);
- if (c->dstFormat == AV_PIX_FMT_NV24)
+ if (c->opts.dst_format == AV_PIX_FMT_NV24)
interleaveBytes(src[1], src[2], dst, c->chrSrcW, srcSliceH,
srcStride[1], srcStride[2], dstStride[1]);
else
@@ -208,10 +208,10 @@ static int nv24ToPlanarWrapper(SwsInternal *c, const uint8_t *const src[],
uint8_t *dst1 = dstParam[1] + dstStride[1] * srcSliceY;
uint8_t *dst2 = dstParam[2] + dstStride[2] * srcSliceY;
- ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW,
+ ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->opts.src_w,
dstParam[0], dstStride[0]);
- if (c->srcFormat == AV_PIX_FMT_NV24)
+ if (c->opts.src_format == AV_PIX_FMT_NV24)
deinterleaveBytes(src[1], dst1, dst2, c->chrSrcW, srcSliceH,
srcStride[1], dstStride[1], dstStride[2]);
else
@@ -250,15 +250,15 @@ static int nv24ToYuv420Wrapper(SwsInternal *c, const uint8_t *const src[],
uint8_t *dst1 = dstParam[1] + dstStride[1] * srcSliceY / 2;
uint8_t *dst2 = dstParam[2] + dstStride[2] * srcSliceY / 2;
- ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW,
+ ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->opts.src_w,
dstParam[0], dstStride[0]);
- if (c->srcFormat == AV_PIX_FMT_NV24)
+ if (c->opts.src_format == AV_PIX_FMT_NV24)
nv24_to_yuv420p_chroma(dst1, dstStride[1], dst2, dstStride[2],
- src[1], srcStride[1], c->srcW / 2, srcSliceH);
+ src[1], srcStride[1], c->opts.src_w / 2, srcSliceH);
else
nv24_to_yuv420p_chroma(dst2, dstStride[2], dst1, dstStride[1],
- src[1], srcStride[1], c->srcW / 2, srcSliceH);
+ src[1], srcStride[1], c->opts.src_w / 2, srcSliceH);
return srcSliceH;
}
@@ -268,8 +268,8 @@ static int planarToP01xWrapper(SwsInternal *c, const uint8_t *const src8[],
int srcSliceH, uint8_t *const dstParam8[],
const int dstStride[])
{
- const AVPixFmtDescriptor *src_format = av_pix_fmt_desc_get(c->srcFormat);
- const AVPixFmtDescriptor *dst_format = av_pix_fmt_desc_get(c->dstFormat);
+ const AVPixFmtDescriptor *src_format = av_pix_fmt_desc_get(c->opts.src_format);
+ const AVPixFmtDescriptor *dst_format = av_pix_fmt_desc_get(c->opts.dst_format);
const uint16_t **src = (const uint16_t**)src8;
uint16_t *dstY = (uint16_t*)(dstParam8[0] + dstStride[0] * srcSliceY);
uint16_t *dstUV = (uint16_t*)(dstParam8[1] + dstStride[1] * srcSliceY / 2);
@@ -291,7 +291,7 @@ static int planarToP01xWrapper(SwsInternal *c, const uint8_t *const src8[],
for (y = 0; y < srcSliceH; y++) {
uint16_t *tdstY = dstY;
const uint16_t *tsrc0 = src[0];
- for (x = c->srcW; x > 0; x--) {
+ for (x = c->opts.src_w; x > 0; x--) {
*tdstY++ = *tsrc0++ << shift[0];
}
src[0] += srcStride[0] / 2;
@@ -301,7 +301,7 @@ static int planarToP01xWrapper(SwsInternal *c, const uint8_t *const src8[],
uint16_t *tdstUV = dstUV;
const uint16_t *tsrc1 = src[1];
const uint16_t *tsrc2 = src[2];
- for (x = c->srcW / 2; x > 0; x--) {
+ for (x = c->opts.src_w / 2; x > 0; x--) {
*tdstUV++ = *tsrc1++ << shift[1];
*tdstUV++ = *tsrc2++ << shift[2];
}
@@ -338,7 +338,7 @@ static int planar8ToP01xleWrapper(SwsInternal *c, const uint8_t *const src[],
for (y = 0; y < srcSliceH; y++) {
uint16_t *tdstY = dstY;
const uint8_t *tsrc0 = src0;
- for (x = c->srcW; x > 0; x--) {
+ for (x = c->opts.src_w; x > 0; x--) {
t = *tsrc0++;
output_pixel(tdstY++, t << 8);
}
@@ -349,7 +349,7 @@ static int planar8ToP01xleWrapper(SwsInternal *c, const uint8_t *const src[],
uint16_t *tdstUV = dstUV;
const uint8_t *tsrc1 = src1;
const uint8_t *tsrc2 = src2;
- for (x = c->srcW / 2; x > 0; x--) {
+ for (x = c->opts.src_w / 2; x > 0; x--) {
t = *tsrc1++;
output_pixel(tdstUV++, t << 8);
t = *tsrc2++;
@@ -372,7 +372,7 @@ static int planarToYuy2Wrapper(SwsInternal *c, const uint8_t *const src[],
{
uint8_t *dst = dstParam[0] + dstStride[0] * srcSliceY;
- yv12toyuy2(src[0], src[1], src[2], dst, c->srcW, srcSliceH, srcStride[0],
+ yv12toyuy2(src[0], src[1], src[2], dst, c->opts.src_w, srcSliceH, srcStride[0],
srcStride[1], dstStride[0]);
return srcSliceH;
@@ -384,7 +384,7 @@ static int planarToUyvyWrapper(SwsInternal *c, const uint8_t *const src[],
{
uint8_t *dst = dstParam[0] + dstStride[0] * srcSliceY;
- yv12touyvy(src[0], src[1], src[2], dst, c->srcW, srcSliceH, srcStride[0],
+ yv12touyvy(src[0], src[1], src[2], dst, c->opts.src_w, srcSliceH, srcStride[0],
srcStride[1], dstStride[0]);
return srcSliceH;
@@ -396,7 +396,7 @@ static int yuv422pToYuy2Wrapper(SwsInternal *c, const uint8_t *const src[],
{
uint8_t *dst = dstParam[0] + dstStride[0] * srcSliceY;
- yuv422ptoyuy2(src[0], src[1], src[2], dst, c->srcW, srcSliceH, srcStride[0],
+ yuv422ptoyuy2(src[0], src[1], src[2], dst, c->opts.src_w, srcSliceH, srcStride[0],
srcStride[1], dstStride[0]);
return srcSliceH;
@@ -408,7 +408,7 @@ static int yuv422pToUyvyWrapper(SwsInternal *c, const uint8_t *const src[],
{
uint8_t *dst = dstParam[0] + dstStride[0] * srcSliceY;
- yuv422ptouyvy(src[0], src[1], src[2], dst, c->srcW, srcSliceH, srcStride[0],
+ yuv422ptouyvy(src[0], src[1], src[2], dst, c->opts.src_w, srcSliceH, srcStride[0],
srcStride[1], dstStride[0]);
return srcSliceH;
@@ -422,11 +422,11 @@ static int yuyvToYuv420Wrapper(SwsInternal *c, const uint8_t *const src[],
uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY / 2;
uint8_t *vdst = dstParam[2] + dstStride[2] * srcSliceY / 2;
- yuyvtoyuv420(ydst, udst, vdst, src[0], c->srcW, srcSliceH, dstStride[0],
+ yuyvtoyuv420(ydst, udst, vdst, src[0], c->opts.src_w, srcSliceH, dstStride[0],
dstStride[1], srcStride[0]);
if (dstParam[3])
- fillPlane(dstParam[3], dstStride[3], c->srcW, srcSliceH, srcSliceY, 255);
+ fillPlane(dstParam[3], dstStride[3], c->opts.src_w, srcSliceH, srcSliceY, 255);
return srcSliceH;
}
@@ -439,7 +439,7 @@ static int yuyvToYuv422Wrapper(SwsInternal *c, const uint8_t *const src[],
uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY;
uint8_t *vdst = dstParam[2] + dstStride[2] * srcSliceY;
- yuyvtoyuv422(ydst, udst, vdst, src[0], c->srcW, srcSliceH, dstStride[0],
+ yuyvtoyuv422(ydst, udst, vdst, src[0], c->opts.src_w, srcSliceH, dstStride[0],
dstStride[1], srcStride[0]);
return srcSliceH;
@@ -453,11 +453,11 @@ static int uyvyToYuv420Wrapper(SwsInternal *c, const uint8_t *const src[],
uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY / 2;
uint8_t *vdst = dstParam[2] + dstStride[2] * srcSliceY / 2;
- uyvytoyuv420(ydst, udst, vdst, src[0], c->srcW, srcSliceH, dstStride[0],
+ uyvytoyuv420(ydst, udst, vdst, src[0], c->opts.src_w, srcSliceH, dstStride[0],
dstStride[1], srcStride[0]);
if (dstParam[3])
- fillPlane(dstParam[3], dstStride[3], c->srcW, srcSliceH, srcSliceY, 255);
+ fillPlane(dstParam[3], dstStride[3], c->opts.src_w, srcSliceH, srcSliceY, 255);
return srcSliceH;
}
@@ -470,7 +470,7 @@ static int uyvyToYuv422Wrapper(SwsInternal *c, const uint8_t *const src[],
uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY;
uint8_t *vdst = dstParam[2] + dstStride[2] * srcSliceY;
- uyvytoyuv422(ydst, udst, vdst, src[0], c->srcW, srcSliceH, dstStride[0],
+ uyvytoyuv422(ydst, udst, vdst, src[0], c->opts.src_w, srcSliceH, dstStride[0],
dstStride[1], srcStride[0]);
return srcSliceH;
@@ -566,8 +566,8 @@ static int palToRgbWrapper(SwsInternal *c, const uint8_t *const src[], const int
int srcSliceY, int srcSliceH, uint8_t *const dst[],
const int dstStride[])
{
- const enum AVPixelFormat srcFormat = c->srcFormat;
- const enum AVPixelFormat dstFormat = c->dstFormat;
+ const enum AVPixelFormat srcFormat = c->opts.src_format;
+ const enum AVPixelFormat dstFormat = c->opts.dst_format;
void (*conv)(const uint8_t *src, uint8_t *dst, int num_pixels,
const uint8_t *palette) = NULL;
int i;
@@ -599,7 +599,7 @@ static int palToRgbWrapper(SwsInternal *c, const uint8_t *const src[], const int
av_get_pix_fmt_name(srcFormat), av_get_pix_fmt_name(dstFormat));
else {
for (i = 0; i < srcSliceH; i++) {
- conv(srcPtr, dstPtr, c->srcW, (uint8_t *) c->pal_rgb);
+ conv(srcPtr, dstPtr, c->opts.src_w, (uint8_t *) c->pal_rgb);
srcPtr += srcStride[0];
dstPtr += dstStride[0];
}
@@ -821,8 +821,8 @@ static int Rgb16ToPlanarRgb16Wrapper(SwsInternal *c, const uint8_t *const src[],
uint16_t *dst1023[] = { (uint16_t *)dst[1], (uint16_t *)dst[0], (uint16_t *)dst[2], (uint16_t *)dst[3] };
int stride2013[] = { dstStride[2], dstStride[0], dstStride[1], dstStride[3] };
int stride1023[] = { dstStride[1], dstStride[0], dstStride[2], dstStride[3] };
- const AVPixFmtDescriptor *src_format = av_pix_fmt_desc_get(c->srcFormat);
- const AVPixFmtDescriptor *dst_format = av_pix_fmt_desc_get(c->dstFormat);
+ const AVPixFmtDescriptor *src_format = av_pix_fmt_desc_get(c->opts.src_format);
+ const AVPixFmtDescriptor *dst_format = av_pix_fmt_desc_get(c->opts.dst_format);
int bpc = dst_format->comp[0].depth;
int alpha = src_format->flags & AV_PIX_FMT_FLAG_ALPHA;
int swap = 0;
@@ -847,20 +847,20 @@ static int Rgb16ToPlanarRgb16Wrapper(SwsInternal *c, const uint8_t *const src[],
dst1023[i] += stride1023[i] * srcSliceY / 2;
}
- switch (c->srcFormat) {
+ switch (c->opts.src_format) {
case AV_PIX_FMT_RGB48LE:
case AV_PIX_FMT_RGB48BE:
case AV_PIX_FMT_RGBA64LE:
case AV_PIX_FMT_RGBA64BE:
packed16togbra16(src[0], srcStride[0],
dst2013, stride2013, srcSliceH, alpha, swap,
- 16 - bpc, c->srcW);
+ 16 - bpc, c->opts.src_w);
break;
case AV_PIX_FMT_X2RGB10LE:
av_assert0(bpc >= 10);
packed30togbra10(src[0], srcStride[0],
dst2013, stride2013, srcSliceH, swap,
- bpc, c->srcW);
+ bpc, c->opts.src_w);
break;
case AV_PIX_FMT_BGR48LE:
case AV_PIX_FMT_BGR48BE:
@@ -868,13 +868,13 @@ static int Rgb16ToPlanarRgb16Wrapper(SwsInternal *c, const uint8_t *const src[],
case AV_PIX_FMT_BGRA64BE:
packed16togbra16(src[0], srcStride[0],
dst1023, stride1023, srcSliceH, alpha, swap,
- 16 - bpc, c->srcW);
+ 16 - bpc, c->opts.src_w);
break;
case AV_PIX_FMT_X2BGR10LE:
av_assert0(bpc >= 10);
packed30togbra10(src[0], srcStride[0],
dst1023, stride1023, srcSliceH, swap,
- bpc, c->srcW);
+ bpc, c->opts.src_w);
break;
default:
av_log(c, AV_LOG_ERROR,
@@ -1047,8 +1047,8 @@ static int planarRgb16ToRgb16Wrapper(SwsInternal *c, const uint8_t *const src[],
const uint16_t *src201[] = { (uint16_t *)src[2], (uint16_t *)src[0], (uint16_t *)src[1], (uint16_t *)src[3] };
int stride102[] = { srcStride[1], srcStride[0], srcStride[2], srcStride[3] };
int stride201[] = { srcStride[2], srcStride[0], srcStride[1], srcStride[3] };
- const AVPixFmtDescriptor *src_format = av_pix_fmt_desc_get(c->srcFormat);
- const AVPixFmtDescriptor *dst_format = av_pix_fmt_desc_get(c->dstFormat);
+ const AVPixFmtDescriptor *src_format = av_pix_fmt_desc_get(c->opts.src_format);
+ const AVPixFmtDescriptor *dst_format = av_pix_fmt_desc_get(c->opts.dst_format);
int bits_per_sample = src_format->comp[0].depth;
int swap = 0;
if ( HAVE_BIGENDIAN && !(src_format->flags & AV_PIX_FMT_FLAG_BE) ||
@@ -1065,40 +1065,40 @@ static int planarRgb16ToRgb16Wrapper(SwsInternal *c, const uint8_t *const src[],
src_format->name, dst_format->name);
return srcSliceH;
}
- switch (c->dstFormat) {
+ switch (c->opts.dst_format) {
case AV_PIX_FMT_BGR48LE:
case AV_PIX_FMT_BGR48BE:
gbr16ptopacked16(src102, stride102,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, 0, swap, bits_per_sample, c->srcW);
+ srcSliceH, 0, swap, bits_per_sample, c->opts.src_w);
break;
case AV_PIX_FMT_RGB48LE:
case AV_PIX_FMT_RGB48BE:
gbr16ptopacked16(src201, stride201,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, 0, swap, bits_per_sample, c->srcW);
+ srcSliceH, 0, swap, bits_per_sample, c->opts.src_w);
break;
case AV_PIX_FMT_RGBA64LE:
case AV_PIX_FMT_RGBA64BE:
gbr16ptopacked16(src201, stride201,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, 1, swap, bits_per_sample, c->srcW);
+ srcSliceH, 1, swap, bits_per_sample, c->opts.src_w);
break;
case AV_PIX_FMT_BGRA64LE:
case AV_PIX_FMT_BGRA64BE:
gbr16ptopacked16(src102, stride102,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, 1, swap, bits_per_sample, c->srcW);
+ srcSliceH, 1, swap, bits_per_sample, c->opts.src_w);
break;
case AV_PIX_FMT_X2RGB10LE:
gbr16ptopacked30(src201, stride201,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, swap, bits_per_sample, c->srcW);
+ srcSliceH, swap, bits_per_sample, c->opts.src_w);
break;
case AV_PIX_FMT_X2BGR10LE:
gbr16ptopacked30(src102, stride102,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, swap, bits_per_sample, c->srcW);
+ srcSliceH, swap, bits_per_sample, c->opts.src_w);
break;
default:
av_log(c, AV_LOG_ERROR,
@@ -1195,24 +1195,24 @@ static int planarRgbaToRgbWrapper(SwsInternal *c, const uint8_t *const src[],
int stride102[] = { srcStride[1], srcStride[0], srcStride[2], srcStride[3] };
int stride201[] = { srcStride[2], srcStride[0], srcStride[1], srcStride[3] };
- if (c->srcFormat != AV_PIX_FMT_GBRAP) {
+ if (c->opts.src_format != AV_PIX_FMT_GBRAP) {
av_log(c, AV_LOG_ERROR, "unsupported planar RGB conversion %s -> %s\n",
- av_get_pix_fmt_name(c->srcFormat),
- av_get_pix_fmt_name(c->dstFormat));
+ av_get_pix_fmt_name(c->opts.src_format),
+ av_get_pix_fmt_name(c->opts.dst_format));
return srcSliceH;
}
- switch (c->dstFormat) {
+ switch (c->opts.dst_format) {
case AV_PIX_FMT_BGR24:
gbr24ptopacked24(src102, stride102,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, c->srcW);
+ srcSliceH, c->opts.src_w);
break;
case AV_PIX_FMT_RGB24:
gbr24ptopacked24(src201, stride201,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, c->srcW);
+ srcSliceH, c->opts.src_w);
break;
case AV_PIX_FMT_ARGB:
@@ -1220,7 +1220,7 @@ static int planarRgbaToRgbWrapper(SwsInternal *c, const uint8_t *const src[],
case AV_PIX_FMT_RGBA:
gbraptopacked32(src201, stride201,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, alpha_first, c->srcW);
+ srcSliceH, alpha_first, c->opts.src_w);
break;
case AV_PIX_FMT_ABGR:
@@ -1228,14 +1228,14 @@ static int planarRgbaToRgbWrapper(SwsInternal *c, const uint8_t *const src[],
case AV_PIX_FMT_BGRA:
gbraptopacked32(src102, stride102,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, alpha_first, c->srcW);
+ srcSliceH, alpha_first, c->opts.src_w);
break;
default:
av_log(c, AV_LOG_ERROR,
"unsupported planar RGB conversion %s -> %s\n",
- av_get_pix_fmt_name(c->srcFormat),
- av_get_pix_fmt_name(c->dstFormat));
+ av_get_pix_fmt_name(c->opts.src_format),
+ av_get_pix_fmt_name(c->opts.dst_format));
}
return srcSliceH;
@@ -1251,24 +1251,24 @@ static int planarRgbToRgbWrapper(SwsInternal *c, const uint8_t *const src[],
int stride102[] = { srcStride[1], srcStride[0], srcStride[2] };
int stride201[] = { srcStride[2], srcStride[0], srcStride[1] };
- if (c->srcFormat != AV_PIX_FMT_GBRP) {
+ if (c->opts.src_format != AV_PIX_FMT_GBRP) {
av_log(c, AV_LOG_ERROR, "unsupported planar RGB conversion %s -> %s\n",
- av_get_pix_fmt_name(c->srcFormat),
- av_get_pix_fmt_name(c->dstFormat));
+ av_get_pix_fmt_name(c->opts.src_format),
+ av_get_pix_fmt_name(c->opts.dst_format));
return srcSliceH;
}
- switch (c->dstFormat) {
+ switch (c->opts.dst_format) {
case AV_PIX_FMT_BGR24:
gbr24ptopacked24(src102, stride102,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, c->srcW);
+ srcSliceH, c->opts.src_w);
break;
case AV_PIX_FMT_RGB24:
gbr24ptopacked24(src201, stride201,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, c->srcW);
+ srcSliceH, c->opts.src_w);
break;
case AV_PIX_FMT_ARGB:
@@ -1276,7 +1276,7 @@ static int planarRgbToRgbWrapper(SwsInternal *c, const uint8_t *const src[],
case AV_PIX_FMT_RGBA:
gbr24ptopacked32(src201, stride201,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, alpha_first, c->srcW);
+ srcSliceH, alpha_first, c->opts.src_w);
break;
case AV_PIX_FMT_ABGR:
@@ -1284,14 +1284,14 @@ static int planarRgbToRgbWrapper(SwsInternal *c, const uint8_t *const src[],
case AV_PIX_FMT_BGRA:
gbr24ptopacked32(src102, stride102,
dst[0] + srcSliceY * dstStride[0], dstStride[0],
- srcSliceH, alpha_first, c->srcW);
+ srcSliceH, alpha_first, c->opts.src_w);
break;
default:
av_log(c, AV_LOG_ERROR,
"unsupported planar RGB conversion %s -> %s\n",
- av_get_pix_fmt_name(c->srcFormat),
- av_get_pix_fmt_name(c->dstFormat));
+ av_get_pix_fmt_name(c->opts.src_format),
+ av_get_pix_fmt_name(c->opts.dst_format));
}
return srcSliceH;
@@ -1302,14 +1302,14 @@ static int planarRgbToplanarRgbWrapper(SwsInternal *c,
int srcSliceY, int srcSliceH,
uint8_t *const dst[], const int dstStride[])
{
- ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW,
+ ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->opts.src_w,
dst[0], dstStride[0]);
- ff_copyPlane(src[1], srcStride[1], srcSliceY, srcSliceH, c->srcW,
+ ff_copyPlane(src[1], srcStride[1], srcSliceY, srcSliceH, c->opts.src_w,
dst[1], dstStride[1]);
- ff_copyPlane(src[2], srcStride[2], srcSliceY, srcSliceH, c->srcW,
+ ff_copyPlane(src[2], srcStride[2], srcSliceY, srcSliceH, c->opts.src_w,
dst[2], dstStride[2]);
if (dst[3])
- fillPlane(dst[3], dstStride[3], c->srcW, srcSliceH, srcSliceY, 255);
+ fillPlane(dst[3], dstStride[3], c->opts.src_w, srcSliceH, srcSliceY, 255);
return srcSliceH;
}
@@ -1357,32 +1357,32 @@ static int rgbToPlanarRgbWrapper(SwsInternal *c, const uint8_t *const src[],
dst[0] + srcSliceY * dstStride[0],
dst[1] + srcSliceY * dstStride[1] };
- switch (c->srcFormat) {
+ switch (c->opts.src_format) {
case AV_PIX_FMT_RGB24:
packedtogbr24p((const uint8_t *) src[0], srcStride[0], dst201,
- stride201, srcSliceH, alpha_first, 3, c->srcW);
+ stride201, srcSliceH, alpha_first, 3, c->opts.src_w);
break;
case AV_PIX_FMT_BGR24:
packedtogbr24p((const uint8_t *) src[0], srcStride[0], dst102,
- stride102, srcSliceH, alpha_first, 3, c->srcW);
+ stride102, srcSliceH, alpha_first, 3, c->opts.src_w);
break;
case AV_PIX_FMT_ARGB:
alpha_first = 1;
case AV_PIX_FMT_RGBA:
packedtogbr24p((const uint8_t *) src[0], srcStride[0], dst201,
- stride201, srcSliceH, alpha_first, 4, c->srcW);
+ stride201, srcSliceH, alpha_first, 4, c->opts.src_w);
break;
case AV_PIX_FMT_ABGR:
alpha_first = 1;
case AV_PIX_FMT_BGRA:
packedtogbr24p((const uint8_t *) src[0], srcStride[0], dst102,
- stride102, srcSliceH, alpha_first, 4, c->srcW);
+ stride102, srcSliceH, alpha_first, 4, c->opts.src_w);
break;
default:
av_log(c, AV_LOG_ERROR,
"unsupported planar RGB conversion %s -> %s\n",
- av_get_pix_fmt_name(c->srcFormat),
- av_get_pix_fmt_name(c->dstFormat));
+ av_get_pix_fmt_name(c->opts.src_format),
+ av_get_pix_fmt_name(c->opts.dst_format));
}
return srcSliceH;
@@ -1467,32 +1467,32 @@ static int rgbToPlanarRgbaWrapper(SwsInternal *c, const uint8_t *const src[],
dst[1] + srcSliceY * dstStride[1],
dst[3] + srcSliceY * dstStride[3] };
- switch (c->srcFormat) {
+ switch (c->opts.src_format) {
case AV_PIX_FMT_RGB24:
packed24togbrap((const uint8_t *) src[0], srcStride[0], dst201,
- stride201, srcSliceH, c->srcW);
+ stride201, srcSliceH, c->opts.src_w);
break;
case AV_PIX_FMT_BGR24:
packed24togbrap((const uint8_t *) src[0], srcStride[0], dst102,
- stride102, srcSliceH, c->srcW);
+ stride102, srcSliceH, c->opts.src_w);
break;
case AV_PIX_FMT_ARGB:
alpha_first = 1;
case AV_PIX_FMT_RGBA:
packed32togbrap((const uint8_t *) src[0], srcStride[0], dst201,
- stride201, srcSliceH, alpha_first, c->srcW);
+ stride201, srcSliceH, alpha_first, c->opts.src_w);
break;
case AV_PIX_FMT_ABGR:
alpha_first = 1;
case AV_PIX_FMT_BGRA:
packed32togbrap((const uint8_t *) src[0], srcStride[0], dst102,
- stride102, srcSliceH, alpha_first, c->srcW);
+ stride102, srcSliceH, alpha_first, c->opts.src_w);
break;
default:
av_log(c, AV_LOG_ERROR,
"unsupported planar RGB conversion %s -> %s\n",
- av_get_pix_fmt_name(c->srcFormat),
- av_get_pix_fmt_name(c->dstFormat));
+ av_get_pix_fmt_name(c->opts.src_format),
+ av_get_pix_fmt_name(c->opts.dst_format));
}
return srcSliceH;
@@ -1568,7 +1568,7 @@ static int bayer_to_rgb24_wrapper(SwsInternal *c, const uint8_t *const src[],
void (*copy) (const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int width);
void (*interpolate)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int width);
- switch(c->srcFormat) {
+ switch(c->opts.src_format) {
#define CASE(pixfmt, prefix) \
case pixfmt: copy = bayer_##prefix##_to_rgb24_copy; \
interpolate = bayer_##prefix##_to_rgb24_interpolate; \
@@ -1591,20 +1591,20 @@ static int bayer_to_rgb24_wrapper(SwsInternal *c, const uint8_t *const src[],
av_assert0(srcSliceH > 1);
- copy(srcPtr, srcStride[0], dstPtr, dstStride[0], c->srcW);
+ copy(srcPtr, srcStride[0], dstPtr, dstStride[0], c->opts.src_w);
srcPtr += 2 * srcStride[0];
dstPtr += 2 * dstStride[0];
for (i = 2; i < srcSliceH - 2; i += 2) {
- interpolate(srcPtr, srcStride[0], dstPtr, dstStride[0], c->srcW);
+ interpolate(srcPtr, srcStride[0], dstPtr, dstStride[0], c->opts.src_w);
srcPtr += 2 * srcStride[0];
dstPtr += 2 * dstStride[0];
}
if (i + 1 == srcSliceH) {
- copy(srcPtr, -srcStride[0], dstPtr, -dstStride[0], c->srcW);
+ copy(srcPtr, -srcStride[0], dstPtr, -dstStride[0], c->opts.src_w);
} else if (i < srcSliceH)
- copy(srcPtr, srcStride[0], dstPtr, dstStride[0], c->srcW);
+ copy(srcPtr, srcStride[0], dstPtr, dstStride[0], c->opts.src_w);
return srcSliceH;
}
@@ -1618,7 +1618,7 @@ static int bayer_to_rgb48_wrapper(SwsInternal *c, const uint8_t *const src[],
void (*copy) (const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int width);
void (*interpolate)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int width);
- switch(c->srcFormat) {
+ switch(c->opts.src_format) {
#define CASE(pixfmt, prefix) \
case pixfmt: copy = bayer_##prefix##_to_rgb48_copy; \
interpolate = bayer_##prefix##_to_rgb48_interpolate; \
@@ -1641,20 +1641,20 @@ static int bayer_to_rgb48_wrapper(SwsInternal *c, const uint8_t *const src[],
av_assert0(srcSliceH > 1);
- copy(srcPtr, srcStride[0], dstPtr, dstStride[0], c->srcW);
+ copy(srcPtr, srcStride[0], dstPtr, dstStride[0], c->opts.src_w);
srcPtr += 2 * srcStride[0];
dstPtr += 2 * dstStride[0];
for (i = 2; i < srcSliceH - 2; i += 2) {
- interpolate(srcPtr, srcStride[0], dstPtr, dstStride[0], c->srcW);
+ interpolate(srcPtr, srcStride[0], dstPtr, dstStride[0], c->opts.src_w);
srcPtr += 2 * srcStride[0];
dstPtr += 2 * dstStride[0];
}
if (i + 1 == srcSliceH) {
- copy(srcPtr, -srcStride[0], dstPtr, -dstStride[0], c->srcW);
+ copy(srcPtr, -srcStride[0], dstPtr, -dstStride[0], c->opts.src_w);
} else if (i < srcSliceH)
- copy(srcPtr, srcStride[0], dstPtr, dstStride[0], c->srcW);
+ copy(srcPtr, srcStride[0], dstPtr, dstStride[0], c->opts.src_w);
return srcSliceH;
}
@@ -1670,7 +1670,7 @@ static int bayer_to_yv12_wrapper(SwsInternal *c, const uint8_t *const src[],
void (*copy) (const uint8_t *src, int src_stride, uint8_t *dstY, uint8_t *dstU, uint8_t *dstV, int luma_stride, int width, const int32_t *rgb2yuv);
void (*interpolate)(const uint8_t *src, int src_stride, uint8_t *dstY, uint8_t *dstU, uint8_t *dstV, int luma_stride, int width, const int32_t *rgb2yuv);
- switch(c->srcFormat) {
+ switch(c->opts.src_format) {
#define CASE(pixfmt, prefix) \
case pixfmt: copy = bayer_##prefix##_to_yv12_copy; \
interpolate = bayer_##prefix##_to_yv12_interpolate; \
@@ -1693,14 +1693,14 @@ static int bayer_to_yv12_wrapper(SwsInternal *c, const uint8_t *const src[],
av_assert0(srcSliceH > 1);
- copy(srcPtr, srcStride[0], dstY, dstU, dstV, dstStride[0], c->srcW, c->input_rgb2yuv_table);
+ copy(srcPtr, srcStride[0], dstY, dstU, dstV, dstStride[0], c->opts.src_w, c->input_rgb2yuv_table);
srcPtr += 2 * srcStride[0];
dstY += 2 * dstStride[0];
dstU += dstStride[1];
dstV += dstStride[1];
for (i = 2; i < srcSliceH - 2; i += 2) {
- interpolate(srcPtr, srcStride[0], dstY, dstU, dstV, dstStride[0], c->srcW, c->input_rgb2yuv_table);
+ interpolate(srcPtr, srcStride[0], dstY, dstU, dstV, dstStride[0], c->opts.src_w, c->input_rgb2yuv_table);
srcPtr += 2 * srcStride[0];
dstY += 2 * dstStride[0];
dstU += dstStride[1];
@@ -1708,9 +1708,9 @@ static int bayer_to_yv12_wrapper(SwsInternal *c, const uint8_t *const src[],
}
if (i + 1 == srcSliceH) {
- copy(srcPtr, -srcStride[0], dstY, dstU, dstV, -dstStride[0], c->srcW, c->input_rgb2yuv_table);
+ copy(srcPtr, -srcStride[0], dstY, dstU, dstV, -dstStride[0], c->opts.src_w, c->input_rgb2yuv_table);
} else if (i < srcSliceH)
- copy(srcPtr, srcStride[0], dstY, dstU, dstV, dstStride[0], c->srcW, c->input_rgb2yuv_table);
+ copy(srcPtr, srcStride[0], dstY, dstU, dstV, dstStride[0], c->opts.src_w, c->input_rgb2yuv_table);
return srcSliceH;
}
@@ -1751,8 +1751,8 @@ static int bayer_to_yv12_wrapper(SwsInternal *c, const uint8_t *const src[],
typedef void (* rgbConvFn) (const uint8_t *, uint8_t *, int);
static rgbConvFn findRgbConvFn(SwsInternal *c)
{
- const enum AVPixelFormat srcFormat = c->srcFormat;
- const enum AVPixelFormat dstFormat = c->dstFormat;
+ const enum AVPixelFormat srcFormat = c->opts.src_format;
+ const enum AVPixelFormat dstFormat = c->opts.dst_format;
const int srcId = c->srcFormatBpp;
const int dstId = c->dstFormatBpp;
rgbConvFn conv = NULL;
@@ -1899,7 +1899,7 @@ static rgbConvFn findRgbConvFn(SwsInternal *c)
return NULL;
// Maintain symmetry between endianness
- if (c->flags & SWS_BITEXACT)
+ if (c->opts.flags & SWS_BITEXACT)
if ((dstFormat == AV_PIX_FMT_RGB32 || dstFormat == AV_PIX_FMT_BGR32 ) && !isRGBA32(srcFormat) && ALT32_CORR>0)
return NULL;
@@ -1912,10 +1912,10 @@ static int rgbToRgbWrapper(SwsInternal *c, const uint8_t *const src[], const int
const int dstStride[])
{
- const enum AVPixelFormat srcFormat = c->srcFormat;
- const enum AVPixelFormat dstFormat = c->dstFormat;
- const AVPixFmtDescriptor *desc_src = av_pix_fmt_desc_get(c->srcFormat);
- const AVPixFmtDescriptor *desc_dst = av_pix_fmt_desc_get(c->dstFormat);
+ const enum AVPixelFormat srcFormat = c->opts.src_format;
+ const enum AVPixelFormat dstFormat = c->opts.dst_format;
+ const AVPixFmtDescriptor *desc_src = av_pix_fmt_desc_get(c->opts.src_format);
+ const AVPixFmtDescriptor *desc_dst = av_pix_fmt_desc_get(c->opts.dst_format);
const int srcBpp = (c->srcFormatBpp + 7) >> 3;
const int dstBpp = (c->dstFormatBpp + 7) >> 3;
rgbConvFn conv = findRgbConvFn(c);
@@ -1945,20 +1945,20 @@ static int rgbToRgbWrapper(SwsInternal *c, const uint8_t *const src[], const int
if (dstStride[0] * srcBpp == srcStride[0] * dstBpp && srcStride[0] > 0 &&
!(srcStride[0] % srcBpp) && !dst_bswap && !src_bswap)
conv(srcPtr, dstPtr + dstStride[0] * srcSliceY,
- (srcSliceH - 1) * srcStride[0] + c->srcW * srcBpp);
+ (srcSliceH - 1) * srcStride[0] + c->opts.src_w * srcBpp);
else {
int i, j;
dstPtr += dstStride[0] * srcSliceY;
for (i = 0; i < srcSliceH; i++) {
if(src_bswap) {
- for(j=0; j<c->srcW; j++)
+ for(j=0; j<c->opts.src_w; j++)
((uint16_t*)c->formatConvBuffer)[j] = av_bswap16(((uint16_t*)srcPtr)[j]);
- conv(c->formatConvBuffer, dstPtr, c->srcW * srcBpp);
+ conv(c->formatConvBuffer, dstPtr, c->opts.src_w * srcBpp);
}else
- conv(srcPtr, dstPtr, c->srcW * srcBpp);
+ conv(srcPtr, dstPtr, c->opts.src_w * srcBpp);
if(dst_bswap)
- for(j=0; j<c->srcW; j++)
+ for(j=0; j<c->opts.src_w; j++)
((uint16_t*)dstPtr)[j] = av_bswap16(((uint16_t*)dstPtr)[j]);
srcPtr += srcStride[0];
dstPtr += dstStride[0];
@@ -1977,11 +1977,11 @@ static int bgr24ToYv12Wrapper(SwsInternal *c, const uint8_t *const src[],
dst[0] + srcSliceY * dstStride[0],
dst[1] + (srcSliceY >> 1) * dstStride[1],
dst[2] + (srcSliceY >> 1) * dstStride[2],
- c->srcW, srcSliceH,
+ c->opts.src_w, srcSliceH,
dstStride[0], dstStride[1], srcStride[0],
c->input_rgb2yuv_table);
if (dst[3])
- fillPlane(dst[3], dstStride[3], c->srcW, srcSliceH, srcSliceY, 255);
+ fillPlane(dst[3], dstStride[3], c->opts.src_w, srcSliceH, srcSliceY, 255);
return srcSliceH;
}
@@ -1989,7 +1989,7 @@ static int yvu9ToYv12Wrapper(SwsInternal *c, const uint8_t *const src[],
const int srcStride[], int srcSliceY, int srcSliceH,
uint8_t *const dst[], const int dstStride[])
{
- ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->srcW,
+ ff_copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->opts.src_w,
dst[0], dstStride[0]);
planar2x(src[1], dst[1] + dstStride[1] * (srcSliceY >> 1), c->chrSrcW,
@@ -1997,7 +1997,7 @@ static int yvu9ToYv12Wrapper(SwsInternal *c, const uint8_t *const src[],
planar2x(src[2], dst[2] + dstStride[2] * (srcSliceY >> 1), c->chrSrcW,
srcSliceH >> 2, srcStride[2], dstStride[2]);
if (dst[3])
- fillPlane(dst[3], dstStride[3], c->srcW, srcSliceH, srcSliceY, 255);
+ fillPlane(dst[3], dstStride[3], c->opts.src_w, srcSliceH, srcSliceY, 255);
return srcSliceH;
}
@@ -2011,7 +2011,7 @@ static int uint_y_to_float_y_wrapper(SwsInternal *c, const uint8_t *const src[],
float *dstPtr = (float *)(dst[0] + dstStride[0] * srcSliceY);
for (y = 0; y < srcSliceH; ++y){
- for (x = 0; x < c->srcW; ++x){
+ for (x = 0; x < c->opts.src_w; ++x){
dstPtr[x] = c->uint2float_lut[srcPtr[x]];
}
srcPtr += srcStride[0];
@@ -2033,7 +2033,7 @@ static int float_y_to_uint_y_wrapper(SwsInternal *c,
uint8_t *dstPtr = dst[0] + dstStride[0] * srcSliceY;
for (y = 0; y < srcSliceH; ++y){
- for (x = 0; x < c->srcW; ++x){
+ for (x = 0; x < c->opts.src_w; ++x){
dstPtr[x] = av_clip_uint8(lrintf(255.0f * srcPtr[x]));
}
srcPtr += srcStrideFloat;
@@ -2057,9 +2057,9 @@ static int packedCopyWrapper(SwsInternal *c, const uint8_t *const src[],
int length = 0;
/* universal length finder */
- while (length + c->srcW <= FFABS(dstStride[0]) &&
- length + c->srcW <= FFABS(srcStride[0]))
- length += c->srcW;
+ while (length + c->opts.src_w <= FFABS(dstStride[0]) &&
+ length + c->opts.src_w <= FFABS(srcStride[0]))
+ length += c->opts.src_w;
av_assert1(length != 0);
for (i = 0; i < srcSliceH; i++) {
@@ -2073,7 +2073,7 @@ static int packedCopyWrapper(SwsInternal *c, const uint8_t *const src[],
#define DITHER_COPY(dst, dstStride, src, srcStride, bswap, dbswap)\
unsigned shift= src_depth-dst_depth, tmp;\
- if (c->dither == SWS_DITHER_NONE) {\
+ if (c->opts.dither == SWS_DITHER_NONE) {\
for (i = 0; i < height; i++) {\
for (j = 0; j < length-7; j+=8) {\
dst[j+0] = dbswap(bswap(src[j+0])>>shift);\
@@ -2135,31 +2135,31 @@ static int planarCopyWrapper(SwsInternal *c, const uint8_t *const src[],
const int srcStride[], int srcSliceY, int srcSliceH,
uint8_t *const dst[], const int dstStride[])
{
- const AVPixFmtDescriptor *desc_src = av_pix_fmt_desc_get(c->srcFormat);
- const AVPixFmtDescriptor *desc_dst = av_pix_fmt_desc_get(c->dstFormat);
+ const AVPixFmtDescriptor *desc_src = av_pix_fmt_desc_get(c->opts.src_format);
+ const AVPixFmtDescriptor *desc_dst = av_pix_fmt_desc_get(c->opts.dst_format);
int plane, i, j;
for (plane = 0; plane < 4 && dst[plane] != NULL; plane++) {
- int length = (plane == 0 || plane == 3) ? c->srcW : AV_CEIL_RSHIFT(c->srcW, c->chrDstHSubSample);
+ int length = (plane == 0 || plane == 3) ? c->opts.src_w : AV_CEIL_RSHIFT(c->opts.src_w, c->chrDstHSubSample);
int y = (plane == 0 || plane == 3) ? srcSliceY: AV_CEIL_RSHIFT(srcSliceY, c->chrDstVSubSample);
int height = (plane == 0 || plane == 3) ? srcSliceH: AV_CEIL_RSHIFT(srcSliceH, c->chrDstVSubSample);
const uint8_t *srcPtr = src[plane];
uint8_t *dstPtr = dst[plane] + dstStride[plane] * y;
- int shiftonly = plane == 1 || plane == 2 || (!c->srcRange && plane == 0);
+ int shiftonly = plane == 1 || plane == 2 || (!c->opts.src_range && plane == 0);
// ignore palette for GRAY8
if (plane == 1 && !dst[2]) continue;
if (!src[plane] || (plane == 1 && !src[2])) {
- if (is16BPS(c->dstFormat) || isNBPS(c->dstFormat)) {
+ if (is16BPS(c->opts.dst_format) || isNBPS(c->opts.dst_format)) {
fillPlane16(dst[plane], dstStride[plane], length, height, y,
plane == 3, desc_dst->comp[plane].depth,
- isBE(c->dstFormat));
+ isBE(c->opts.dst_format));
} else {
fillPlane(dst[plane], dstStride[plane], length, height, y,
(plane == 3) ? 255 : 128);
}
} else {
- if(isNBPS(c->srcFormat) || isNBPS(c->dstFormat)
- || (is16BPS(c->srcFormat) != is16BPS(c->dstFormat))
+ if(isNBPS(c->opts.src_format) || isNBPS(c->opts.dst_format)
+ || (is16BPS(c->opts.src_format) != is16BPS(c->opts.dst_format))
) {
const int src_depth = desc_src->comp[plane].depth;
const int dst_depth = desc_dst->comp[plane].depth;
@@ -2167,7 +2167,7 @@ static int planarCopyWrapper(SwsInternal *c, const uint8_t *const src[],
uint16_t *dstPtr2 = (uint16_t*)dstPtr;
if (dst_depth == 8) {
- if(isBE(c->srcFormat) == HAVE_BIGENDIAN){
+ if(isBE(c->opts.src_format) == HAVE_BIGENDIAN){
DITHER_COPY(dstPtr, dstStride[plane], srcPtr2, srcStride[plane]/2, , )
} else {
DITHER_COPY(dstPtr, dstStride[plane], srcPtr2, srcStride[plane]/2, av_bswap16, )
@@ -2183,7 +2183,7 @@ static int planarCopyWrapper(SwsInternal *c, const uint8_t *const src[],
w(&dstPtr2[j], (srcPtr[j]<<(dst_depth-8)) |\
(srcPtr[j]>>(2*8-dst_depth)));\
}
- if(isBE(c->dstFormat)){
+ if(isBE(c->opts.dst_format)){
COPY816(AV_WB16)
} else {
COPY816(AV_WL16)
@@ -2194,8 +2194,8 @@ static int planarCopyWrapper(SwsInternal *c, const uint8_t *const src[],
} else if (src_depth <= dst_depth) {
for (i = 0; i < height; i++) {
j = 0;
- if(isBE(c->srcFormat) == HAVE_BIGENDIAN &&
- isBE(c->dstFormat) == HAVE_BIGENDIAN &&
+ if(isBE(c->opts.src_format) == HAVE_BIGENDIAN &&
+ isBE(c->opts.dst_format) == HAVE_BIGENDIAN &&
shiftonly) {
unsigned shift = dst_depth - src_depth;
#if HAVE_FAST_64BIT
@@ -2230,14 +2230,14 @@ static int planarCopyWrapper(SwsInternal *c, const uint8_t *const src[],
(v>>(2*src_depth-dst_depth)));\
}\
}
- if(isBE(c->srcFormat)){
- if(isBE(c->dstFormat)){
+ if(isBE(c->opts.src_format)){
+ if(isBE(c->opts.dst_format)){
COPY_UP(AV_RB16, AV_WB16)
} else {
COPY_UP(AV_RB16, AV_WL16)
}
} else {
- if(isBE(c->dstFormat)){
+ if(isBE(c->opts.dst_format)){
COPY_UP(AV_RL16, AV_WB16)
} else {
COPY_UP(AV_RL16, AV_WL16)
@@ -2247,22 +2247,22 @@ static int planarCopyWrapper(SwsInternal *c, const uint8_t *const src[],
srcPtr2 += srcStride[plane]/2;
}
} else {
- if(isBE(c->srcFormat) == HAVE_BIGENDIAN){
- if(isBE(c->dstFormat) == HAVE_BIGENDIAN){
+ if(isBE(c->opts.src_format) == HAVE_BIGENDIAN){
+ if(isBE(c->opts.dst_format) == HAVE_BIGENDIAN){
DITHER_COPY(dstPtr2, dstStride[plane]/2, srcPtr2, srcStride[plane]/2, , )
} else {
DITHER_COPY(dstPtr2, dstStride[plane]/2, srcPtr2, srcStride[plane]/2, , av_bswap16)
}
}else{
- if(isBE(c->dstFormat) == HAVE_BIGENDIAN){
+ if(isBE(c->opts.dst_format) == HAVE_BIGENDIAN){
DITHER_COPY(dstPtr2, dstStride[plane]/2, srcPtr2, srcStride[plane]/2, av_bswap16, )
} else {
DITHER_COPY(dstPtr2, dstStride[plane]/2, srcPtr2, srcStride[plane]/2, av_bswap16, av_bswap16)
}
}
}
- } else if (is16BPS(c->srcFormat) && is16BPS(c->dstFormat) &&
- isBE(c->srcFormat) != isBE(c->dstFormat)) {
+ } else if (is16BPS(c->opts.src_format) && is16BPS(c->opts.dst_format) &&
+ isBE(c->opts.src_format) != isBE(c->opts.dst_format)) {
for (i = 0; i < height; i++) {
for (j = 0; j < length; j++)
@@ -2270,8 +2270,8 @@ static int planarCopyWrapper(SwsInternal *c, const uint8_t *const src[],
srcPtr += srcStride[plane];
dstPtr += dstStride[plane];
}
- } else if (isFloat(c->srcFormat) && isFloat(c->dstFormat) &&
- isBE(c->srcFormat) != isBE(c->dstFormat)) { /* swap float plane */
+ } else if (isFloat(c->opts.src_format) && isFloat(c->opts.dst_format) &&
+ isBE(c->opts.src_format) != isBE(c->opts.dst_format)) { /* swap float plane */
for (i = 0; i < height; i++) {
for (j = 0; j < length; j++)
((uint32_t *) dstPtr)[j] = av_bswap32(((const uint32_t *) srcPtr)[j]);
@@ -2283,7 +2283,7 @@ static int planarCopyWrapper(SwsInternal *c, const uint8_t *const src[],
memcpy(dst[plane] + dstStride[plane] * y, src[plane],
height * dstStride[plane]);
} else {
- if (is16BPS(c->srcFormat) && is16BPS(c->dstFormat))
+ if (is16BPS(c->opts.src_format) && is16BPS(c->opts.dst_format))
length *= 2;
else if (desc_src->comp[0].depth == 1)
length >>= 3; // monowhite/black
@@ -2306,11 +2306,11 @@ static int planarCopyWrapper(SwsInternal *c, const uint8_t *const src[],
void ff_get_unscaled_swscale(SwsInternal *c)
{
- const enum AVPixelFormat srcFormat = c->srcFormat;
- const enum AVPixelFormat dstFormat = c->dstFormat;
- const int flags = c->flags;
- const int dstH = c->dstH;
- const int dstW = c->dstW;
+ const enum AVPixelFormat srcFormat = c->opts.src_format;
+ const enum AVPixelFormat dstFormat = c->opts.dst_format;
+ const int flags = c->opts.flags;
+ const int dstH = c->opts.dst_h;
+ const int dstW = c->opts.dst_w;
int needsDither;
needsDither = isAnyRGB(dstFormat) &&
@@ -2340,7 +2340,7 @@ void ff_get_unscaled_swscale(SwsInternal *c)
/* yuv2bgr */
if ((srcFormat == AV_PIX_FMT_YUV420P || srcFormat == AV_PIX_FMT_YUV422P ||
srcFormat == AV_PIX_FMT_YUVA420P) && isAnyRGB(dstFormat) &&
- !(flags & SWS_ACCURATE_RND) && (c->dither == SWS_DITHER_BAYER || c->dither == SWS_DITHER_AUTO) && !(dstH & 1)) {
+ !(flags & SWS_ACCURATE_RND) && (c->opts.dither == SWS_DITHER_BAYER || c->opts.dither == SWS_DITHER_AUTO) && !(dstH & 1)) {
c->convert_unscaled = ff_yuv2rgb_get_func_ptr(c);
c->dst_slice_align = 2;
}
@@ -2377,7 +2377,7 @@ void ff_get_unscaled_swscale(SwsInternal *c)
/* RGB/BGR -> RGB/BGR (no dither needed forms) */
if (isAnyRGB(srcFormat) && isAnyRGB(dstFormat) && findRgbConvFn(c)
- && (!needsDither || (c->flags&(SWS_FAST_BILINEAR|SWS_POINT))))
+ && (!needsDither || (c->opts.flags&(SWS_FAST_BILINEAR|SWS_POINT))))
c->convert_unscaled = rgbToRgbWrapper;
/* RGB to planar RGB */
@@ -2548,7 +2548,7 @@ void ff_get_unscaled_swscale(SwsInternal *c)
}
/* LQ converters if -sws 0 or -sws 4*/
- if (c->flags&(SWS_FAST_BILINEAR|SWS_POINT)) {
+ if (c->opts.flags&(SWS_FAST_BILINEAR|SWS_POINT)) {
/* yv12_to_yuy2 */
if (srcFormat == AV_PIX_FMT_YUV420P || srcFormat == AV_PIX_FMT_YUVA420P) {
if (dstFormat == AV_PIX_FMT_YUYV422)
@@ -2584,7 +2584,7 @@ void ff_get_unscaled_swscale(SwsInternal *c)
c->chrDstVSubSample == c->chrSrcVSubSample &&
!isSemiPlanarYUV(srcFormat) && !isSemiPlanarYUV(dstFormat))))
{
- if (isPacked(c->srcFormat))
+ if (isPacked(c->opts.src_format))
c->convert_unscaled = packedCopyWrapper;
else /* Planar YUV or gray */
c->convert_unscaled = planarCopyWrapper;