mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
Merge commit '6c1df1f2287401b6022773e382ebc3a3bfed0b38'
* commit '6c1df1f2287401b6022773e382ebc3a3bfed0b38':
sgi: encode images with 4 channels at 8 and 16 bits
Conflicts:
Changelog
libavcodec/sgienc.c
See: 21a1006109
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
4ebfcd62af
@ -397,7 +397,7 @@ version 0.10:
|
|||||||
- ffwavesynth decoder
|
- ffwavesynth decoder
|
||||||
- aviocat tool
|
- aviocat tool
|
||||||
- ffeval tool
|
- ffeval tool
|
||||||
- support decoding 4-channel SGI images
|
- support encoding and decoding 4-channel SGI images
|
||||||
|
|
||||||
|
|
||||||
version 0.9:
|
version 0.9:
|
||||||
|
@ -50,7 +50,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
const AVFrame * const p = frame;
|
const AVFrame * const p = frame;
|
||||||
uint8_t *offsettab, *lengthtab, *in_buf, *encode_buf, *buf;
|
uint8_t *offsettab, *lengthtab, *in_buf, *encode_buf, *buf;
|
||||||
int x, y, z, length, tablesize, ret;
|
int x, y, z, length, tablesize, ret;
|
||||||
unsigned int width, height, depth, dimension, bytes_per_channel, pixmax, put_be;
|
unsigned int width, height, depth, dimension;
|
||||||
|
unsigned int bytes_per_channel, pixmax, put_be;
|
||||||
unsigned char *end_buf;
|
unsigned char *end_buf;
|
||||||
|
|
||||||
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
|
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
|
||||||
@ -183,7 +184,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
|||||||
for (y = 0; y < height; y++) {
|
for (y = 0; y < height; y++) {
|
||||||
for (x = 0; x < width * depth; x += depth)
|
for (x = 0; x < width * depth; x += depth)
|
||||||
if (bytes_per_channel == 1) {
|
if (bytes_per_channel == 1) {
|
||||||
bytestream_put_byte(&buf, in_buf[x]);
|
bytestream_put_byte(&buf, in_buf[x]);
|
||||||
} else {
|
} else {
|
||||||
if (put_be) {
|
if (put_be) {
|
||||||
bytestream_put_be16(&buf, ((uint16_t *)in_buf)[x]);
|
bytestream_put_be16(&buf, ((uint16_t *)in_buf)[x]);
|
||||||
@ -223,7 +224,7 @@ AVCodec ff_sgi_encoder = {
|
|||||||
AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA,
|
AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA,
|
||||||
AV_PIX_FMT_RGB48LE, AV_PIX_FMT_RGB48BE,
|
AV_PIX_FMT_RGB48LE, AV_PIX_FMT_RGB48BE,
|
||||||
AV_PIX_FMT_RGBA64LE, AV_PIX_FMT_RGBA64BE,
|
AV_PIX_FMT_RGBA64LE, AV_PIX_FMT_RGBA64BE,
|
||||||
AV_PIX_FMT_GRAY16LE, AV_PIX_FMT_GRAY16BE,
|
AV_PIX_FMT_GRAY16LE, AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_GRAY8,
|
||||||
AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE
|
AV_PIX_FMT_NONE
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user