mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-25 12:40:01 +00:00
avcodec/magicyuv: export colorspace and color_range for YUV
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
67db4ff3b6
commit
12461636ea
@ -57,6 +57,8 @@ typedef struct MagicYUVContext {
|
||||
int nb_slices;
|
||||
int planes; // number of encoded planes in bitstream
|
||||
int decorrelate; // postprocessing work
|
||||
int color_matrix; // video color matrix
|
||||
int flags;
|
||||
int interlaced; // video is interlaced
|
||||
uint8_t *buf; // pointer to AVPacket->data
|
||||
int hshift[4];
|
||||
@ -568,8 +570,10 @@ static int magy_decode_frame(AVCodecContext *avctx, void *data,
|
||||
}
|
||||
s->planes = av_pix_fmt_count_planes(avctx->pix_fmt);
|
||||
|
||||
bytestream2_skip(&gbyte, 2);
|
||||
s->interlaced = !!(bytestream2_get_byte(&gbyte) & 2);
|
||||
bytestream2_skip(&gbyte, 1);
|
||||
s->color_matrix = bytestream2_get_byte(&gbyte);
|
||||
s->flags = bytestream2_get_byte(&gbyte);
|
||||
s->interlaced = !!(s->flags & 2);
|
||||
bytestream2_skip(&gbyte, 3);
|
||||
|
||||
width = bytestream2_get_le32(&gbyte);
|
||||
@ -659,6 +663,16 @@ static int magy_decode_frame(AVCodecContext *avctx, void *data,
|
||||
avctx->pix_fmt == AV_PIX_FMT_GBRAP10) {
|
||||
FFSWAP(uint8_t*, p->data[0], p->data[1]);
|
||||
FFSWAP(int, p->linesize[0], p->linesize[1]);
|
||||
} else {
|
||||
switch (s->color_matrix) {
|
||||
case 1:
|
||||
p->colorspace = AVCOL_SPC_BT470BG;
|
||||
break;
|
||||
case 2:
|
||||
p->colorspace = AVCOL_SPC_BT709;
|
||||
break;
|
||||
}
|
||||
p->color_range = (s->flags & 4) ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG;
|
||||
}
|
||||
|
||||
*got_frame = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user