mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
libutvideo: Add ULH0 and ULH2 decoding when using version 13.0.1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
0047da071e
commit
8ed6c13fe3
@ -21,7 +21,8 @@
|
||||
/**
|
||||
* @file
|
||||
* Known FOURCCs:
|
||||
* 'ULY0' (YCbCr 4:2:0), 'ULY2' (YCbCr 4:2:2), 'ULRG' (RGB), 'ULRA' (RGBA)
|
||||
* 'ULY0' (YCbCr 4:2:0), 'ULY2' (YCbCr 4:2:2), 'ULRG' (RGB), 'ULRA' (RGBA),
|
||||
* 'ULH0' (YCbCr 4:2:0 BT.709), 'ULH2' (YCbCr 4:2:2 BT.709)
|
||||
*/
|
||||
|
||||
#ifndef AVCODEC_LIBUTVIDEO_H
|
||||
@ -45,6 +46,14 @@
|
||||
#define UTVF_NFCC_BGRA_BU UTVF_RGB32_WIN
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Ut Video version 13.0.1 introduced new BT.709 variants.
|
||||
* Special-case these and only use them if v13 is detected.
|
||||
*/
|
||||
#if defined(UTVF_HDYC)
|
||||
#define UTV_BT709
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
uint32_t version;
|
||||
uint32_t original_format;
|
||||
|
@ -21,7 +21,8 @@
|
||||
/**
|
||||
* @file
|
||||
* Known FOURCCs:
|
||||
* 'ULY0' (YCbCr 4:2:0), 'ULY2' (YCbCr 4:2:2), 'ULRG' (RGB), 'ULRA' (RGBA)
|
||||
* 'ULY0' (YCbCr 4:2:0), 'ULY2' (YCbCr 4:2:2), 'ULRG' (RGB), 'ULRA' (RGBA),
|
||||
* 'ULH0' (YCbCr 4:2:0 BT.709), 'ULH2' (YCbCr 4:2:2 BT.709)
|
||||
*/
|
||||
|
||||
extern "C" {
|
||||
@ -51,6 +52,20 @@ static av_cold int utvideo_decode_init(AVCodecContext *avctx)
|
||||
|
||||
/* Pick format based on FOURCC */
|
||||
switch (avctx->codec_tag) {
|
||||
#ifdef UTV_BT709
|
||||
case MKTAG('U', 'L', 'H', '0'):
|
||||
avctx->pix_fmt = AV_PIX_FMT_YUV420P;
|
||||
avctx->color_primaries = AVCOL_PRI_BT709;
|
||||
avctx->colorspace = AVCOL_SPC_BT709;
|
||||
format = UTVF_YV12;
|
||||
break;
|
||||
case MKTAG('U', 'L', 'H', '2'):
|
||||
avctx->pix_fmt = AV_PIX_FMT_YUYV422;
|
||||
avctx->color_primaries = AVCOL_PRI_BT709;
|
||||
avctx->colorspace = AVCOL_SPC_BT709;
|
||||
format = UTVF_YUY2;
|
||||
break;
|
||||
#endif
|
||||
case MKTAG('U', 'L', 'Y', '0'):
|
||||
avctx->pix_fmt = AV_PIX_FMT_YUV420P;
|
||||
format = UTVF_YV12;
|
||||
|
@ -21,7 +21,8 @@
|
||||
/**
|
||||
* @file
|
||||
* Known FOURCCs:
|
||||
* 'ULY0' (YCbCr 4:2:0), 'ULY2' (YCbCr 4:2:2), 'ULRG' (RGB), 'ULRA' (RGBA)
|
||||
* 'ULY0' (YCbCr 4:2:0), 'ULY2' (YCbCr 4:2:2), 'ULRG' (RGB), 'ULRA' (RGBA),
|
||||
* 'ULH0' (YCbCr 4:2:0 BT.709), 'ULH2' (YCbCr 4:2:2 BT.709)
|
||||
*/
|
||||
|
||||
extern "C" {
|
||||
|
@ -330,6 +330,9 @@ const AVCodecTag ff_codec_bmp_tags[] = {
|
||||
{ AV_CODEC_ID_UTVIDEO, MKTAG('U', 'L', 'R', 'G') },
|
||||
{ AV_CODEC_ID_UTVIDEO, MKTAG('U', 'L', 'Y', '0') },
|
||||
{ AV_CODEC_ID_UTVIDEO, MKTAG('U', 'L', 'Y', '2') },
|
||||
/* Ut Video version 13.0.1 BT.709 codecs */
|
||||
{ AV_CODEC_ID_UTVIDEO, MKTAG('U', 'L', 'H', '0') },
|
||||
{ AV_CODEC_ID_UTVIDEO, MKTAG('U', 'L', 'H', '2') },
|
||||
{ AV_CODEC_ID_VBLE, MKTAG('V', 'B', 'L', 'E') },
|
||||
{ AV_CODEC_ID_ESCAPE130, MKTAG('E', '1', '3', '0') },
|
||||
{ AV_CODEC_ID_DXTORY, MKTAG('x', 't', 'o', 'r') },
|
||||
|
Loading…
Reference in New Issue
Block a user