mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Add 32bit RGB support
Originally committed as revision 3912 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
e993bc03ac
commit
b2eef2f0ea
@ -116,7 +116,7 @@ static int decode_rle(CamtasiaContext *c, unsigned int srcsize)
|
||||
}
|
||||
pos += p2;
|
||||
} else { //Run of pixels
|
||||
int pix[3]; //original pixel
|
||||
int pix[4]; //original pixel
|
||||
switch(c->bpp){
|
||||
case 8: pix[0] = *src++;
|
||||
break;
|
||||
@ -127,6 +127,11 @@ static int decode_rle(CamtasiaContext *c, unsigned int srcsize)
|
||||
pix[1] = *src++;
|
||||
pix[2] = *src++;
|
||||
break;
|
||||
case 32: pix[0] = *src++;
|
||||
pix[1] = *src++;
|
||||
pix[2] = *src++;
|
||||
pix[3] = *src++;
|
||||
break;
|
||||
}
|
||||
if (output + p1 * (c->bpp / 8) > output_end)
|
||||
continue;
|
||||
@ -141,6 +146,11 @@ static int decode_rle(CamtasiaContext *c, unsigned int srcsize)
|
||||
*output++ = pix[1];
|
||||
*output++ = pix[2];
|
||||
break;
|
||||
case 32: *output++ = pix[0];
|
||||
*output++ = pix[1];
|
||||
*output++ = pix[2];
|
||||
*output++ = pix[3];
|
||||
break;
|
||||
}
|
||||
}
|
||||
pos += p1;
|
||||
@ -252,9 +262,10 @@ static int decode_init(AVCodecContext *avctx)
|
||||
switch(avctx->bits_per_sample){
|
||||
case 8: avctx->pix_fmt = PIX_FMT_PAL8; break;
|
||||
case 16: avctx->pix_fmt = PIX_FMT_RGB555; break;
|
||||
case 24: av_log(avctx, AV_LOG_ERROR, "Camtasia warning: RGB24 is just guessed\n");
|
||||
case 24:
|
||||
avctx->pix_fmt = PIX_FMT_BGR24;
|
||||
break;
|
||||
case 32: avctx->pix_fmt = PIX_FMT_RGBA32; break;
|
||||
default: av_log(avctx, AV_LOG_ERROR, "Camtasia error: unknown depth %i bpp\n", avctx->bits_per_sample);
|
||||
return -1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user