Merge remote-tracking branch 'rbultje/vp9-profile23-wip'

* rbultje/vp9-profile23-wip:
  libvpxdec: add 440 pixfmts.
  vp9: add profile 2/3 fate tests.
  vp9: add inter-frame profile 2/3 suport.
  vp9: add keyframe profile 2/3 support.
  vp9: parse profile 2/3 bitdepth in frame header.
  vp9: add profile 2/3 to exported profiles.
  fate: add/update reference files for 440 addition.
  swscale: add yuv440p10/12 pixfmts.
  lavc: add yuv440p10/12 formats to aligned pixfmt list.
  lavu: add yuv440p10/12 pixfmts.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
pull/135/merge
Michael Niedermayer 10 years ago
commit b28d5c49f7
  1. 3
      libavcodec/Makefile
  2. 2
      libavcodec/avcodec.h
  3. 17
      libavcodec/libvpxdec.c
  4. 4
      libavcodec/utils.c
  5. 545
      libavcodec/vp9.c
  6. 37
      libavcodec/vp9_mc_template.c
  7. 268
      libavcodec/vp9data.h
  8. 2218
      libavcodec/vp9dsp.c
  9. 8
      libavcodec/vp9dsp.h
  10. 26
      libavcodec/vp9dsp_10bpp.c
  11. 26
      libavcodec/vp9dsp_12bpp.c
  12. 26
      libavcodec/vp9dsp_8bpp.c
  13. 2517
      libavcodec/vp9dsp_template.c
  14. 4
      libavcodec/x86/vp9dsp_init.c
  15. 48
      libavutil/pixdesc.c
  16. 6
      libavutil/pixfmt.h
  17. 8
      libswscale/input.c
  18. 2
      libswscale/swscale_unscaled.c
  19. 4
      libswscale/utils.c
  20. 10
      tests/fate/vpx.mak
  21. 1
      tests/ref/fate/filter-pixdesc-yuv440p10be
  22. 1
      tests/ref/fate/filter-pixdesc-yuv440p10le
  23. 1
      tests/ref/fate/filter-pixdesc-yuv440p12be
  24. 1
      tests/ref/fate/filter-pixdesc-yuv440p12le
  25. 4
      tests/ref/fate/filter-pixfmts-copy
  26. 4
      tests/ref/fate/filter-pixfmts-crop
  27. 4
      tests/ref/fate/filter-pixfmts-field
  28. 4
      tests/ref/fate/filter-pixfmts-hflip
  29. 4
      tests/ref/fate/filter-pixfmts-il
  30. 4
      tests/ref/fate/filter-pixfmts-null
  31. 4
      tests/ref/fate/filter-pixfmts-scale
  32. 4
      tests/ref/fate/filter-pixfmts-swapuv
  33. 4
      tests/ref/fate/filter-pixfmts-vflip
  34. 15
      tests/ref/fate/vp9p2-20-10bit-yuv420
  35. 15
      tests/ref/fate/vp9p2-20-12bit-yuv420
  36. 15
      tests/ref/fate/vp9p3-20-10bit-yuv422
  37. 25
      tests/ref/fate/vp9p3-20-10bit-yuv440
  38. 15
      tests/ref/fate/vp9p3-20-10bit-yuv444
  39. 15
      tests/ref/fate/vp9p3-20-12bit-yuv422
  40. 25
      tests/ref/fate/vp9p3-20-12bit-yuv440
  41. 15
      tests/ref/fate/vp9p3-20-12bit-yuv444

@ -515,7 +515,8 @@ OBJS-$(CONFIG_VP6_DECODER) += vp6.o vp56.o vp56data.o vp56dsp.o \
vp6dsp.o vp56rac.o
OBJS-$(CONFIG_VP7_DECODER) += vp8.o vp8dsp.o vp56rac.o
OBJS-$(CONFIG_VP8_DECODER) += vp8.o vp8dsp.o vp56rac.o
OBJS-$(CONFIG_VP9_DECODER) += vp9.o vp9dsp.o vp56rac.o
OBJS-$(CONFIG_VP9_DECODER) += vp9.o vp9dsp.o vp56rac.o vp9dsp_8bpp.o \
vp9dsp_10bpp.o vp9dsp_12bpp.o
OBJS-$(CONFIG_VPLAYER_DECODER) += textdec.o ass.o
OBJS-$(CONFIG_VQA_DECODER) += vqavideo.o
OBJS-$(CONFIG_WAVPACK_DECODER) += wavpack.o

