mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 12:09:55 +00:00
cosmetics: K&R coding style, prettyprinting
Originally committed as revision 20115 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
a8b95021e5
commit
37a4269d70
@ -31,7 +31,8 @@ typedef struct SgiContext {
|
||||
AVFrame picture;
|
||||
} SgiContext;
|
||||
|
||||
static av_cold int encode_init(AVCodecContext *avctx){
|
||||
static av_cold int encode_init(AVCodecContext *avctx)
|
||||
{
|
||||
SgiContext *s = avctx->priv_data;
|
||||
|
||||
avcodec_get_frame_defaults(&s->picture);
|
||||
@ -41,7 +42,8 @@ static av_cold int encode_init(AVCodecContext *avctx){
|
||||
}
|
||||
|
||||
static int encode_frame(AVCodecContext *avctx, unsigned char *buf,
|
||||
int buf_size, void *data) {
|
||||
int buf_size, void *data)
|
||||
{
|
||||
SgiContext *s = avctx->priv_data;
|
||||
AVFrame * const p = &s->picture;
|
||||
uint8_t *offsettab, *lengthtab, *in_buf, *encode_buf;
|
||||
@ -53,24 +55,24 @@ static int encode_frame(AVCodecContext *avctx, unsigned char *buf,
|
||||
p->pict_type = FF_I_TYPE;
|
||||
p->key_frame = 1;
|
||||
|
||||
width = avctx->width;
|
||||
width = avctx->width;
|
||||
height = avctx->height;
|
||||
|
||||
switch (avctx->pix_fmt) {
|
||||
case PIX_FMT_GRAY8:
|
||||
dimension = SGI_SINGLE_CHAN;
|
||||
depth = SGI_GRAYSCALE;
|
||||
break;
|
||||
case PIX_FMT_RGB24:
|
||||
dimension = SGI_MULTI_CHAN;
|
||||
depth = SGI_RGB;
|
||||
break;
|
||||
case PIX_FMT_RGBA:
|
||||
dimension = SGI_MULTI_CHAN;
|
||||
depth = SGI_RGBA;
|
||||
break;
|
||||
default:
|
||||
return AVERROR_INVALIDDATA;
|
||||
case PIX_FMT_GRAY8:
|
||||
dimension = SGI_SINGLE_CHAN;
|
||||
depth = SGI_GRAYSCALE;
|
||||
break;
|
||||
case PIX_FMT_RGB24:
|
||||
dimension = SGI_MULTI_CHAN;
|
||||
depth = SGI_RGB;
|
||||
break;
|
||||
case PIX_FMT_RGBA:
|
||||
dimension = SGI_MULTI_CHAN;
|
||||
depth = SGI_RGBA;
|
||||
break;
|
||||
default:
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
|
||||
tablesize = depth * height * 4;
|
||||
@ -107,51 +109,51 @@ static int encode_frame(AVCodecContext *avctx, unsigned char *buf,
|
||||
offsettab = buf;
|
||||
|
||||
if (avctx->coder_type != FF_CODER_TYPE_RAW) {
|
||||
/* Skip RLE offset table. */
|
||||
buf += tablesize;
|
||||
lengthtab = buf;
|
||||
/* Skip RLE offset table. */
|
||||
buf += tablesize;
|
||||
lengthtab = buf;
|
||||
|
||||
/* Skip RLE length table. */
|
||||
buf += tablesize;
|
||||
/* Skip RLE length table. */
|
||||
buf += tablesize;
|
||||
|
||||
/* Make an intermediate consecutive buffer. */
|
||||
if ((encode_buf = av_malloc(width)) == NULL)
|
||||
return -1;
|
||||
/* Make an intermediate consecutive buffer. */
|
||||
if ((encode_buf = av_malloc(width)) == NULL)
|
||||
return -1;
|
||||
|
||||
for (z = 0; z < depth; z++) {
|
||||
in_buf = p->data[0] + p->linesize[0] * (height - 1) + z;
|
||||
|
||||
for (y = 0; y < height; y++) {
|
||||
bytestream_put_be32(&offsettab, buf - orig_buf);
|
||||
|
||||
for (x = 0; x < width; x++)
|
||||
encode_buf[x] = in_buf[depth * x];
|
||||
|
||||
if((length = ff_rle_encode(buf, end_buf - buf - 1, encode_buf, 1, width, 0, 0, 0x80, 0)) < 1) {
|
||||
av_free(encode_buf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
buf += length;
|
||||
bytestream_put_byte(&buf, 0);
|
||||
bytestream_put_be32(&lengthtab, length + 1);
|
||||
in_buf -= p->linesize[0];
|
||||
}
|
||||
}
|
||||
|
||||
av_free(encode_buf);
|
||||
} else {
|
||||
for (z = 0; z < depth; z++) {
|
||||
in_buf = p->data[0] + p->linesize[0] * (height - 1) + z;
|
||||
|
||||
for (y = 0; y < height; y++) {
|
||||
for (x = 0; x < width * depth; x += depth)
|
||||
bytestream_put_byte(&buf, in_buf[x]);
|
||||
bytestream_put_be32(&offsettab, buf - orig_buf);
|
||||
|
||||
for (x = 0; x < width; x++)
|
||||
encode_buf[x] = in_buf[depth * x];
|
||||
|
||||
if ((length = ff_rle_encode(buf, end_buf - buf - 1, encode_buf, 1, width, 0, 0, 0x80, 0)) < 1) {
|
||||
av_free(encode_buf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
buf += length;
|
||||
bytestream_put_byte(&buf, 0);
|
||||
bytestream_put_be32(&lengthtab, length + 1);
|
||||
in_buf -= p->linesize[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
av_free(encode_buf);
|
||||
} else {
|
||||
for (z = 0; z < depth; z++) {
|
||||
in_buf = p->data[0] + p->linesize[0] * (height - 1) + z;
|
||||
|
||||
for (y = 0; y < height; y++) {
|
||||
for (x = 0; x < width * depth; x += depth)
|
||||
bytestream_put_byte(&buf, in_buf[x]);
|
||||
|
||||
in_buf -= p->linesize[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* total length */
|
||||
return buf - orig_buf;
|
||||
@ -168,4 +170,3 @@ AVCodec sgi_encoder = {
|
||||
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_RGB24, PIX_FMT_RGBA, PIX_FMT_GRAY8, PIX_FMT_NONE},
|
||||
.long_name= NULL_IF_CONFIG_SMALL("SGI image"),
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user