1fate-vsynth1-%: SRC = tests/data/vsynth1.yuv
2fate-vsynth2-%: SRC = tests/data/vsynth2.yuv
3fate-vsynth3-%: SRC = tests/data/vsynth3.yuv
4fate-vsynth%: CODEC = $(word 3, $(subst -, ,$(@)))
5fate-vsynth%: FMT = avi
6fate-vsynth%: CMD = enc_dec "rawvideo -s 352x288 -pix_fmt yuv420p $(RAWDECOPTS)" $(SRC) $(FMT) "-c $(CODEC) $(ENCOPTS)" rawvideo "-s 352x288 -pix_fmt yuv420p -vsync 0 $(DECOPTS)" -keep "$(DECINOPTS)"
7fate-vsynth3-%: CMD = enc_dec "rawvideo -s $(FATEW)x$(FATEH) -pix_fmt yuv420p $(RAWDECOPTS)" $(SRC) $(FMT) "-c $(CODEC) $(ENCOPTS)" rawvideo "-s $(FATEW)x$(FATEH) -pix_fmt yuv420p -vsync 0 $(DECOPTS)" -keep "$(DECINOPTS)"
8fate-vsynth%: CMP_UNIT = 1
9fate-vsynth%: REF = $(SRC_PATH)/tests/ref/vsynth/$(@:fate-%=%)
10
11FATE_VCODEC-$(call ENCDEC, AMV, AVI) += amv
12fate-vsynth%-amv:                ENCOPTS = -strict -1
13
14FATE_VCODEC-$(call ENCDEC, ASV1, AVI)   += asv1
15fate-vsynth%-asv1:               ENCOPTS = -qscale 10
16
17FATE_VCODEC-$(call ENCDEC, ASV2, AVI)   += asv2
18fate-vsynth%-asv2:               ENCOPTS = -qscale 10
19
20FATE_VCODEC-$(call ENCDEC, CLJR, AVI)   += cljr
21fate-vsynth%-cljr:               ENCOPTS = -strict -1
22
23FATE_VCODEC-$(call ENCDEC, DNXHD, DNXHD) += dnxhd-720p                  \
24                                            dnxhd-720p-rd               \
25                                            dnxhd-720p-10bit
26
27fate-vsynth%-dnxhd-720p:         ENCOPTS = -s hd720 -b 90M              \
28                                           -pix_fmt yuv422p -frames 5 -qmax 8
29fate-vsynth%-dnxhd-720p:         FMT     = dnxhd
30
31fate-vsynth%-dnxhd-720p-rd:      ENCOPTS = -s hd720 -b 90M -threads 4 -mbd rd \
32                                           -pix_fmt yuv422p -frames 5 -qmax 8
33fate-vsynth%-dnxhd-720p-rd:      FMT     = dnxhd
34
35fate-vsynth%-dnxhd-720p-10bit:   ENCOPTS = -s hd720 -b 90M              \
36                                           -pix_fmt yuv422p10 -frames 5 -qmax 8
37fate-vsynth%-dnxhd-720p-10bit:   FMT     = dnxhd
38
39FATE_VCODEC-$(call ENCDEC, DNXHD, MOV)  += dnxhd-1080i
40fate-vsynth%-dnxhd-1080i:        ENCOPTS = -s hd1080 -b 120M -flags +ildct \
41                                           -pix_fmt yuv422p -frames 5 -qmax 8
42fate-vsynth%-dnxhd-1080i:        FMT     = mov
43
44FATE_VCODEC-$(call ENCDEC, DVVIDEO, DV) += dv dv-411 dv-50
45fate-vsynth%-dv:                 CODEC   = dvvideo
46fate-vsynth%-dv:                 ENCOPTS = -dct int -s pal
47fate-vsynth%-dv:                 FMT     = dv
48
49fate-vsynth%-dv-411:             CODEC   = dvvideo
50fate-vsynth%-dv-411:             ENCOPTS = -dct int -s pal -pix_fmt yuv411p \
51                                           -sws_flags area
52fate-vsynth%-dv-411:             DECOPTS = -sws_flags area
53fate-vsynth%-dv-411:             FMT     = dv
54
55fate-vsynth%-dv-50:              CODEC   = dvvideo
56fate-vsynth%-dv-50:              ENCOPTS = -dct int -s pal -pix_fmt yuv422p \
57                                           -sws_flags neighbor
58fate-vsynth%-dv-50:              DECOPTS = -sws_flags neighbor
59fate-vsynth%-dv-50:              FMT     = dv
60
61FATE_VCODEC-$(call ENCDEC, FFV1, AVI)   += ffv1 ffv1.0
62fate-vsynth%-ffv1:               ENCOPTS = -slices 4
63fate-vsynth%-ffv1.0:             CODEC   = ffv1
64
65FATE_VCODEC-$(call ENCDEC, FFVHUFF, AVI) += ffvhuff ffvhuff444 ffvhuff420p12 ffvhuff422p10left ffvhuff444p16
66fate-vsynth%-ffvhuff444:         ENCOPTS = -vcodec ffvhuff -pix_fmt yuv444p
67fate-vsynth%-ffvhuff420p12:      ENCOPTS = -vcodec ffvhuff -pix_fmt yuv420p12le
68fate-vsynth%-ffvhuff422p10left:  ENCOPTS = -vcodec ffvhuff -pix_fmt yuv422p10le -pred left
69fate-vsynth%-ffvhuff444p16:      ENCOPTS = -vcodec ffvhuff -pix_fmt yuv444p16le -pred plane
70
71FATE_VCODEC-$(call ENCDEC, FLASHSV, FLV) += flashsv
72fate-vsynth%-flashsv:            ENCOPTS = -sws_flags neighbor+full_chroma_int
73fate-vsynth%-flashsv:            DECOPTS = -sws_flags area
74fate-vsynth%-flashsv:            FMT     = flv
75
76FATE_VCODEC-$(call ENCDEC, FLASHSV2, FLV) += flashsv2
77fate-vsynth%-flashsv2:           ENCOPTS = -sws_flags neighbor+full_chroma_int -strict experimental -compression_level 0
78fate-vsynth%-flashsv2:           DECOPTS = -sws_flags area
79fate-vsynth%-flashsv2:           FMT     = flv
80
81FATE_VCODEC-$(call ENCDEC, FLV, FLV)    += flv
82fate-vsynth%-flv:                ENCOPTS = -qscale 10
83fate-vsynth%-flv:                FMT     = flv
84
85FATE_VCODEC-$(call ENCDEC, H261, AVI)   += h261 h261-trellis
86fate-vsynth%-h261:               ENCOPTS = -qscale 11
87fate-vsynth%-h261-trellis:       ENCOPTS = -qscale 12 -trellis 1 -mbd rd
88
89FATE_VCODEC-$(call ENCDEC, H263, AVI)   += h263 h263-obmc h263p
90fate-vsynth%-h263:               ENCOPTS = -qscale 10
91fate-vsynth%-h263-obmc:          ENCOPTS = -qscale 10 -obmc 1
92fate-vsynth%-h263p:              ENCOPTS = -qscale 2 -flags +aic -umv 1 -aiv 1 -ps 300
93
94FATE_VCODEC-$(call ENCDEC, HUFFYUV, AVI) += huffyuv huffyuvbgr24
95fate-vsynth%-huffyuv:            ENCOPTS = -vcodec huffyuv -pix_fmt yuv422p -sws_flags neighbor
96fate-vsynth%-huffyuv:            DECOPTS = -sws_flags neighbor
97fate-vsynth%-huffyuvbgr24:       ENCOPTS = -vcodec huffyuv -pix_fmt bgr24 -sws_flags neighbor
98fate-vsynth%-huffyuvbgr24:       DECOPTS = -sws_flags neighbor
99
100FATE_VCODEC-$(call ENCDEC, JPEGLS, AVI) += jpegls
101fate-vsynth%-jpegls:             ENCOPTS = -sws_flags neighbor+full_chroma_int
102fate-vsynth%-jpegls:             DECOPTS = -sws_flags area
103
104FATE_VCODEC-$(call ENCDEC, JPEG2000, AVI) += jpeg2000 jpeg2000-97
105fate-vsynth%-jpeg2000:                ENCOPTS = -qscale 7 -strict experimental -pred 1 -pix_fmt rgb24
106fate-vsynth%-jpeg2000:                DECINOPTS = -vcodec jpeg2000
107fate-vsynth%-jpeg2000-97:             ENCOPTS = -qscale 7 -strict experimental -pix_fmt rgb24
108fate-vsynth%-jpeg2000-97:             DECINOPTS = -vcodec jpeg2000
109
110FATE_VCODEC-$(call ENCDEC, LJPEG MJPEG, AVI) += ljpeg
111fate-vsynth%-ljpeg:              ENCOPTS = -strict -1
112
113FATE_VCODEC-$(call ENCDEC, MJPEG, AVI)  += mjpeg mjpeg-422 mjpeg-444
114fate-vsynth%-mjpeg:              ENCOPTS = -qscale 9 -pix_fmt yuvj420p
115fate-vsynth%-mjpeg-422:          ENCOPTS = -qscale 9 -pix_fmt yuvj422p
116fate-vsynth%-mjpeg-444:          ENCOPTS = -qscale 9 -pix_fmt yuvj444p
117
118FATE_VCODEC-$(call ENCDEC, MPEG1VIDEO, MPEG1VIDEO MPEGVIDEO) += mpeg1 mpeg1b
119fate-vsynth%-mpeg1:              FMT     = mpeg1video
120fate-vsynth%-mpeg1:              CODEC   = mpeg1video
121fate-vsynth%-mpeg1:              ENCOPTS = -qscale 10
122
123fate-vsynth%-mpeg1b:             CODEC   = mpeg1video
124fate-vsynth%-mpeg1b:             ENCOPTS = -qscale 8 -bf 3 -ps 200
125fate-vsynth%-mpeg1b:             FMT     = mpeg1video
126
127FATE_MPEG2 = mpeg2                                                      \
128             mpeg2-422                                                  \
129             mpeg2-idct-int                                             \
130             mpeg2-ilace                                                \
131             mpeg2-ivlc-qprd                                            \
132             mpeg2-thread                                               \
133             mpeg2-thread-ivlc
134
135FATE_VCODEC-$(call ENCDEC, MPEG2VIDEO, MPEG2VIDEO MPEGVIDEO) += $(FATE_MPEG2)
136
137$(FATE_MPEG2:%=fate-vsynth\%-%): FMT    = mpeg2video
138$(FATE_MPEG2:%=fate-vsynth\%-%): CODEC  = mpeg2video
139
140fate-vsynth%-mpeg2:              ENCOPTS = -qscale 10
141fate-vsynth%-mpeg2-422:          ENCOPTS = -b:v 1000k                   \
142                                           -bf 2                        \
143                                           -trellis 1                   \
144                                           -flags +mv0+ildct+ilme       \
145                                           -mpv_flags +qp_rd            \
146                                           -intra_vlc 1                 \
147                                           -mbd rd                      \
148                                           -pix_fmt yuv422p
149fate-vsynth%-mpeg2-idct-int:     ENCOPTS = -qscale 10 -idct int -dct int
150fate-vsynth%-mpeg2-ilace:        ENCOPTS = -qscale 10 -flags +ildct+ilme
151fate-vsynth%-mpeg2-ivlc-qprd:    ENCOPTS = -b:v 500k                    \
152                                           -bf 2                        \
153                                           -trellis 1                   \
154                                           -flags +mv0                  \
155                                           -mpv_flags +qp_rd            \
156                                           -intra_vlc 1                 \
157                                           -cmp 2 -subcmp 2             \
158                                           -mbd rd
159fate-vsynth%-mpeg2-thread:       ENCOPTS = -qscale 10 -bf 2 -flags +ildct+ilme \
160                                           -threads 2 -slices 2
161fate-vsynth%-mpeg2-thread-ivlc:  ENCOPTS = -qscale 10 -bf 2 -flags +ildct+ilme \
162                                           -intra_vlc 1 -threads 2 -slices 2
163
164FATE_MPEG4_MP4 = mpeg4
165FATE_MPEG4_AVI = mpeg4-rc                                               \
166                 mpeg4-adv                                              \
167                 mpeg4-qprd                                             \
168                 mpeg4-adap                                             \
169                 mpeg4-qpel                                             \
170                 mpeg4-thread                                           \
171                 mpeg4-error                                            \
172                 mpeg4-nr                                               \
173                 mpeg4-nsse
174
175FATE_VCODEC-$(call ENCDEC, MPEG4, MP4 MOV) += $(FATE_MPEG4_MP4)
176FATE_VCODEC-$(call ENCDEC, MPEG4, AVI)     += $(FATE_MPEG4_AVI)
177
178fate-vsynth%-mpeg4:              ENCOPTS = -qscale 10 -flags +mv4 -mbd bits
179fate-vsynth%-mpeg4:              FMT     = mp4
180
181fate-vsynth%-mpeg4-adap:         ENCOPTS = -b 550k -bf 2 -flags +mv4+mv0 \
182                                           -trellis 1 -cmp 1 -subcmp 2   \
183                                           -mbd rd -scplx_mask 0.3
184
185fate-vsynth%-mpeg4-adv:          ENCOPTS = -qscale 9 -flags +mv4+aic       \
186                                           -data_partitioning 1 -trellis 1 \
187                                           -mbd bits -ps 200
188
189fate-vsynth%-mpeg4-error:        ENCOPTS = -qscale 7 -flags +mv4+aic    \
190                                           -data_partitioning 1 -mbd rd \
191                                           -ps 250 -error 10
192
193fate-vsynth%-mpeg4-nr:           ENCOPTS = -qscale 8 -flags +mv4 -mbd rd -nr 200
194
195fate-vsynth%-mpeg4-nsse:         ENCOPTS = -qscale 7 -cmp nsse -subcmp nsse \
196                                           -mbcmp nsse -precmp nsse         \
197                                           -skipcmp nsse
198
199fate-vsynth%-mpeg4-qpel:         ENCOPTS = -qscale 7 -flags +mv4+qpel -mbd 2 \
200                                           -bf 2 -cmp 1 -subcmp 2
201
202fate-vsynth%-mpeg4-qprd:         ENCOPTS = -b 450k -bf 2 -trellis 1          \
203                                           -flags +mv4+mv0 -mpv_flags +qp_rd \
204                                           -cmp 2 -subcmp 2 -mbd rd
205
206fate-vsynth%-mpeg4-rc:           ENCOPTS = -b 400k -bf 2
207
208fate-vsynth%-mpeg4-thread:       ENCOPTS = -b 500k -flags +mv4+aic         \
209                                           -data_partitioning 1 -trellis 1 \
210                                           -mbd bits -ps 200 -bf 2         \
211                                           -threads 2 -slices 2
212
213FATE_VCODEC-$(call ENCDEC, MSMPEG4V3, AVI) += msmpeg4
214fate-vsynth%-msmpeg4:            ENCOPTS = -qscale 10
215
216FATE_VCODEC-$(call ENCDEC, MSMPEG4V2, AVI) += msmpeg4v2
217fate-vsynth%-msmpeg4v2:          ENCOPTS = -qscale 10
218
219FATE_VCODEC-$(call ENCDEC, PNG, AVI)    += mpng
220fate-vsynth%-mpng:               CODEC   = png
221
222FATE_VCODEC-$(call ENCDEC, MSVIDEO1, AVI) += msvideo1
223
224FATE_VCODEC-$(call ENCDEC, PRORES, MOV) += prores prores_ks
225fate-vsynth%-prores:             FMT     = mov
226
227fate-vsynth%-prores_ks:          ENCOPTS = -profile hq
228fate-vsynth%-prores_ks:          FMT     = mov
229
230FATE_VCODEC-$(call ENCDEC, QTRLE, MOV)  += qtrle qtrlegray
231fate-vsynth%-qtrle:              FMT     = mov
232
233fate-vsynth%-qtrlegray:          CODEC   = qtrle
234fate-vsynth%-qtrlegray:          ENCOPTS = -pix_fmt gray
235fate-vsynth%-qtrlegray:          FMT     = mov
236
237FATE_VCODEC-$(call ENCDEC, RAWVIDEO, AVI) += rgb
238fate-vsynth%-rgb:                CODEC   = rawvideo
239fate-vsynth%-rgb:                ENCOPTS = -pix_fmt bgr24
240
241FATE_VCODEC-$(call ENCDEC, ROQ, ROQ)    += roqvideo
242fate-vsynth%-roqvideo:           CODEC   = roqvideo
243fate-vsynth%-roqvideo:           ENCOPTS = -frames 5
244fate-vsynth%-roqvideo:           RAWDECOPTS = -r 30
245fate-vsynth%-roqvideo:           FMT     = roq
246
247FATE_VCODEC-$(call ENCDEC, RV10, RM)    += rv10
248fate-vsynth%-rv10:               ENCOPTS = -qscale 10
249fate-vsynth%-rv10:               FMT     = rm
250
251FATE_VCODEC-$(call ENCDEC, RV20, RM)    += rv20
252fate-vsynth%-rv20:               ENCOPTS = -qscale 10
253fate-vsynth%-rv20:               FMT     = rm
254
255FATE_VCODEC-$(call ENCDEC, SNOW, AVI)   += snow snow-hpel snow-ll
256fate-vsynth%-snow:               ENCOPTS = -qscale 2 -flags +qpel \
257                                           -me_method iter -dia_size 2       \
258                                           -cmp 12 -subcmp 12 -s 128x64
259
260fate-vsynth%-snow-hpel:          ENCOPTS = -qscale 2              \
261                                           -me_method iter -dia_size 2       \
262                                           -cmp 12 -subcmp 12 -s 128x64
263
264fate-vsynth%-snow-ll:            ENCOPTS = -qscale .001 -pred 1 \
265                                           -flags +mv4+qpel
266
267FATE_VCODEC-$(call ENCDEC, SVQ1, MOV)   += svq1
268fate-vsynth%-svq1:               ENCOPTS = -qscale 3 -pix_fmt yuv410p
269fate-vsynth%-svq1:               FMT     = mov
270
271FATE_VCODEC-$(call ENCDEC, R210, AVI)   += r210
272
273FATE_VCODEC-$(call ENCDEC, V210, AVI)   += v210
274
275FATE_VCODEC-$(call ENCDEC, V308, AVI)   += v308
276
277FATE_VCODEC-$(call ENCDEC, V408, AVI)   += v408
278fate-vsynth%-v408:               ENCOPTS = -sws_flags neighbor+bitexact
279fate-vsynth%-v408:               DECOPTS = -sws_flags neighbor+bitexact
280
281FATE_VCODEC-$(call ENCDEC, AVUI, MOV)   += avui
282fate-vsynth%-avui:               ENCOPTS = -s pal -strict experimental -sws_flags neighbor+bitexact
283fate-vsynth%-avui:               DECOPTS = -sws_flags neighbor+bitexact
284fate-vsynth%-avui:               FMT     = mov
285
286FATE_VCODEC-$(call ENCDEC, WMV1, AVI)   += wmv1
287fate-vsynth%-wmv1:               ENCOPTS = -qscale 10
288
289FATE_VCODEC-$(call ENCDEC, WMV2, AVI)   += wmv2
290fate-vsynth%-wmv2:               ENCOPTS = -qscale 10
291
292FATE_VCODEC-$(call ENCDEC, RAWVIDEO, AVI) += yuv
293fate-vsynth%-yuv:                CODEC = rawvideo
294
295FATE_VCODEC-$(call ENCDEC, YUV4, AVI) += yuv4
296
297FATE_VCODEC-$(call ENCDEC, Y41P, AVI) += y41p
298
299FATE_VCODEC-$(call ENCDEC, ZLIB, AVI) += zlib
300
301FATE_VCODEC += $(FATE_VCODEC-yes)
302FATE_VSYNTH1 = $(FATE_VCODEC:%=fate-vsynth1-%)
303FATE_VSYNTH2 = $(FATE_VCODEC:%=fate-vsynth2-%)
304# Redundant tests because they just resize the input
305RESIZE_OFF   = dnxhd-720p dnxhd-720p-rd dnxhd-720p-10bit dnxhd-1080i \
306               dv dv-411 dv-50 avui snow snow-hpel snow-ll
307# Incorrect parameters - usually size or color format restrictions
308INC_PAR_OFF  = h261 h261-trellis h263 h263p h263-obmc msvideo1 \
309               roqvideo rv10 rv20 y41p qtrlegray
310VSYNTH3_OFF  = $(RESIZE_OFF) $(INC_PAR_OFF)
311
312FATE_VCODEC3 = $(filter-out $(VSYNTH3_OFF),$(FATE_VCODEC))
313FATE_VSYNTH3 = $(FATE_VCODEC3:%=fate-vsynth3-%)
314
315$(FATE_VSYNTH1): tests/data/vsynth1.yuv
316$(FATE_VSYNTH2): tests/data/vsynth2.yuv
317$(FATE_VSYNTH3): tests/data/vsynth3.yuv
318
319FATE_AVCONV += $(FATE_VSYNTH1) $(FATE_VSYNTH2) $(FATE_VSYNTH3)
320
321fate-vsynth1: $(FATE_VSYNTH1)
322fate-vsynth2: $(FATE_VSYNTH2)
323fate-vsynth3: $(FATE_VSYNTH3)
324fate-vcodec:  fate-vsynth1 fate-vsynth2 fate-vsynth3
325