diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2025-01-18 04:25:42 +0100 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2025-03-08 20:55:38 +0100 |
commit | c1b330bf2421cf3400e185ecd65dd69308891f19 (patch) | |
tree | 10308e4644b622654dd1705cecbcc6dda447b700 /libavcodec/ffv1_parse.c | |
parent | 114e9864e14d8fcd44a7c6f5c7d302764d7607b5 (diff) | |
download | ffmpeg-c1b330bf2421cf3400e185ecd65dd69308891f19.tar.gz |
avcodec/ffv1: Basic float16 support
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/ffv1_parse.c')
-rw-r--r-- | libavcodec/ffv1_parse.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libavcodec/ffv1_parse.c b/libavcodec/ffv1_parse.c index 636e2c62ab..a85b563e98 100644 --- a/libavcodec/ffv1_parse.c +++ b/libavcodec/ffv1_parse.c @@ -172,6 +172,8 @@ int ff_ffv1_read_extra_header(FFV1Context *f) f->crcref = 0x7a8c4079; if (f->combined_version >= 0x30003) f->intra = ff_ffv1_get_symbol(&c, state, 0); + if (f->combined_version >= 0x40004) + f->flt = ff_ffv1_get_symbol(&c, state, 0); } if (f->version > 2) { @@ -401,10 +403,16 @@ int ff_ffv1_parse_header(FFV1Context *f, RangeCoder *c, uint8_t *state) else if (f->avctx->bits_per_raw_sample == 14 && f->transparency) f->pix_fmt = AV_PIX_FMT_GBRAP14; else if (f->avctx->bits_per_raw_sample == 16 && !f->transparency) { - f->pix_fmt = AV_PIX_FMT_GBRP16; + if (f->flt) { + f->pix_fmt = AV_PIX_FMT_GBRPF16; + } else + f->pix_fmt = AV_PIX_FMT_GBRP16; f->use32bit = 1; } else if (f->avctx->bits_per_raw_sample == 16 && f->transparency) { - f->pix_fmt = AV_PIX_FMT_GBRAP16; + if (f->flt) { + f->pix_fmt = AV_PIX_FMT_GBRAPF16; + } else + f->pix_fmt = AV_PIX_FMT_GBRAP16; f->use32bit = 1; } } else { |