You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-07-11 14:30:22 +02:00
avcodec/exrenc: add grayf32 format support
This commit is contained in:
@ -54,8 +54,10 @@ enum ExrPixelType {
|
|||||||
|
|
||||||
static const char abgr_chlist[4] = { 'A', 'B', 'G', 'R' };
|
static const char abgr_chlist[4] = { 'A', 'B', 'G', 'R' };
|
||||||
static const char bgr_chlist[4] = { 'B', 'G', 'R', 'A' };
|
static const char bgr_chlist[4] = { 'B', 'G', 'R', 'A' };
|
||||||
|
static const char y_chlist[4] = { 'Y' };
|
||||||
static const uint8_t gbra_order[4] = { 3, 1, 0, 2 };
|
static const uint8_t gbra_order[4] = { 3, 1, 0, 2 };
|
||||||
static const uint8_t gbr_order[4] = { 1, 0, 2, 0 };
|
static const uint8_t gbr_order[4] = { 1, 0, 2, 0 };
|
||||||
|
static const uint8_t y_order[4] = { 0 };
|
||||||
|
|
||||||
typedef struct EXRScanlineData {
|
typedef struct EXRScanlineData {
|
||||||
uint8_t *compressed_data;
|
uint8_t *compressed_data;
|
||||||
@ -106,6 +108,11 @@ static int encode_init(AVCodecContext *avctx)
|
|||||||
s->ch_names = abgr_chlist;
|
s->ch_names = abgr_chlist;
|
||||||
s->ch_order = gbra_order;
|
s->ch_order = gbra_order;
|
||||||
break;
|
break;
|
||||||
|
case AV_PIX_FMT_GRAYF32:
|
||||||
|
s->planes = 1;
|
||||||
|
s->ch_names = y_chlist;
|
||||||
|
s->ch_order = y_order;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
av_assert0(0);
|
av_assert0(0);
|
||||||
}
|
}
|
||||||
@ -546,6 +553,7 @@ const FFCodec ff_exr_encoder = {
|
|||||||
FF_CODEC_ENCODE_CB(encode_frame),
|
FF_CODEC_ENCODE_CB(encode_frame),
|
||||||
.close = encode_close,
|
.close = encode_close,
|
||||||
.p.pix_fmts = (const enum AVPixelFormat[]) {
|
.p.pix_fmts = (const enum AVPixelFormat[]) {
|
||||||
|
AV_PIX_FMT_GRAYF32,
|
||||||
AV_PIX_FMT_GBRPF32,
|
AV_PIX_FMT_GBRPF32,
|
||||||
AV_PIX_FMT_GBRAPF32,
|
AV_PIX_FMT_GBRAPF32,
|
||||||
AV_PIX_FMT_NONE },
|
AV_PIX_FMT_NONE },
|
||||||
|
Reference in New Issue
Block a user