@ -2914,6 +2914,8 @@ typedef struct AVCodecContext {
#define FF_PROFILE_VP9_0 0
#define FF_PROFILE_VP9_1 1
#define FF_PROFILE_VP9_2 2
#define FF_PROFILE_VP9_3 3
/**
* level

@ -72,6 +72,11 @@ static int set_pix_fmt(AVCodecContext *avctx, struct vpx_image *img)
case VPX_IMG_FMT_I422:
avctx->pix_fmt = AV_PIX_FMT_YUV422P;
return 0;
#if VPX_IMAGE_ABI_VERSION >= 3
case VPX_IMG_FMT_I440:
avctx->pix_fmt = AV_PIX_FMT_YUV440P;
return 0;
#endif
case VPX_IMG_FMT_I444:
avctx->pix_fmt = AV_PIX_FMT_YUV444P;
return 0;
@ -96,6 +101,18 @@ static int set_pix_fmt(AVCodecContext *avctx, struct vpx_image *img)
} else {
return AVERROR_INVALIDDATA;
}
#if VPX_IMAGE_ABI_VERSION >= 3
case VPX_IMG_FMT_I44016:
if (img->bit_depth == 10) {
avctx->pix_fmt = AV_PIX_FMT_YUV440P10LE;
return 0;
} else if (img->bit_depth == 12) {
avctx->pix_fmt = AV_PIX_FMT_YUV440P12LE;
return 0;
} else {
return AVERROR_INVALIDDATA;
}
#endif
case VPX_IMG_FMT_I44416:
if (img->bit_depth == 10) {
avctx->pix_fmt = AV_PIX_FMT_YUV444P10LE;

@ -341,6 +341,10 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
case AV_PIX_FMT_YUVA422P10BE:
case AV_PIX_FMT_YUVA422P16LE:
case AV_PIX_FMT_YUVA422P16BE:
case AV_PIX_FMT_YUV440P10LE:
case AV_PIX_FMT_YUV440P10BE:
case AV_PIX_FMT_YUV440P12LE:
case AV_PIX_FMT_YUV440P12BE:
case AV_PIX_FMT_YUV444P9LE:
case AV_PIX_FMT_YUV444P9BE:
case AV_PIX_FMT_YUV444P10LE:

File diff suppressed because it is too large Load Diff

@ -40,6 +40,7 @@ static void FN(inter_pred)(AVCodecContext *ctx)
AVFrame *ref1 = tref1->f, *ref2;
int w1 = ref1->width, h1 = ref1->height, w2, h2;
ptrdiff_t ls_y = s->y_stride, ls_uv = s->uv_stride;
int bytesperpixel = BYTES_PER_PIXEL;
if (b->comp) {
tref2 = &s->refs[s->refidx[b->ref[1]]];
@ -138,7 +139,7 @@ static void FN(inter_pred)(AVCodecContext *ctx)
mc_luma_dir(s, mc[4][b->filter][0], s->dst[0], ls_y,
ref1->data[0], ref1->linesize[0], tref1,
row << 3, col << 3, &b->mv[0][0], 4, 8, w1, h1, 0);
mc_luma_dir(s, mc[4][b->filter][0], s->dst[0] + 4, ls_y,
mc_luma_dir(s, mc[4][b->filter][0], s->dst[0] + 4 * bytesperpixel, ls_y,
ref1->data[0], ref1->linesize[0], tref1,
row << 3, (col << 3) + 4, &b->mv[1][0], 4, 8, w1, h1, 0);
h1 = (h1 + s->ss_v) >> s->ss_v;
@ -159,7 +160,8 @@ static void FN(inter_pred)(AVCodecContext *ctx)
row << (3 - s->ss_v), col << 3,
&b->mv[0][0], 4, 8 >> s->ss_v, w1, h1, 0);
mc_chroma_dir(s, mc[4][b->filter][0],
s->dst[1] + 4, s->dst[2] + 4, ls_uv,
s->dst[1] + 4 * bytesperpixel,
s->dst[2] + 4 * bytesperpixel, ls_uv,
ref1->data[1], ref1->linesize[1],
ref1->data[2], ref1->linesize[2], tref1,
row << (3 - s->ss_v), (col << 3) + 4,
@ -170,7 +172,7 @@ static void FN(inter_pred)(AVCodecContext *ctx)
mc_luma_dir(s, mc[4][b->filter][1], s->dst[0], ls_y,
ref2->data[0], ref2->linesize[0], tref2,
row << 3, col << 3, &b->mv[0][1], 4, 8, w2, h2, 1);
mc_luma_dir(s, mc[4][b->filter][1], s->dst[0] + 4, ls_y,
mc_luma_dir(s, mc[4][b->filter][1], s->dst[0] + 4 * bytesperpixel, ls_y,
ref2->data[0], ref2->linesize[0], tref2,
row << 3, (col << 3) + 4, &b->mv[1][1], 4, 8, w2, h2, 1);
h2 = (h2 + s->ss_v) >> s->ss_v;
@ -191,7 +193,8 @@ static void FN(inter_pred)(AVCodecContext *ctx)
row << (3 - s->ss_v), col << 3,
&b->mv[0][1], 4, 8 >> s->ss_v, w2, h2, 1);
mc_chroma_dir(s, mc[4][b->filter][1],
s->dst[1] + 4, s->dst[2] + 4, ls_uv,
s->dst[1] + 4 * bytesperpixel,
s->dst[2] + 4 * bytesperpixel, ls_uv,
ref2->data[1], ref2->linesize[1],
ref2->data[2], ref2->linesize[2], tref2,
row << (3 - s->ss_v), (col << 3) + 4,
@ -206,7 +209,7 @@ static void FN(inter_pred)(AVCodecContext *ctx)
mc_luma_dir(s, mc[4][b->filter][0], s->dst[0], ls_y,
ref1->data[0], ref1->linesize[0], tref1,
row << 3, col << 3, &b->mv[0][0], 4, 4, w1, h1, 0);
mc_luma_dir(s, mc[4][b->filter][0], s->dst[0] + 4, ls_y,
mc_luma_dir(s, mc[4][b->filter][0], s->dst[0] + 4 * bytesperpixel, ls_y,
ref1->data[0], ref1->linesize[0], tref1,
row << 3, (col << 3) + 4, &b->mv[1][0], 4, 4, w1, h1, 0);
mc_luma_dir(s, mc[4][b->filter][0],
@ -214,7 +217,7 @@ static void FN(inter_pred)(AVCodecContext *ctx)
ref1->data[0], ref1->linesize[0], tref1,
(row << 3) + 4, col << 3, &b->mv[2][0], 4, 4, w1, h1, 0);
mc_luma_dir(s, mc[4][b->filter][0],
s->dst[0] + 4 * ls_y + 4, ls_y,
s->dst[0] + 4 * ls_y + 4 * bytesperpixel, ls_y,
ref1->data[0], ref1->linesize[0], tref1,
(row << 3) + 4, (col << 3) + 4, &b->mv[3][0], 4, 4, w1, h1, 0);
if (s->ss_v) {
@ -239,7 +242,8 @@ static void FN(inter_pred)(AVCodecContext *ctx)
&uvmv, 4, 4, w1, h1, 0);
uvmv = ROUNDED_DIV_MVx2(b->mv[1][0], b->mv[3][0]);
mc_chroma_dir(s, mc[4][b->filter][0],
s->dst[1] + 4, s->dst[2] + 4, ls_uv,
s->dst[1] + 4 * bytesperpixel,
s->dst[2] + 4 * bytesperpixel, ls_uv,
ref1->data[1], ref1->linesize[1],
ref1->data[2], ref1->linesize[2], tref1,
row << 2, (col << 3) + 4,
@ -273,7 +277,8 @@ static void FN(inter_pred)(AVCodecContext *ctx)
row << 3, col << 3,
&b->mv[0][0], 4, 4, w1, h1, 0);
mc_chroma_dir(s, mc[4][b->filter][0],
s->dst[1] + 4, s->dst[2] + 4, ls_uv,
s->dst[1] + 4 * bytesperpixel,
s->dst[2] + 4 * bytesperpixel, ls_uv,
ref1->data[1], ref1->linesize[1],
ref1->data[2], ref1->linesize[2], tref1,
row << 3, (col << 3) + 4,
@ -285,7 +290,8 @@ static void FN(inter_pred)(AVCodecContext *ctx)
(row << 3) + 4, col << 3,
&b->mv[2][0], 4, 4, w1, h1, 0);
mc_chroma_dir(s, mc[4][b->filter][0],
s->dst[1] + 4 * ls_uv + 4, s->dst[2] + 4 * ls_uv + 4, ls_uv,
s->dst[1] + 4 * ls_uv + 4 * bytesperpixel,
s->dst[2] + 4 * ls_uv + 4 * bytesperpixel, ls_uv,
ref1->data[1], ref1->linesize[1],
ref1->data[2], ref1->linesize[2], tref1,
(row << 3) + 4, (col << 3) + 4,
@ -297,7 +303,7 @@ static void FN(inter_pred)(AVCodecContext *ctx)
mc_luma_dir(s, mc[4][b->filter][1], s->dst[0], ls_y,
ref2->data[0], ref2->linesize[0], tref2,
row << 3, col << 3, &b->mv[0][1], 4, 4, w2, h2, 1);
mc_luma_dir(s, mc[4][b->filter][1], s->dst[0] + 4, ls_y,
mc_luma_dir(s, mc[4][b->filter][1], s->dst[0] + 4 * bytesperpixel, ls_y,
ref2->data[0], ref2->linesize[0], tref2,
row << 3, (col << 3) + 4, &b->mv[1][1], 4, 4, w2, h2, 1);
mc_luma_dir(s, mc[4][b->filter][1],
@ -305,7 +311,7 @@ static void FN(inter_pred)(AVCodecContext *ctx)
ref2->data[0], ref2->linesize[0], tref2,
(row << 3) + 4, col << 3, &b->mv[2][1], 4, 4, w2, h2, 1);
mc_luma_dir(s, mc[4][b->filter][1],
s->dst[0] + 4 * ls_y + 4, ls_y,
s->dst[0] + 4 * ls_y + 4 * bytesperpixel, ls_y,
ref2->data[0], ref2->linesize[0], tref2,
(row << 3) + 4, (col << 3) + 4, &b->mv[3][1], 4, 4, w2, h2, 1);
if (s->ss_v) {
@ -330,7 +336,8 @@ static void FN(inter_pred)(AVCodecContext *ctx)
&uvmv, 4, 4, w2, h2, 1);
uvmv = ROUNDED_DIV_MVx2(b->mv[1][1], b->mv[3][1]);
mc_chroma_dir(s, mc[4][b->filter][1],
s->dst[1] + 4, s->dst[2] + 4, ls_uv,
s->dst[1] + 4 * bytesperpixel,
s->dst[2] + 4 * bytesperpixel, ls_uv,
ref2->data[1], ref2->linesize[1],
ref2->data[2], ref2->linesize[2], tref2,
row << 2, (col << 3) + 4,
@ -364,7 +371,8 @@ static void FN(inter_pred)(AVCodecContext *ctx)
row << 3, col << 3,
&b->mv[0][1], 4, 4, w2, h2, 1);
mc_chroma_dir(s, mc[4][b->filter][1],
s->dst[1] + 4, s->dst[2] + 4, ls_uv,
s->dst[1] + 4 * bytesperpixel,
s->dst[2] + 4 * bytesperpixel, ls_uv,
ref2->data[1], ref2->linesize[1],
ref2->data[2], ref2->linesize[2], tref2,
row << 3, (col << 3) + 4,
@ -376,7 +384,8 @@ static void FN(inter_pred)(AVCodecContext *ctx)
(row << 3) + 4, col << 3,
&b->mv[2][1], 4, 4, w2, h2, 1);
mc_chroma_dir(s, mc[4][b->filter][1],
s->dst[1] + 4 * ls_uv + 4, s->dst[2] + 4 * ls_uv + 4, ls_uv,
s->dst[1] + 4 * ls_uv + 4 * bytesperpixel,
s->dst[2] + 4 * ls_uv + 4 * bytesperpixel, ls_uv,
ref2->data[1], ref2->linesize[1],
ref2->data[2], ref2->linesize[2], tref2,
(row << 3) + 4, (col << 3) + 4,

@ -236,74 +236,210 @@ static const enum FilterMode vp9_filter_lut[3] = {
FILTER_8TAP_SHARP,
};
static const int16_t vp9_dc_qlookup[256] = {
4, 8, 8, 9, 10, 11, 12, 12,
13, 14, 15, 16, 17, 18, 19, 19,
20, 21, 22, 23, 24, 25, 26, 26,
27, 28, 29, 30, 31, 32, 32, 33,
34, 35, 36, 37, 38, 38, 39, 40,
41, 42, 43, 43, 44, 45, 46, 47,
48, 48, 49, 50, 51, 52, 53, 53,
54, 55, 56, 57, 57, 58, 59, 60,
61, 62, 62, 63, 64, 65, 66, 66,
67, 68, 69, 70, 70, 71, 72, 73,
74, 74, 75, 76, 77, 78, 78, 79,
80, 81, 81, 82, 83, 84, 85, 85,
87, 88, 90, 92, 93, 95, 96, 98,
99, 101, 102, 104, 105, 107, 108, 110,
111, 113, 114, 116, 117, 118, 120, 121,
123, 125, 127, 129, 131, 134, 136, 138,
140, 142, 144, 146, 148, 150, 152, 154,
156, 158, 161, 164, 166, 169, 172, 174,
177, 180, 182, 185, 187, 190, 192, 195,
199, 202, 205, 208, 211, 214, 217, 220,
223, 226, 230, 233, 237, 240, 243, 247,
250, 253, 257, 261, 265, 269, 272, 276,
280, 284, 288, 292, 296, 300, 304, 309,
313, 317, 322, 326, 330, 335, 340, 344,
349, 354, 359, 364, 369, 374, 379, 384,
389, 395, 400, 406, 411, 417, 423, 429,
435, 441, 447, 454, 461, 467, 475, 482,
489, 497, 505, 513, 522, 530, 539, 549,
559, 569, 579, 590, 602, 614, 626, 640,
654, 668, 684, 700, 717, 736, 755, 775,
796, 819, 843, 869, 896, 925, 955, 988,
1022, 1058, 1098, 1139, 1184, 1232, 1282, 1336,
static const int16_t vp9_dc_qlookup[3][256] = {
{
4, 8, 8, 9, 10, 11, 12, 12,
13, 14, 15, 16, 17, 18, 19, 19,
20, 21, 22, 23, 24, 25, 26, 26,
27, 28, 29, 30, 31, 32, 32, 33,
34, 35, 36, 37, 38, 38, 39, 40,
41, 42, 43, 43, 44, 45, 46, 47,
48, 48, 49, 50, 51, 52, 53, 53,
54, 55, 56, 57, 57, 58, 59, 60,
61, 62, 62, 63, 64, 65, 66, 66,
67, 68, 69, 70, 70, 71, 72, 73,
74, 74, 75, 76, 77, 78, 78, 79,
80, 81, 81, 82, 83, 84, 85, 85,
87, 88, 90, 92, 93, 95, 96, 98,
99, 101, 102, 104, 105, 107, 108, 110,
111, 113, 114, 116, 117, 118, 120, 121,
123, 125, 127, 129, 131, 134, 136, 138,
140, 142, 144, 146, 148, 150, 152, 154,
156, 158, 161, 164, 166, 169, 172, 174,
177, 180, 182, 185, 187, 190, 192, 195,
199, 202, 205, 208, 211, 214, 217, 220,
223, 226, 230, 233, 237, 240, 243, 247,
250, 253, 257, 261, 265, 269, 272, 276,
280, 284, 288, 292, 296, 300, 304, 309,
313, 317, 322, 326, 330, 335, 340, 344,
349, 354, 359, 364, 369, 374, 379, 384,
389, 395, 400, 406, 411, 417, 423, 429,
435, 441, 447, 454, 461, 467, 475, 482,
489, 497, 505, 513, 522, 530, 539, 549,
559, 569, 579, 590, 602, 614, 626, 640,
654, 668, 684, 700, 717, 736, 755, 775,
796, 819, 843, 869, 896, 925, 955, 988,
1022, 1058, 1098, 1139, 1184, 1232, 1282, 1336,
}, {
4, 9, 10, 13, 15, 17, 20, 22,
25, 28, 31, 34, 37, 40, 43, 47,
50, 53, 57, 60, 64, 68, 71, 75,
78, 82, 86, 90, 93, 97, 101, 105,
109, 113, 116, 120, 124, 128, 132, 136,
140, 143, 147, 151, 155, 159, 163, 166,
170, 174, 178, 182, 185, 189, 193, 197,
200, 204, 208, 212, 215, 219, 223, 226,
230, 233, 237, 241, 244, 248, 251, 255,
259, 262, 266, 269, 273, 276, 280, 283,
287, 290, 293, 297, 300, 304, 307, 310,
314, 317, 321, 324, 327, 331, 334, 337,
343, 350, 356, 362, 369, 375, 381, 387,
394, 400, 406, 412, 418, 424, 430, 436,
442, 448, 454, 460, 466, 472, 478, 484,
490, 499, 507, 516, 525, 533, 542, 550,
559, 567, 576, 584, 592, 601, 609, 617,
625, 634, 644, 655, 666, 676, 687, 698,
708, 718, 729, 739, 749, 759, 770, 782,
795, 807, 819, 831, 844, 856, 868, 880,
891, 906, 920, 933, 947, 961, 975, 988,
1001, 1015, 1030, 1045, 1061, 1076, 1090, 1105,
1120, 1137, 1153, 1170, 1186, 1202, 1218, 1236,
1253, 1271, 1288, 1306, 1323, 1342, 1361, 1379,
1398, 1416, 1436, 1456, 1476, 1496, 1516, 1537,
1559, 1580, 1601, 1624, 1647, 1670, 1692, 1717,
1741, 1766, 1791, 1817, 1844, 1871, 1900, 1929,
1958, 1990, 2021, 2054, 2088, 2123, 2159, 2197,
2236, 2276, 2319, 2363, 2410, 2458, 2508, 2561,
2616, 2675, 2737, 2802, 2871, 2944, 3020, 3102,
3188, 3280, 3375, 3478, 3586, 3702, 3823, 3953,
4089, 4236, 4394, 4559, 4737, 4929, 5130, 5347,
}, {
4, 12, 18, 25, 33, 41, 50, 60,
70, 80, 91, 103, 115, 127, 140, 153,
166, 180, 194, 208, 222, 237, 251, 266,
281, 296, 312, 327, 343, 358, 374, 390,
405, 421, 437, 453, 469, 484, 500, 516,
532, 548, 564, 580, 596, 611, 627, 643,
659, 674, 690, 706, 721, 737, 752, 768,
783, 798, 814, 829, 844, 859, 874, 889,
904, 919, 934, 949, 964, 978, 993, 1008,
1022, 1037, 1051, 1065, 1080, 1094, 1108, 1122,
1136, 1151, 1165, 1179, 1192, 1206, 1220, 1234,
1248, 1261, 1275, 1288, 1302, 1315, 1329, 1342,
1368, 1393, 1419, 1444, 1469, 1494, 1519, 1544,
1569, 1594, 1618, 1643, 1668, 1692, 1717, 1741,
1765, 1789, 1814, 1838, 1862, 1885, 1909, 1933,
1957, 1992, 2027, 2061, 2096, 2130, 2165, 2199,
2233, 2267, 2300, 2334, 2367, 2400, 2434, 2467,
2499, 2532, 2575, 2618, 2661, 2704, 2746, 2788,
2830, 2872, 2913, 2954, 2995, 3036, 3076, 3127,
3177, 3226, 3275, 3324, 3373, 3421, 3469, 3517,
3565, 3621, 3677, 3733, 3788, 3843, 3897, 3951,
4005, 4058, 4119, 4181, 4241, 4301, 4361, 4420,
4479, 4546, 4612, 4677, 4742, 4807, 4871, 4942,
5013, 5083, 5153, 5222, 5291, 5367, 5442, 5517,
5591, 5665, 5745, 5825, 5905, 5984, 6063, 6149,
6234, 6319, 6404, 6495, 6587, 6678, 6769, 6867,
6966, 7064, 7163, 7269, 7376, 7483, 7599, 7715,
7832, 7958, 8085, 8214, 8352, 8492, 8635, 8788,
8945, 9104, 9275, 9450, 9639, 9832, 10031, 10245,
10465, 10702, 10946, 11210, 11482, 11776, 12081, 12409,
12750, 13118, 13501, 13913, 14343, 14807, 15290, 15812,
16356, 16943, 17575, 18237, 18949, 19718, 20521, 21387,
}
};
static const int16_t vp9_ac_qlookup[256] = {
4, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102,
104, 106, 108, 110, 112, 114, 116, 118,
120, 122, 124, 126, 128, 130, 132, 134,
136, 138, 140, 142, 144, 146, 148, 150,
152, 155, 158, 161, 164, 167, 170, 173,
176, 179, 182, 185, 188, 191, 194, 197,
200, 203, 207, 211, 215, 219, 223, 227,
231, 235, 239, 243, 247, 251, 255, 260,
265, 270, 275, 280, 285, 290, 295, 300,
305, 311, 317, 323, 329, 335, 341, 347,
353, 359, 366, 373, 380, 387, 394, 401,
408, 416, 424, 432, 440, 448, 456, 465,
474, 483, 492, 501, 510, 520, 530, 540,
550, 560, 571, 582, 593, 604, 615, 627,
639, 651, 663, 676, 689, 702, 715, 729,
743, 757, 771, 786, 801, 816, 832, 848,
864, 881, 898, 915, 933, 951, 969, 988,
1007, 1026, 1046, 1066, 1087, 1108, 1129, 1151,
1173, 1196, 1219, 1243, 1267, 1292, 1317, 1343,
1369, 1396, 1423, 1451, 1479, 1508, 1537, 1567,
1597, 1628, 1660, 1692, 1725, 1759, 1793, 1828,
static const int16_t vp9_ac_qlookup[3][256] = {
{
4, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62,
63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102,
104, 106, 108, 110, 112, 114, 116, 118,
120, 122, 124, 126, 128, 130, 132, 134,
136, 138, 140, 142, 144, 146, 148, 150,
152, 155, 158, 161, 164, 167, 170, 173,
176, 179, 182, 185, 188, 191, 194, 197,
200, 203, 207, 211, 215, 219, 223, 227,
231, 235, 239, 243, 247, 251, 255, 260,
265, 270, 275, 280, 285, 290, 295, 300,
305, 311, 317, 323, 329, 335, 341, 347,
353, 359, 366, 373, 380, 387, 394, 401,
408, 416, 424, 432, 440, 448, 456, 465,
474, 483, 492, 501, 510, 520, 530, 540,
550, 560, 571, 582, 593, 604, 615, 627,
639, 651, 663, 676, 689, 702, 715, 729,
743, 757, 771, 786, 801, 816, 832, 848,
864, 881, 898, 915, 933, 951, 969, 988,
1007, 1026, 1046, 1066, 1087, 1108, 1129, 1151,
1173, 1196, 1219, 1243, 1267, 1292, 1317, 1343,
1369, 1396, 1423, 1451, 1479, 1508, 1537, 1567,
1597, 1628, 1660, 1692, 1725, 1759, 1793, 1828,
}, {
4, 9, 11, 13, 16, 18, 21, 24,
27, 30, 33, 37, 40, 44, 48, 51,
55, 59, 63, 67, 71, 75, 79, 83,
88, 92, 96, 100, 105, 109, 114, 118,
122, 127, 131, 136, 140, 145, 149, 154,
158, 163, 168, 172, 177, 181, 186, 190,
195, 199, 204, 208, 213, 217, 222, 226,
231, 235, 240, 244, 249, 253, 258, 262,
267, 271, 275, 280, 284, 289, 293, 297,
302, 306, 311, 315, 319, 324, 328, 332,
337, 341, 345, 349, 354, 358, 362, 367,
371, 375, 379, 384, 388, 392, 396, 401,
409, 417, 425, 433, 441, 449, 458, 466,
474, 482, 490, 498, 506, 514, 523, 531,
539, 547, 555, 563, 571, 579, 588, 596,
604, 616, 628, 640, 652, 664, 676, 688,
700, 713, 725, 737, 749, 761, 773, 785,
797, 809, 825, 841, 857, 873, 889, 905,
922, 938, 954, 970, 986, 1002, 1018, 1038,
1058, 1078, 1098, 1118, 1138, 1158, 1178, 1198,
1218, 1242, 1266, 1290, 1314, 1338, 1362, 1386,
1411, 1435, 1463, 1491, 1519, 1547, 1575, 1603,
1631, 1663, 1695, 1727, 1759, 1791, 1823, 1859,
1895, 1931, 1967, 2003, 2039, 2079, 2119, 2159,
2199, 2239, 2283, 2327, 2371, 2415, 2459, 2507,
2555, 2603, 2651, 2703, 2755, 2807, 2859, 2915,
2971, 3027, 3083, 3143, 3203, 3263, 3327, 3391,
3455, 3523, 3591, 3659, 3731, 3803, 3876, 3952,
4028, 4104, 4184, 4264, 4348, 4432, 4516, 4604,
4692, 4784, 4876, 4972, 5068, 5168, 5268, 5372,
5476, 5584, 5692, 5804, 5916, 6032, 6148, 6268,
6388, 6512, 6640, 6768, 6900, 7036, 7172, 7312,
}, {
4, 13, 19, 27, 35, 44, 54, 64,
75, 87, 99, 112, 126, 139, 154, 168,
183, 199, 214, 230, 247, 263, 280, 297,
314, 331, 349, 366, 384, 402, 420, 438,
456, 475, 493, 511, 530, 548, 567, 586,
604, 623, 642, 660, 679, 698, 716, 735,
753, 772, 791, 809, 828, 846, 865, 884,
902, 920, 939, 957, 976, 994, 1012, 1030,
1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175,
1193, 1211, 1229, 1246, 1264, 1282, 1299, 1317,
1335, 1352, 1370, 1387, 1405, 1422, 1440, 1457,
1474, 1491, 1509, 1526, 1543, 1560, 1577, 1595,
1627, 1660, 1693, 1725, 1758, 1791, 1824, 1856,
1889, 1922, 1954, 1987, 2020, 2052, 2085, 2118,
2150, 2183, 2216, 2248, 2281, 2313, 2346, 2378,
2411, 2459, 2508, 2556, 2605, 2653, 2701, 2750,
2798, 2847, 2895, 2943, 2992, 3040, 3088, 3137,
3185, 3234, 3298, 3362, 3426, 3491, 3555, 3619,
3684, 3748, 3812, 3876, 3941, 4005, 4069, 4149,
4230, 4310, 4390, 4470, 4550, 4631, 4711, 4791,
4871, 4967, 5064, 5160, 5256, 5352, 5448, 5544,
5641, 5737, 5849, 5961, 6073, 6185, 6297, 6410,
6522, 6650, 6778, 6906, 7034, 7162, 7290, 7435,
7579, 7723, 7867, 8011, 8155, 8315, 8475, 8635,
8795, 8956, 9132, 9308, 9484, 9660, 9836, 10028,
10220, 10412, 10604, 10812, 11020, 11228, 11437, 11661,
11885, 12109, 12333, 12573, 12813, 13053, 13309, 13565,
13821, 14093, 14365, 14637, 14925, 15213, 15502, 15806,
16110, 16414, 16734, 17054, 17390, 17726, 18062, 18414,
18766, 19134, 19502, 19886, 20270, 20670, 21070, 21486,
21902, 22334, 22766, 23214, 23662, 24126, 24590, 25070,
25551, 26047, 26559, 27071, 27599, 28143, 28687, 29247,
}
};
static const enum TxfmType vp9_intra_txfm_type[14] = {

File diff suppressed because it is too large Load Diff

@ -120,8 +120,12 @@ typedef struct VP9DSPContext {
vp9_scaled_mc_func smc[5][4][2];
} VP9DSPContext;
void ff_vp9dsp_init(VP9DSPContext *dsp);
void ff_vp9dsp_init(VP9DSPContext *dsp, int bpp);
void ff_vp9dsp_init_x86(VP9DSPContext *dsp);
void ff_vp9dsp_init_8(VP9DSPContext *dsp);
void ff_vp9dsp_init_10(VP9DSPContext *dsp);
void ff_vp9dsp_init_12(VP9DSPContext *dsp);
void ff_vp9dsp_init_x86(VP9DSPContext *dsp, int bpp);
#endif /* AVCODEC_VP9DSP_H */

@ -0,0 +1,26 @@
/*
* VP9 compatible video decoder
*
* Copyright (C) 2013 Ronald S. Bultje <rsbultje gmail com>
* Copyright (C) 2013 Clément Bœsch <u pkh me>
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#define BIT_DEPTH 10
#define dctint int64_t
#include "vp9dsp_template.c"

@ -0,0 +1,26 @@
/*
* VP9 compatible video decoder
*
* Copyright (C) 2013 Ronald S. Bultje <rsbultje gmail com>
* Copyright (C) 2013 Clément Bœsch <u pkh me>
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#define BIT_DEPTH 12
#define dctint int64_t
#include "vp9dsp_template.c"

@ -0,0 +1,26 @@
/*
* VP9 compatible video decoder
*
* Copyright (C) 2013 Ronald S. Bultje <rsbultje gmail com>
* Copyright (C) 2013 Clément Bœsch <u pkh me>
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#define BIT_DEPTH 8
#define dctint int
#include "vp9dsp_template.c"

File diff suppressed because it is too large Load Diff

@ -307,8 +307,10 @@ ipred_func(32, tm, avx2);
#endif /* HAVE_YASM */
av_cold void ff_vp9dsp_init_x86(VP9DSPContext *dsp)
av_cold void ff_vp9dsp_init_x86(VP9DSPContext *dsp, int bpp)
{
if (bpp != 8) return;
#if HAVE_YASM
int cpu_flags = av_get_cpu_flags();

@ -605,6 +605,54 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
},
.flags = AV_PIX_FMT_FLAG_PLANAR,
},
[AV_PIX_FMT_YUV440P10LE] = {
.name = "yuv440p10le",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 1,
.comp = {
{ 0, 1, 1, 0, 9 }, /* Y */
{ 1, 1, 1, 0, 9 }, /* U */
{ 2, 1, 1, 0, 9 }, /* V */
},
.flags = AV_PIX_FMT_FLAG_PLANAR,
},
[AV_PIX_FMT_YUV440P10BE] = {
.name = "yuv440p10be",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 1,
.comp = {
{ 0, 1, 1, 0, 9 }, /* Y */
{ 1, 1, 1, 0, 9 }, /* U */
{ 2, 1, 1, 0, 9 }, /* V */
},
.flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
},
[AV_PIX_FMT_YUV440P12LE] = {
.name = "yuv440p12le",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 1,
.comp = {
{ 0, 1, 1, 0, 11 }, /* Y */
{ 1, 1, 1, 0, 11 }, /* U */
{ 2, 1, 1, 0, 11 }, /* V */
},
.flags = AV_PIX_FMT_FLAG_PLANAR,
},
[AV_PIX_FMT_YUV440P12BE] = {
.name = "yuv440p12be",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 1,
.comp = {
{ 0, 1, 1, 0, 11 }, /* Y */
{ 1, 1, 1, 0, 11 }, /* U */
{ 2, 1, 1, 0, 11 }, /* V */
},
.flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
},
[AV_PIX_FMT_YUVA420P] = {
.name = "yuva420p",
.nb_components = 4,

@ -307,6 +307,10 @@ enum AVPixelFormat {
#if !FF_API_XVMC
AV_PIX_FMT_XVMC,///< XVideo Motion Acceleration via common packet passing
#endif /* !FF_API_XVMC */
AV_PIX_FMT_YUV440P10LE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian
AV_PIX_FMT_YUV440P10BE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian
AV_PIX_FMT_YUV440P12LE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian
AV_PIX_FMT_YUV440P12BE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian
AV_PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
@ -362,9 +366,11 @@ enum AVPixelFormat {
#define AV_PIX_FMT_YUV444P9 AV_PIX_FMT_NE(YUV444P9BE , YUV444P9LE)
#define AV_PIX_FMT_YUV420P10 AV_PIX_FMT_NE(YUV420P10BE, YUV420P10LE)
#define AV_PIX_FMT_YUV422P10 AV_PIX_FMT_NE(YUV422P10BE, YUV422P10LE)
#define AV_PIX_FMT_YUV440P10 AV_PIX_FMT_NE(YUV440P10BE, YUV440P10LE)
#define AV_PIX_FMT_YUV444P10 AV_PIX_FMT_NE(YUV444P10BE, YUV444P10LE)
#define AV_PIX_FMT_YUV420P12 AV_PIX_FMT_NE(YUV420P12BE, YUV420P12LE)
#define AV_PIX_FMT_YUV422P12 AV_PIX_FMT_NE(YUV422P12BE, YUV422P12LE)
#define AV_PIX_FMT_YUV440P12 AV_PIX_FMT_NE(YUV440P12BE, YUV440P12LE)
#define AV_PIX_FMT_YUV444P12 AV_PIX_FMT_NE(YUV444P12BE, YUV444P12LE)
#define AV_PIX_FMT_YUV420P14 AV_PIX_FMT_NE(YUV420P14BE, YUV420P14LE)
#define AV_PIX_FMT_YUV422P14 AV_PIX_FMT_NE(YUV422P14BE, YUV422P14LE)

@ -931,9 +931,11 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
case AV_PIX_FMT_YUV422P9LE:
case AV_PIX_FMT_YUV420P9LE:
case AV_PIX_FMT_YUV422P10LE:
case AV_PIX_FMT_YUV440P10LE:
case AV_PIX_FMT_YUV444P10LE:
case AV_PIX_FMT_YUV420P10LE:
case AV_PIX_FMT_YUV422P12LE:
case AV_PIX_FMT_YUV440P12LE:
case AV_PIX_FMT_YUV444P12LE:
case AV_PIX_FMT_YUV420P12LE:
case AV_PIX_FMT_YUV422P14LE:
@ -958,9 +960,11 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
case AV_PIX_FMT_YUV444P9BE:
case AV_PIX_FMT_YUV422P9BE:
case AV_PIX_FMT_YUV420P9BE:
case AV_PIX_FMT_YUV440P10BE:
case AV_PIX_FMT_YUV444P10BE:
case AV_PIX_FMT_YUV422P10BE:
case AV_PIX_FMT_YUV420P10BE:
case AV_PIX_FMT_YUV440P12BE:
case AV_PIX_FMT_YUV444P12BE:
case AV_PIX_FMT_YUV422P12BE:
case AV_PIX_FMT_YUV420P12BE:
@ -1197,9 +1201,11 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
case AV_PIX_FMT_YUV422P9LE:
case AV_PIX_FMT_YUV420P9LE:
case AV_PIX_FMT_YUV444P10LE:
case AV_PIX_FMT_YUV440P10LE:
case AV_PIX_FMT_YUV422P10LE:
case AV_PIX_FMT_YUV420P10LE:
case AV_PIX_FMT_YUV444P12LE:
case AV_PIX_FMT_YUV440P12LE:
case AV_PIX_FMT_YUV422P12LE:
case AV_PIX_FMT_YUV420P12LE:
case AV_PIX_FMT_YUV444P14LE:
@ -1229,9 +1235,11 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
case AV_PIX_FMT_YUV422P9BE:
case AV_PIX_FMT_YUV420P9BE:
case AV_PIX_FMT_YUV444P10BE:
case AV_PIX_FMT_YUV440P10BE:
case AV_PIX_FMT_YUV422P10BE:
case AV_PIX_FMT_YUV420P10BE:
case AV_PIX_FMT_YUV444P12BE:
case AV_PIX_FMT_YUV440P12BE:
case AV_PIX_FMT_YUV422P12BE:
case AV_PIX_FMT_YUV420P12BE:
case AV_PIX_FMT_YUV444P14BE:

@ -1694,6 +1694,8 @@ void ff_get_unscaled_swscale(SwsContext *c)
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YUV422P12) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YUV422P14) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YUV422P16) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YUV440P10) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YUV440P12) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YUV444P9) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YUV444P10) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YUV444P12) ||

