Based on the patch by Phil Barrett.tags/n0.11
| @@ -165,6 +165,10 @@ static int decode_frame_header(ProresContext *ctx, const uint8_t *buf, | |||||
| ctx->picture.top_field_first = ctx->frame_type & 1; | ctx->picture.top_field_first = ctx->frame_type & 1; | ||||
| } | } | ||||
| avctx->color_primaries = buf[14]; | |||||
| avctx->color_trc = buf[15]; | |||||
| avctx->colorspace = buf[16]; | |||||
| ctx->alpha_info = buf[17] & 0xf; | ctx->alpha_info = buf[17] & 0xf; | ||||
| if (ctx->alpha_info) | if (ctx->alpha_info) | ||||
| av_log_missing_feature(avctx, "alpha channel", 0); | av_log_missing_feature(avctx, "alpha channel", 0); | ||||
| @@ -689,9 +689,9 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, | |||||
| bytestream_put_be16 (&buf, avctx->height); | bytestream_put_be16 (&buf, avctx->height); | ||||
| bytestream_put_byte (&buf, ctx->chroma_factor << 6); // frame flags | bytestream_put_byte (&buf, ctx->chroma_factor << 6); // frame flags | ||||
| bytestream_put_byte (&buf, 0); // reserved | bytestream_put_byte (&buf, 0); // reserved | ||||
| bytestream_put_byte (&buf, 0); // primaries | |||||
| bytestream_put_byte (&buf, 0); // transfer function | |||||
| bytestream_put_byte (&buf, 6); // colour matrix - ITU-R BT.601-4 | |||||
| bytestream_put_byte (&buf, avctx->color_primaries); | |||||
| bytestream_put_byte (&buf, avctx->color_trc); | |||||
| bytestream_put_byte (&buf, avctx->colorspace); | |||||
| bytestream_put_byte (&buf, 0x40); // source format and alpha information | bytestream_put_byte (&buf, 0x40); // source format and alpha information | ||||
| bytestream_put_byte (&buf, 0); // reserved | bytestream_put_byte (&buf, 0); // reserved | ||||
| bytestream_put_byte (&buf, 0x03); // matrix flags - both matrices are present | bytestream_put_byte (&buf, 0x03); // matrix flags - both matrices are present | ||||
| @@ -1,4 +1,4 @@ | |||||
| c050b1a4905175211ead9979562366ff *./tests/data/vsynth1/prores.mov | |||||
| 2566517b15c62887bd94daaab1b1a85b *./tests/data/vsynth1/prores.mov | |||||
| 3859037 ./tests/data/vsynth1/prores.mov | 3859037 ./tests/data/vsynth1/prores.mov | ||||
| 0a4153637d0cc0a88a8bcbf04cfaf8c6 *./tests/data/prores.vsynth1.out.yuv | 0a4153637d0cc0a88a8bcbf04cfaf8c6 *./tests/data/prores.vsynth1.out.yuv | ||||
| stddev: 3.17 PSNR: 38.09 MAXDIFF: 39 bytes: 7603200/ 7603200 | stddev: 3.17 PSNR: 38.09 MAXDIFF: 39 bytes: 7603200/ 7603200 | ||||
| @@ -1,4 +1,4 @@ | |||||
| ecd11fa69712902143c0c54b193c9313 *./tests/data/vsynth2/prores.mov | |||||
| 28755ce05e812adbb8b7c180318ffba8 *./tests/data/vsynth2/prores.mov | |||||
| 3884722 ./tests/data/vsynth2/prores.mov | 3884722 ./tests/data/vsynth2/prores.mov | ||||
| ca2f6c1162635dedfa468c90f1fdc0ef *./tests/data/prores.vsynth2.out.yuv | ca2f6c1162635dedfa468c90f1fdc0ef *./tests/data/prores.vsynth2.out.yuv | ||||
| stddev: 0.92 PSNR: 48.77 MAXDIFF: 10 bytes: 7603200/ 7603200 | stddev: 0.92 PSNR: 48.77 MAXDIFF: 10 bytes: 7603200/ 7603200 | ||||