[FFmpeg-devel] [PATCH] swscale-example: Make selection of dstW, dstH, and flags more clear.

Ramiro Polla ramiro.polla
Thu Aug 13 17:28:36 CEST 2009


On Thu, Aug 13, 2009 at 11:01 AM, Reimar
D?ffinger<Reimar.Doeffinger at gmx.de> wrote:
> On Wed, Aug 12, 2009 at 09:44:25PM -0300, Ramiro Polla wrote:
>> diff --git a/swscale-example.c b/swscale-example.c
>> index f54bdc4..4c46589 100644
>> --- a/swscale-example.c
>> +++ b/swscale-example.c
>> @@ -179,12 +179,17 @@ static int doTest(uint8_t *ref[4], int refStride[4], int w, int h, int srcFormat
>> ?}
>>
>> ?static void selfTest(uint8_t *src[4], int stride[4], int w, int h){
>> + ? ?const int flags[] = { SWS_BILINEAR, SWS_BICUBIC,
>> + ? ? ? ? ? ? ? ? ? ? ? ? ?SWS_X ? ? ? , SWS_POINT ?, SWS_AREA, 0 };
>> + ? ?const int srcW = w;
>> + ? ?const int srcH = h;
>> + ? ?const int dstW[] = { srcW - srcW/3, srcW, srcW + srcW/3, 0 };
>> + ? ?const int dstH[] = { srcH - srcH/3, srcH, srcH + srcH/3, 0 };
>> ? ? ?enum PixelFormat srcFormat, dstFormat;
>> - ? ?int srcW, srcH, dstW, dstH;
>> - ? ?int flags;
>>
>> ? ? ?for (srcFormat = 0; srcFormat < PIX_FMT_NB; srcFormat++) {
>> ? ? ? ? ?for (dstFormat = 0; dstFormat < PIX_FMT_NB; dstFormat++) {
>> + ? ? ? ? ? ?int i, j, k;
>> ? ? ? ? ? ? ?int res = 0;
>>
>> ? ? ? ? ? ? ?printf("%s -> %s\n",
>> @@ -192,13 +197,11 @@ static void selfTest(uint8_t *src[4], int stride[4], int w, int h){
>> ? ? ? ? ? ? ? ? ? ? sws_format_name(dstFormat));
>> ? ? ? ? ? ? ?fflush(stdout);
>>
>> - ? ? ? ? ? ?srcW= w;
>> - ? ? ? ? ? ?srcH= h;
>> - ? ? ? ? ? ?for (dstW=w - w/3; !res && dstW<= 4*w/3; dstW+= w/3)
>> - ? ? ? ? ? ? ? ?for (dstH=h - h/3; !res && dstH<= 4*h/3; dstH+= h/3)
>> - ? ? ? ? ? ? ? ? ? ?for (flags=2; !res && flags<33; flags*=2)
>> + ? ? ? ? ? ?for (i = 0; dstW[i] && !res; i++)
>> + ? ? ? ? ? ? ? ?for (j = 0; dstH[j] && !res; j++)
>> + ? ? ? ? ? ? ? ? ? ?for (k = 0; flags[k] && !res; k++)
>> ? ? ? ? ? ? ? ? ? ? ? ? ?res = doTest(src, stride, w, h, srcFormat, dstFormat,
>> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? srcW, srcH, dstW, dstH, flags);
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? srcW, srcH, dstW[i], dstH[j], flags[k]);
>> ? ? ? ? ?}
>
> Using 0-termination means you can't test 0 values. Maybe not too useful,
> but still.

It's not a problem here. flag 0 is not allowed and heigh/width 0 isn't either =)

> I think it might be better to either use
> const int flags[NUM_TEST_FLAGS] = ..
> k < NUM_TEST_FLAGS
> or reimplement FF_ARRAY_ELEMS

I was trying to avoid this...



More information about the ffmpeg-devel mailing list