mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
avcodec/huffyuv: add GBRP support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
49a5912440
commit
22f59a8cbe
@ -364,6 +364,9 @@ static av_cold int decode_init(AVCodecContext *avctx)
|
||||
&s->chroma_v_shift);
|
||||
} else {
|
||||
switch ( (s->chroma<<10) | (s->yuv<<9) | (s->alpha<<8) | ((s->bps-1)<<4) | s->chroma_h_shift | (s->chroma_v_shift<<2)) {
|
||||
case 0x470:
|
||||
avctx->pix_fmt = AV_PIX_FMT_GBRP;
|
||||
break;
|
||||
case 0x670:
|
||||
avctx->pix_fmt = AV_PIX_FMT_YUV444P;
|
||||
break;
|
||||
|
@ -186,6 +186,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
|
||||
case AV_PIX_FMT_YUV410P:
|
||||
case AV_PIX_FMT_YUV411P:
|
||||
case AV_PIX_FMT_YUV440P:
|
||||
case AV_PIX_FMT_GBRP:
|
||||
s->version = 3;
|
||||
break;
|
||||
case AV_PIX_FMT_RGB32:
|
||||
@ -200,7 +201,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
|
||||
}
|
||||
|
||||
avctx->bits_per_coded_sample = s->bitstream_bpp;
|
||||
s->decorrelate = s->bitstream_bpp >= 24 && !s->yuv;
|
||||
s->decorrelate = s->bitstream_bpp >= 24 && !s->yuv && avctx->pix_fmt != AV_PIX_FMT_GBRP;
|
||||
s->predictor = avctx->prediction_method;
|
||||
s->interlaced = avctx->flags&CODEC_FLAG_INTERLACED_ME ? 1 : 0;
|
||||
if (avctx->context_model == 1) {
|
||||
@ -720,7 +721,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
|
||||
}
|
||||
encode_bgra_bitstream(s, width, 3);
|
||||
}
|
||||
} else if (s->yuv) {
|
||||
} else if (s->version > 2) {
|
||||
int plane;
|
||||
for (plane = 0; plane < 1 + 2*s->chroma + s->alpha; plane++) {
|
||||
int left, y;
|
||||
@ -856,6 +857,7 @@ AVCodec ff_ffvhuff_encoder = {
|
||||
.pix_fmts = (const enum AVPixelFormat[]){
|
||||
AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUV411P,
|
||||
AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV440P,
|
||||
AV_PIX_FMT_GBRP,
|
||||
AV_PIX_FMT_RGB24,
|
||||
AV_PIX_FMT_RGB32, AV_PIX_FMT_NONE
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user