@ -119,6 +119,10 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] = {
[AV_PIX_FMT_GRAY16LE] = { 1, 1 },
[AV_PIX_FMT_YUV440P] = { 1, 1 },
[AV_PIX_FMT_YUVJ440P] = { 1, 1 },
[AV_PIX_FMT_YUV440P10LE] = { 1, 1 },
[AV_PIX_FMT_YUV440P10BE] = { 1, 1 },
[AV_PIX_FMT_YUV440P12LE] = { 1, 1 },
[AV_PIX_FMT_YUV440P12BE] = { 1, 1 },
[AV_PIX_FMT_YUVA420P] = { 1, 1 },
[AV_PIX_FMT_YUVA422P] = { 1, 1 },
[AV_PIX_FMT_YUVA444P] = { 1, 1 },

@ -87,7 +87,7 @@ endef
define FATE_VP9_PROFILE_SUITE
FATE_VP9-$(CONFIG_MATROSKA_DEMUXER) += fate-vp9p$(2)-$(1)
fate-vp9p$(2)-$(1): CMD = framemd5 -i $(TARGET_SAMPLES)/vp9-test-vectors/vp9$(2)-2-$(1).webm
fate-vp9p$(2)-$(1): CMD = framemd5 -i $(TARGET_SAMPLES)/vp9-test-vectors/vp9$(2)-2-$(1).webm $(3)
fate-vp9p$(2)-$(1): REF = $(SRC_PATH)/tests/ref/fate/vp9p$(2)-$(1)
endef
@ -98,6 +98,8 @@ VP9_Q = 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 \
VP9_SHARP = 1 2 3 4 5 6 7
VP9_SIZE_A = 08 10 16 18 32 34 64 66
VP9_SIZE_B = 196 198 200 202 208 210 224 226
VP9_CHROMA_SUBSAMPLE = 422 440 444
VP9_HIGH_BITDEPTH = 10 12
define FATE_VP9_FULL
$(foreach Q,$(VP9_Q),$(eval $(call FATE_VP9_SUITE,00-quantizer-$(Q))))
@ -105,9 +107,9 @@ $(foreach SHARP,$(VP9_SHARP),$(eval $(call FATE_VP9_SUITE,01-sharpness-$(SHARP))
$(foreach W,$(VP9_SIZE_A),$(eval $(foreach H,$(VP9_SIZE_A),$(eval $(call FATE_VP9_SUITE,02-size-$(W)x$(H))))))
$(foreach W,$(VP9_SIZE_B),$(eval $(foreach H,$(VP9_SIZE_B),$(eval $(call FATE_VP9_SUITE,03-size-$(W)x$(H))))))
$(eval $(call FATE_VP9_SUITE,03-deltaq))
$(eval $(call FATE_VP9_PROFILE_SUITE,04-yuv444,1))
$(eval $(call FATE_VP9_PROFILE_SUITE,04-yuv440,1))
$(eval $(call FATE_VP9_PROFILE_SUITE,04-yuv422,1))
$(foreach SS,$(VP9_CHROMA_SUBSAMPLE),$(eval $(call FATE_VP9_PROFILE_SUITE,04-yuv$(SS),1,)))
$(foreach BD,$(VP9_HIGH_BITDEPTH),$(eval $(call FATE_VP9_PROFILE_SUITE,20-$(BD)bit-yuv420,2,-pix_fmt yuv420p$(BD)le)))
$(foreach BD,$(VP9_HIGH_BITDEPTH),$(eval $(foreach SS,$(VP9_CHROMA_SUBSAMPLE),$(eval $(call FATE_VP9_PROFILE_SUITE,20-$(BD)bit-yuv$(SS),3,-pix_fmt yuv$(SS)p$(BD)le)))))
$(eval $(call FATE_VP9_SUITE,06-bilinear))
$(eval $(call FATE_VP9_SUITE,09-lf_deltas))
$(eval $(call FATE_VP9_SUITE,10-show-existing-frame))

@ -0,0 +1 @@
pixdesc-yuv440p10be 8bc503265081c9dc9890f95aa7a94000

@ -0,0 +1 @@
pixdesc-yuv440p10le 84740bc888a73215a8487c6d2cabab37

@ -0,0 +1 @@
pixdesc-yuv440p12be 0da181b349062381436c002ee72be5f9

@ -0,0 +1 @@
pixdesc-yuv440p12le 682997272e77063a2e260a2c483b3306

@ -78,6 +78,10 @@ yuv422p16le 5d8e26fbbc8f25576065106c8820d56a
yuv422p9be e3b364350da35d2ffd431665ed9d3592
yuv422p9le 0f21976b77781cada504f690d7dc6c15
yuv440p e6754959dfd9631f2dc1682fa71aa4e0
yuv440p10be 8bc503265081c9dc9890f95aa7a94000
yuv440p10le 84740bc888a73215a8487c6d2cabab37
yuv440p12be 0da181b349062381436c002ee72be5f9
yuv440p12le 682997272e77063a2e260a2c483b3306
yuv444p db3ad634aea336663a2f5c2475b95410
yuv444p10be e341efd871b34308831113f4b2ff29f9
yuv444p10le f9666d63623e0d7dceda1a17202579cf

@ -75,6 +75,10 @@ yuv422p16le 5420bd643996c2fc10709ca58a0323e9
yuv422p9be 0cf0d2f092b01b86cb8883e5b9ee70fd
yuv422p9le caa7eabbc6cc12b91314d5a03857c3d9
yuv440p 54ee388cdaf8b1fe88b78348913b18b0
yuv440p10be 74cc406aade7a42bd2e61065a26c37d6
yuv440p10le 23a988639a018805f4af77621530e629
yuv440p12be cbc98bace0a5a83bbe178ea086a8700c
yuv440p12le a1eafa7c4ec86933263bf435c7c25bad
yuv444p 434403ed452af56f5bc6e96863eaca97
yuv444p10be d7ef21572858c0071b5c74281ed8cb1b
yuv444p10le 3c293e9a0aacd45fbcf9b6568cddcb4f

@ -78,6 +78,10 @@ yuv422p16le b35565fe10f9a15b71d3706877118d8e
yuv422p9be 41605ec9fb967cc3da4ac88d8c4ca6ba
yuv422p9le 10bf2ae59bb45f5d632afe2fa0788f17
yuv440p 4558340790744ccad447adcd3c8f041c
yuv440p10be f4a35891ee216870553cb786aa019d11
yuv440p10le bd25aebbd7b69932fe102dee4ae062bb
yuv440p12be 710a7e4fa709901b8be00179c5387977
yuv440p12le c071b25efc3e826cfd20eb7ad09bc5f4
yuv444p 018c531ab9b4427f6b3ae863306f7bdf
yuv444p10be d45e1d588191d1e038e88ca3406bfe14
yuv444p10le 991363b633a740ae2fc48d8cc8bde0b3

@ -75,6 +75,10 @@ yuv422p16le 02975f7af27c35e68684235d185a4828
yuv422p9be d4fdec159cb4c106a81e407fe1b441be
yuv422p9le 7a19175e5e38a028029cf6c14f5485d8
yuv440p 18b37e71484029063d41c5716cd0f785
yuv440p10be a2548200f66493eb10d23413fa893103
yuv440p10le 7a61ef006bbec1a98ba21caa89052e50
yuv440p12be 941298529e9c859b197508252c38c0b4
yuv440p12le 405aaae3b31ec699d130cef399a57f97
yuv444p e666141ffbbc8ed5ecfd65bf27b07c72
yuv444p10be 39437baaba84ff78b152769202566acd
yuv444p10le a8c9900e3593919c029373cc7781e64d

@ -77,6 +77,10 @@ yuv422p16le a1dbef3752c0c578e0285980a5859864
yuv422p9be f3e1b7196d3e17ad5d31d9d200a2457e
yuv422p9le a21cb4b38bbdee136f70c15abecd5f8b
yuv440p f0cfcb6a845fc7f33ab54f04e5f61099
yuv440p10be b7e2bfb6fbe4168837c93896e21c3163
yuv440p10le 70d77fa0c45ae283bd85c61633eab146
yuv440p12be 38662f60e8500ab35398952e468739e9
yuv440p12le 32aa0bf8408d0118bc002b89ee6adc42
yuv444p 8bf605570d90a638980e1c11526d99e7
yuv444p10be 755f929aff54eda092127fca283cf333
yuv444p10le fe216173a6b4eff5c029d468861b3da6

@ -78,6 +78,10 @@ yuv422p16le 5d8e26fbbc8f25576065106c8820d56a
yuv422p9be e3b364350da35d2ffd431665ed9d3592
yuv422p9le 0f21976b77781cada504f690d7dc6c15
yuv440p e6754959dfd9631f2dc1682fa71aa4e0
yuv440p10be 8bc503265081c9dc9890f95aa7a94000
yuv440p10le 84740bc888a73215a8487c6d2cabab37
yuv440p12be 0da181b349062381436c002ee72be5f9
yuv440p12le 682997272e77063a2e260a2c483b3306
yuv444p db3ad634aea336663a2f5c2475b95410
yuv444p10be e341efd871b34308831113f4b2ff29f9
yuv444p10le f9666d63623e0d7dceda1a17202579cf

@ -78,6 +78,10 @@ yuv422p16le 7200f2405f7b979bc29f5446653d1fbe
yuv422p9be 4c44d041f51b499fe419c51be0831c12
yuv422p9le b48e78a8a6a3f88269b4f5f810b75603
yuv440p a9dd3fab4320c3c9b0eb01d2bf75acb9
yuv440p10be e79d6857dd66adf03fd90b7c4ba1a4f8
yuv440p10le 9cf6444970548a93ec8ceb0e3e4244bc
yuv440p12be 66eb24b71083413d2ece3ce9f9527b90
yuv440p12le d6b60a9453e2ec0c8e487fc82d8b476a
yuv444p 77387910c01eacca94793a9be37c1aa1
yuv444p10be b4e8cef69cb2ad2c24e795325a1d883c
yuv444p10le 83855dd296a1859c085193c1edbb35e2

@ -23,6 +23,10 @@ yuv422p16le fb8e5aff474eca0b9b4bba0ab5765158
yuv422p9be 2d27809e85655e5ce9db5f194d617069
yuv422p9le 13f42a98d4c6c57883d6817329ec3ea7
yuv440p 44c7ad06592e46b42143756210798d7d
yuv440p10be 9b623abf03ad22bec852250170bfb42d
yuv440p10le cfb3e95f24943a4ead5c3b59eed9f2ce
yuv440p12be caf621757fdc1942cb3d90fc16858eef
yuv440p12le 99a54b4e9a286ce34a686de534377253
yuv444p 49587b263a4c8da66ddc267f746b7041
yuv444p10be 6589db276e865800614153e43bad3da8
yuv444p10le 8e17f00cbc47188e007b59e568bf13aa

@ -78,6 +78,10 @@ yuv422p16le d3d1ff9c78b6d1dda8e5529aa881e254
yuv422p9be b910bf8de09521e2935749fa68fbcf8e
yuv422p9le 98d13d3db47da9be9f666ce773f2eed9
yuv440p aba0a5eda16ce1050175bb1151900a4c
yuv440p10be 0ed6a258237270dcf17f848037bb4175
yuv440p10le 91c69939e302885d3851b74d831aa094
yuv440p12be ffdd1de6e681e99b9362230d75f4d7de
yuv440p12le 55a95432d92f57acaae1dfaff5475d2f
yuv444p 81a72d37cdfba65c7a2dfccaf21cd0d8
yuv444p10be a10191d92e5a08983bec906d8fbb505a
yuv444p10le 6367be8bb534416105e450a54ae2efbf

@ -0,0 +1,15 @@
#format: frame checksums
#version: 1
#hash: MD5
#tb 0: 1/50
#stream#, dts, pts, duration, size, hash
0, 0, 0, 1, 43200, c3964ed9065de7f839b8d878444c6140
0, 1, 1, 1, 43200, 87595f7f53d6e84af9708dba72422cc4
0, 2, 2, 1, 43200, 5cadbce099363a71040919e6f1cec496
0, 3, 3, 1, 43200, 0e3cab2b26b936de245a94b4128a368f
0, 4, 4, 1, 43200, 07bde452ca50655717a85cd9fdb3f7ce
0, 5, 5, 1, 43200, 00bee090fe849fee5fd4eb169c62c897
0, 6, 6, 1, 43200, 4564a423df89d7e9dea1226873ce9a51
0, 7, 7, 1, 43200, 7580af6956360112191380a677f5e625
0, 8, 8, 1, 43200, c9d05c5aadf8a372acfc2c93094d003e
0, 9, 9, 1, 43200, 6c08ea732cda06cf9a12f2e1a089d401

@ -0,0 +1,15 @@
#format: frame checksums
#version: 1
#hash: MD5
#tb 0: 1/50
#stream#, dts, pts, duration, size, hash
0, 0, 0, 1, 43200, 8403bd5a381737e1c2d737047f6a5a0b
0, 1, 1, 1, 43200, 3c0bf7eecc3131e3598f6810d6b70539
0, 2, 2, 1, 43200, ff020bf894bb88d74426f02a75081695
0, 3, 3, 1, 43200, 097d81cb29f1caaf4446f3a3de4842d9
0, 4, 4, 1, 43200, e923a7e7e0349846ba27bd2e6ebdf4df
0, 5, 5, 1, 43200, 28c6016e6687c7eecbe4057a4dbfe372
0, 6, 6, 1, 43200, 15ae05537ea7152b535d112871b5ef84
0, 7, 7, 1, 43200, cb50d043a10a0e9b52eed0e8b3aabc7b
0, 8, 8, 1, 43200, f97dfbce56e36a42538ef000ce0e937e
0, 9, 9, 1, 43200, aae42063df910ed31c09eba5f73a195c

@ -0,0 +1,15 @@
#format: frame checksums
#version: 1
#hash: MD5
#tb 0: 1/50
#stream#, dts, pts, duration, size, hash
0, 0, 0, 1, 57600, 18fed3eff623f0308561e5db0bc28691
0, 1, 1, 1, 57600, 3f22b2269cd53738e955c4b27ff6abce
0, 2, 2, 1, 57600, d1a44bae5cf45c68c5ca86f9e1ffd6a0
0, 3, 3, 1, 57600, 6592a5b6f1a8a18930bf27195a836efc
0, 4, 4, 1, 57600, f1dc8ba72916630aa8ff07f214bd1baf
0, 5, 5, 1, 57600, 195db6438c313e870ecfe9db3e3cbe83
0, 6, 6, 1, 57600, ad1cca6689026c31c2350594b669b7e7
0, 7, 7, 1, 57600, 6cb437a604a714ea746b429cdd68c47f
0, 8, 8, 1, 57600, cda524f9de8774cc161224c3b81033f5
0, 9, 9, 1, 57600, a2ae05ae998b4158a32b96e01ed02241

@ -0,0 +1,25 @@
#format: frame checksums
#version: 1
#hash: MD5
#tb 0: 1/50
#stream#, dts, pts, duration, size, hash
0, 0, 0, 1, 57600, 504a347654ef41e568c484ab017f5387
0, 1, 1, 1, 57600, 6110f151a39144da5616227d44b81c21
0, 2, 2, 1, 57600, a856b5e0675c59fb9329d087580c6c5b
0, 3, 3, 1, 57600, d951b271bf38e7c9b9d215f7a87a079c
0, 4, 4, 1, 57600, a9e6feb4142a111c74d46cdbac08f2e6
0, 5, 5, 1, 57600, 4802b599651e7aa35cd52d0dfbfaa4d3
0, 6, 6, 1, 57600, 1244f3b9da3341057566915e708c7afb
0, 7, 7, 1, 57600, 212a02d7ee8d56b6f2a4fd7ee6eb3c93
0, 8, 8, 1, 57600, 1872091be977628ff5435f9186f64a29
0, 9, 9, 1, 57600, d5255599c33859ee96474a20929dc4bb
0, 10, 10, 1, 57600, 16d0056501cd1bfc630f6f99672504a0
0, 11, 11, 1, 57600, 7dcca62c4dc5d508f38376533648bce6
0, 12, 12, 1, 57600, 1e1617813af32cbf7be3df11d275339e
0, 13, 13, 1, 57600, 88b036fde717f72485b24e346f55f9dc
0, 14, 14, 1, 57600, e689287b89b116ec71670ee479e15717
0, 15, 15, 1, 57600, 211aa3727dcde2d9dfe15d6cebda69e4
0, 16, 16, 1, 57600, 3037677f680cbdcac242da94717da3ff
0, 17, 17, 1, 57600, 0138ea9fd279a939df385ea0c97700ca
0, 18, 18, 1, 57600, 9da47cb99085c352f9e9a07639a9b3cb
0, 19, 19, 1, 57600, d369f4c840ccb61ce3aaffc77b5f230e

@ -0,0 +1,15 @@
#format: frame checksums
#version: 1
#hash: MD5
#tb 0: 1/50
#stream#, dts, pts, duration, size, hash
0, 0, 0, 1, 86400, 06a4c4550dc31f75f842a4e65fc32398
0, 1, 1, 1, 86400, f7feda15d5c2babc1f6438c72d4900e4
0, 2, 2, 1, 86400, 5aa9924c0a17c2209b72ba7ec9af6fdd
0, 3, 3, 1, 86400, 01597451aab5498ba89a7f632cd7d0cf
0, 4, 4, 1, 86400, 9a42ae17c2744c305895acd911066575
0, 5, 5, 1, 86400, 17c1d9cda113a3ce2fc7387e2adaa89b
0, 6, 6, 1, 86400, 6c6e303d282d8e043329eb6b29600cb4
0, 7, 7, 1, 86400, 97b7d47711222a91dd7ac121df01f922
0, 8, 8, 1, 86400, 69f305bc0a4a92422b5ebe05a3ac8b38
0, 9, 9, 1, 86400, a559c738c428c2f895e94a31957eec6b

@ -0,0 +1,15 @@
#format: frame checksums
#version: 1
#hash: MD5
#tb 0: 1/50
#stream#, dts, pts, duration, size, hash
0, 0, 0, 1, 57600, 442a6d932a163907303f1e08056b33b3
0, 1, 1, 1, 57600, 80b21954eb522f0140e2226a03062839
0, 2, 2, 1, 57600, 991251ca3f55879e3ed90d5816bf5056
0, 3, 3, 1, 57600, 33f1a1aa1a48fda4ef7dccf302c4e7bf
0, 4, 4, 1, 57600, e9faf81b0664be622040910f29e3d522
0, 5, 5, 1, 57600, fa9aba755df9f52aa551d942bba5e26f
0, 6, 6, 1, 57600, ef58938b38ced2fecb8afdb9a6d8024b
0, 7, 7, 1, 57600, ce43338326c024eb187abaeaa64a44b1
0, 8, 8, 1, 57600, d487dab8c8b9f690f13569f3d1875a6d
0, 9, 9, 1, 57600, b4ab8672067ffce5df2daa9a2c2496d2

@ -0,0 +1,25 @@
#format: frame checksums
#version: 1
#hash: MD5
#tb 0: 1/50
#stream#, dts, pts, duration, size, hash
0, 0, 0, 1, 57600, 9c03fb4aa813522d9a44b3b309b85d19
0, 1, 1, 1, 57600, 73081beafa17bc23a170172e311c0f54
0, 2, 2, 1, 57600, 36a1eb7aec96b81d54119e26a5056f48
0, 3, 3, 1, 57600, 228ca739c96ceb5c63f593790e487a49
0, 4, 4, 1, 57600, 289e08c01574d23562ce8162b0ec553b
0, 5, 5, 1, 57600, 76ca62fa4b80bef534e3cb4e37d9f178
0, 6, 6, 1, 57600, 0d9d5c09c4a453b8b7e04d2904924e15
0, 7, 7, 1, 57600, b659b38305c3afbbc84f5aab4c373592
0, 8, 8, 1, 57600, 3f5c87c678c2dc6ffc45ec875920e620
0, 9, 9, 1, 57600, d758cb908aee57e05af8dd7132ce0973
0, 10, 10, 1, 57600, 5539bdf8f2cfc09580bd9371c3655989
0, 11, 11, 1, 57600, 0446cf34d7f1a081e7eef6050cbcb7d8
0, 12, 12, 1, 57600, 2a29f74bd76f8c2187a0f61ff6935744
0, 13, 13, 1, 57600, fb4b0e71884069537e3e3e62fbe83877
0, 14, 14, 1, 57600, 57e19855e60825333fbbd9fdbad54ca0
0, 15, 15, 1, 57600, 2f111ed5be32c4cbff83efd5530893db
0, 16, 16, 1, 57600, 87afd9a47e6ee7a71cee99157dd89815
0, 17, 17, 1, 57600, 72992f2a91f9d91dca5c638d6a2f748c
0, 18, 18, 1, 57600, ad92cad72adfe2ad43c3be5e3b74439f
0, 19, 19, 1, 57600, d70f736810724ab968307daf4da1120c

@ -0,0 +1,15 @@
#format: frame checksums
#version: 1
#hash: MD5
#tb 0: 1/50
#stream#, dts, pts, duration, size, hash
0, 0, 0, 1, 86400, d9500a2c9e0b6b44935de019c3583194
0, 1, 1, 1, 86400, 58edf3e69b332a2b62ca78a8dc99ea68
0, 2, 2, 1, 86400, ca8894e8496bf0eec64655972323feb2
0, 3, 3, 1, 86400, 3473bbb77d10631525a6e7240f6f0c68
0, 4, 4, 1, 86400, 1bc71b016a90d6a79882bd6b8af0cb23
0, 5, 5, 1, 86400, ebfbb540587c20586d9ff33adee41f24
0, 6, 6, 1, 86400, e8bd27ebb53f979232abbb9d18b15085
0, 7, 7, 1, 86400, 820f65d50b3c48ec600924c0bba90c40
0, 8, 8, 1, 86400, d8d8588550bc9820eb3289c5684dd7a9
0, 9, 9, 1, 86400, d8bd25842191e47ac1b342655e7015e6
Loading…
Cancel
Save