From: Brendan McGrath bmcgrath@codeweavers.com
These tests ensure that a 2D buffer can override the stride settings of the input/output media attributes of a transform.
This tests the 2D 'width' of the buffer, and if the image is stored 'bottom-up' (determined by a positive or negative stride). --- dlls/mf/tests/mf_test.h | 1 + dlls/mf/tests/nv12frame-extra-width-2d.bmp | Bin 0 -> 101430 bytes .../tests/nv12frame-extra-width-height-2d.bmp | Bin 0 -> 118326 bytes .../mf/tests/nv12frame-extra-width-height.bmp | Bin 0 -> 88758 bytes dlls/mf/tests/nv12frame-extra-width.bmp | Bin 0 -> 76086 bytes dlls/mf/tests/resource.rc | 24 ++ .../tests/rgb32frame-extra-width-height.bmp | Bin 0 -> 64566 bytes dlls/mf/tests/rgb32frame-extra-width.bmp | Bin 0 -> 55350 bytes dlls/mf/tests/transform.c | 207 +++++++++++++++++- 9 files changed, 223 insertions(+), 9 deletions(-) create mode 100644 dlls/mf/tests/nv12frame-extra-width-2d.bmp create mode 100644 dlls/mf/tests/nv12frame-extra-width-height-2d.bmp create mode 100644 dlls/mf/tests/nv12frame-extra-width-height.bmp create mode 100644 dlls/mf/tests/nv12frame-extra-width.bmp create mode 100644 dlls/mf/tests/rgb32frame-extra-width-height.bmp create mode 100644 dlls/mf/tests/rgb32frame-extra-width.bmp
diff --git a/dlls/mf/tests/mf_test.h b/dlls/mf/tests/mf_test.h index f118e921b11..bc3deaf3264 100644 --- a/dlls/mf/tests/mf_test.h +++ b/dlls/mf/tests/mf_test.h @@ -107,6 +107,7 @@ struct sample_desc LONGLONG sample_time; LONGLONG sample_duration; DWORD buffer_count; + DWORD total_length; const struct buffer_desc *buffers; DWORD repeat_count; BOOL todo_length; diff --git a/dlls/mf/tests/nv12frame-extra-width-2d.bmp b/dlls/mf/tests/nv12frame-extra-width-2d.bmp new file mode 100644 index 0000000000000000000000000000000000000000..463dc9adeeb26f12cf15f05c8095bf54483a964a GIT binary patch literal 101430 zcmeI&u})N57{zgYgLwo)b$J1arCL)^*pQgqS`td@>5L^bJ^>g)!7JR#1QQx!WkF-C zDBul_XY_`!PiWR&pEI+<|4cUF=>BGw-~OG$!R%Mt&!0VgvN)cP<DYT-H;#YD@$|{F z@#}c}|M!1R{(QZj&j*IlgAX5vZ{s*UI_nx27Z(F#bv?koVSjP&z<>1hi+}t-=AS?K z$3Ol}1CRN42%dj<{=t9O@4k!QnIH4LcOCxiJpY(K`?&u{U&Hvv|2o`<SCs+(_+OR1 zb@*KT9{6-t||lm@xLm2+rew$NxGwTvdk4+2O!2dhq(w@MRqA|5@E09_QM@zF~iH z@4$cb|9|2i|IYn0y%zuYPdDu3$3OlZKk2pj$A7wECqMr2@Ayft#XtVj4LkYqkAKHc zdM*C(pKjR6kAM6-e$s34kN<STPX3eQ*}yP*@cHF%JP!8%WbXgLzF~iH@4$cb{vZ6~ z-+6vWuf;$9(+xZM@sEGUPkJr>@t<zk$&Y{hJATq@@sIy>!%lwu<KOX<UW<SHryF+i z;~)QypY&S%<3HW7lmB3AV_+CPc)L9ujD!6@nfrgRZ`fblJMbU9{|Ep0cb*^8Yw?f& zbi+=5{Nvy8lU|E|{HGgs^5Y->j-T{e{Nq2}u#+GE_;>uI*Ww@l>4u&B_{YEFC%qQ` z_)j<N<lj5L8W=_ozJ4Fxjf4F^nfrgRZ`fblJMbU9{|Ep0cb*^8Yw?f&bi+=5{Nvy8 zlU|E|{HGgs^5Y->j-T{e{Nq2}u#+GE_;>uI*Ww@l>4u&B_{YEFC%qQ`_)j<N<lou7 z85l+n-v1oljD!6@nfrgRZ`fblJMbU9{|Ep0cb*^8Yw?f&bi+=5{Nvy8lU|E|{HGgs z^5Y->j-T{e{Nq2}u#+GE_;>uI*Ww@l>4u&B_{YEFC%qQ`_)j<N<lnsA9~edte$0m# z<6!?!=Kde-8}=9X4*W;&|G_{0o#%)2TKwZb-LR7%|M++Oq}Spf|LKOE{P@Se<0riq z|M*Wg?BvHk{vAK*wfM(>x?v|j{_*elNw38}{?iRR`Fr=RP<Ph7=jVR!oVBCY-*a?- zE%?61w9-cm`-Yt!Dr?2u`s>44J8J!F2h;VYm7ZeQH|+FKSu5t&Un|bqQR`njn65Xi z^c2IsVW)@6S~0i&T5;BnTL0R?biHY%rx^APJ3Um^in;aIinDgq`qvJo>rE>?#jtPK z>7lY#%&osxoVBCYzjiQPZ(8XohJC|M53j3_Z>P;MX8Ws0b^L4cOY24dCmp~KekLTO zQ~cmZ0yCM6AIZ;U_3@>7{5h4vbWE;}e@T9673lw@1NgzugoJd8AN)vQCX?|a`8laR zj+guVQyu?={P=ND;RiqXx%(j?Vd$9bwEDqXu3u>t9_*p>hfD7NLHTh<|MxdiGdm`i z$3GyyvJCWp+5!CFXKF$@#}9rKFVngBQT*&xAMcji|LXXA<X8Ay(EmvX@PnTT3F#C+ z_>sU&CgVr)vr~P%S?=>sb^IOj<HtdTAN=6w?uUScp<}Ys>IZANex+4-u!qhcF1i1k z)yIoF`oF)Cn%ObAI{qg4rB$H+lMdhqKNAwtDSq%HftgIkkL0I)TB$#i!gNfoPu#v^ zM<l7F{j~ZsDNM)Y`o!%!c0`g&+E1%LlfraNu20;)V@D*Zr2Vw|Gbv2R<od+zJ9b2p zO4?7WKa;|AOs-GdzGFuusigh1`ZFm^$K?9N?K^fvl1k>q$A^zcXZK%Hn2yQC@#o~% z7J>e^9l(#~XLeZodj0AC-RI~`OQX-OO+Py%zqSVSzwH2iG(X3)+Slio%f0{9razvM zA3u&M{Ahl*HfmpQx0ieWsZGDNL4N!=rtqWrIlroXef_@N`%i89^DFY>$1#N;&Cl*l z?d$!|<=%g4)9>DpA3u&M{Ahk|_iJB2=F7eR)TY1PCqI51Q~1&Rw0Dd8GcAoiyFPLI pj(Q@kqW!e`GcAoiyFPLIj(Q@kqW!e`GcAoiyFPLIj(Q@k;umL%C3gS-
literal 0 HcmV?d00001
diff --git a/dlls/mf/tests/nv12frame-extra-width-height-2d.bmp b/dlls/mf/tests/nv12frame-extra-width-height-2d.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3f5de553aab76e8baf12dee730ac9632ecc5ae70 GIT binary patch literal 118326 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
literal 0 HcmV?d00001
diff --git a/dlls/mf/tests/nv12frame-extra-width-height.bmp b/dlls/mf/tests/nv12frame-extra-width-height.bmp new file mode 100644 index 0000000000000000000000000000000000000000..432958d9c59ce960498aa508c6c6d158ad035e71 GIT binary patch literal 88758 zcmeI3F>cjb5Qcd>@DflevH>DW9(9ToG?CZ<k)l^o-wx4{G^`*uic(}3NI^;yQBkBp zR4I}LJjvKV;ggYmVgF;@6Zx}sqU$qvJmcS=XHH`HclY`KPkwFByPwax@v$5Kb>p8W zPrIMp_Q(GF;P=mFwQ3og)8Ojrs(s7@b~eXOul-|Yr_UXJ;KyMYe&7dwHp_tX3_AC& z24Cme@%6c_fdMB681NZzG<5D=4ZhB`<Lk3m0|QPDx83iM3`2wWAKI_oI6t|VG@N@^ zgD>nD?DWqb{7`?K8Vo=113#1h4o?4~e>v+Y_<<kzF&UtL(Z3u99ADPYte@eB`r|O* z_)>qUKk!5SaTsuX7hZp^o8y*YXz=P&`?(uSeg6eJ20Q(;2S3ywrv}3h{J_uT^)vm8 z{^h*CfFJmQACm$47yZj&!0~1M%=#IAs6P$^jxY6x`U5}IABO?Qcj5KtY~8dBLxa<o z?YbLFeg6eJ20Q(;2S3ywrv}3h{J_uT^)vm8{^h*CfFJmQACm$47yZj&!0~1M%=#IA zs6P$^jxY6x`U5}IABO?Qcj5KtXlJWs7#h6UZI8OK)c0SoW3badd+<a3acVI9zz_UP zUO&^n=wHtJ3;2N__%Ruvf6>1j1{`13&#a%}hx+3%;P_I1s6X&S{c#v@d>3AS4lZw6 zhM~ciZ|&P|EcN{t>=^9y&mR0xf1DZ&Kkx%Tlh@DmFZ!4B{sMmB2YyTj=wI|NhXKcz z^)u^d_@Vwd3^=~jAL<YMP=6c-9N&f4pS}INmSJe{?nnE&8%urv1v>^i{j&!@)E}n? z!w>wx&*b$p{fqwPyuW}S_<<jj0s0sH%VEIrW&O<h8Gfig4g-!a^@sWcKhz(G0mpaY z^=JG3uw@t;d|$OMy0O&vU$A4a(?5IgL;Z1TF#Ny|{7hay)4%9n&if1afgkuW8K8gB zzZ?b}U)Im8pW%o4<1pa(Qh%sF@I(D^7;t<SUVo;(x54jX@;k4gcFyn4HTVv%h0i%m zjM1?M2AmwmTr1zr=gYZwHTc3rJ`-a!t$_h2hcVa6ck@|u?p+POFp<y17)@(nz{z3E zwesD3)|`7+gD*_vGciWf8W?bL7;~+BH=i}<-qqj>6ZuSx(X<8zoE*knE8op$&AE3q z_`*a!6Js>3fdMCnX0>V=o72F#cQyFJ&gR(ZwXcBzCkOa}ANbiU1I{z(+`AfloomO} z=e7n0oE%`lXTZ_Wxpy`AI@gY`&t44-I61(8&w!($bMI>KZD!uOYaF%BoK7<;neNNv zqZLCR^cgas)ri*H?CtA$vBijbCOe&5^3jr_5Bg{Yv=x5PM=PMMCO_BN+vlQvo$GED zt=Z{ZlaH1Zeb7fMpsnzOK3V~7HTgNq-qv3K%1-Bue6*zKgFadTZG|87(F$m*$<I;x z=Jl`ibdJbJYl=STqZQCr_(317fVO)49As~A$wx|xK2n|o^g$o3fVRTVqV(Cz-d=nC zD?6P%^3jr_5Bg{Yv=x5PM=PMMCO_NR+Y7IMWv8=EK3Y=rK_9Jvw!#nkXa%&@<frU5 z`A6|z80wk)49YX==+Rnw=O4w0dL}=E@{Brqw3goaM=_$F$<LrXqmCY}rFZ^OjHqYw zGbqofqepA$oqrS~>Y4lu$}{Td(OP=vAH|4zCO?Dnj5>O>4*&1i9G_!EJu^oR!*lBB z(K_^<<8zFtXXeOZcupNXT8F-Ke2x+I%p5rk	wF>(F<O&oQE&nInhcId$}CUCq43 zh<aw`bXGcgw31KMWH^(p&-)K27sGuR>u)}jk5&nN9+y7Naqj-=)9~p!xzK7vYi>5p zG5Kgk(Pv(L)=lny`qF#8a<f@C<f9cupLzA!*~;DD?0U~vZZ<nx<f9cupLzAUyvg0a zeDj{K+-xpy$VV%RKJ)6cf0w(z`{6xbx!LUBk&jjsedg8Y{xEm{zVe>0+-&X-$ww=S zKJ)5RJ`MRt@h^mWCO?Dnj5>O>mfrbCF`}Ny&!9Y`jvlS0cm7d~sAuvsD9@;)M{D-` il!xbw5%tVN|LkKOJzBHlKRjQIsAnGfXCLe6(fSkd?O#*?
literal 0 HcmV?d00001
diff --git a/dlls/mf/tests/nv12frame-extra-width.bmp b/dlls/mf/tests/nv12frame-extra-width.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0fbb616d07919774ac0074e7d94b2caf7a82e5f3 GIT binary patch literal 76086 zcmeI2u}&L75QfPc_z@yk;RQgHgxZA*8YHCDSaM124$;MKcmf+)F8mfqAkkP95rrE> zMFDTH*$XMWSB$jx&q<f;x2Lr@?G2jy{p~-KEZ+wQzxMu&gZTL^&YyAqi1W+d*Z3L7 z-}TR%&(F8XBrpXHuCBvVoU8e|(R_S-4FB?k9f6%{@4*lLqj)g<zz_U1uA$T~>X*`g z!4LevkH`S^i~6N7pv2NY(?7!x{-ZFU#Nt2r5B%Ui3Ij@P;r_Gf%>q-<;N&LU#aZh4 z7wib^RC^D8@E^s4;Rk-;r*Z#G{i1#;=NIq;Kky?mK>ebADGVsF^w0Fq@Pq#-3@EYq z5B>u`_>aPX5?i?cEEm1N6g0R!4vRQTJ^z9oft_ma!4LkUcrg6H5BxOlpQ&HeFXj9K ze&7dwL<Xo|)GvhrC6@k~{uzGoAB6!W7XQJ2;0OOv7*Jvh_n+xuKQILi&Ie%{XQ}63 zup_Wj?LGLxe-safANYZv#{Dz(i~6OUU%(Iiz>mlP^^5wYFrdWJKhr<M5B{Stpv2-o z_z(QxKMDg%Y~lVhy59z-puxj)xQMgV^Do#D*s1m&{NO)|2g48iz)$1;nfgWjQqC{n z2Y%p3WPtib{ZbfEV(FjhpWz4pQ5aBS@gMvLe()cK0VTF@{~4aW2d1FG<!d;Nv()o1 z*b&&N_8$D;KZ*y#5B$JS<NlfYMg3CFFW?7$;74SD`bGUx7*JyApXs0B2metRP-5{P z{0DyUAB6!Wws8O1{}>0Rpux)|9K~7c`4{X6>{NRXe()c~gW(5$;HPo_O#PyMDd!jP z13&O1GC=*JeklwnvGmXM&+vo)C=4jE_z(UAKlqQrfD&7{|1>?fA#UCH%xhOW<=@U- zh~0e`e)eG^N5?KOpyZJAt~~3{m-5|pAr>b5naI(!3k)bZ<h(1-`m?5dcU_2u34bPX zH0=TdN)9>i%Cr8gDc@ZeVqwCci5yM4z<`oN&b#ugKWoZ&*M(S^@Mj`N(=ITe<dE~O zJnPSz^4)bI7AE|e$kDV53@ACgd5@=6GGcC7!#kZf^06gFAM~*muvg&+eQX8nRgs^K z_qa>S*D9-c#fQDq*^rMdDf*y~t$@7>Kj>pCV6Te&EWO7<t6$#fEXl`~6n)UgR={3` zAM~*muvbNXrtU+lU+(El$;Z|debC2Nz+QzP^syDNS2cb{-s6INOi9tllxKuK=wmBj zufk7J`V76tsaC(d(;1SFEh+k-kF9{c3P0#$D`2mR{Oo&=BdvaUr?XE!wxsBTKDGk( zD*T|2t$@8M@{?8@|GV73KlINa{f*?4>QTQ#pSmLHJ^G}2)bG%zu1I>1KB*q{yIg%H z&g1HOzTUmaClwfdQa$Q-|C>I&neTOSv%9<I>)ie2n@w*<KDMIh)2=>?p6_*gtnDw~ zY!*H8u@yz1cJ(>z`(Eb*ZGZV@bJ!;zTT%3BSD*W>@AdGk?JwVK?ziM)D~dkt>T~w) zdtJV2`^z_*vv=~b6-A$R_4ye4UM~}EfB9zfF(w~dQS@n7pL93)-{t=Qp??PHZzP{o PkNO?@)D=nZbM^TRqP14o
literal 0 HcmV?d00001
diff --git a/dlls/mf/tests/resource.rc b/dlls/mf/tests/resource.rc index 4d986626cc0..0bd8c68d0ff 100644 --- a/dlls/mf/tests/resource.rc +++ b/dlls/mf/tests/resource.rc @@ -137,10 +137,26 @@ abgr32frame-crop.bmp RCDATA abgr32frame-crop.bmp /* @makedep: rgb32frame-grabber.bmp */ rgb32frame-grabber.bmp RCDATA rgb32frame-grabber.bmp
+/* Generated from running the tests on Windows */ +/* @makedep: rgb32frame-extra-width.bmp */ +rgb32frame-extra-width.bmp RCDATA rgb32frame-extra-width.bmp + /* Generated from running the tests on Windows */ /* @makedep: rgb32frame-extra-height.bmp */ rgb32frame-extra-height.bmp RCDATA rgb32frame-extra-height.bmp
+/* Generated from running the tests on Windows */ +/* @makedep: rgb32frame-extra-width-height.bmp */ +rgb32frame-extra-width-height.bmp RCDATA rgb32frame-extra-width-height.bmp + +/* Generated from running the tests on Windows */ +/* @makedep: nv12frame-extra-width.bmp */ +nv12frame-extra-width.bmp RCDATA nv12frame-extra-width.bmp + +/* Generated from running the tests on Windows */ +/* @makedep: nv12frame-extra-width-2d.bmp */ +nv12frame-extra-width-2d.bmp RCDATA nv12frame-extra-width-2d.bmp + /* Generated from running the tests on Windows */ /* @makedep: nv12frame-extra-height.bmp */ nv12frame-extra-height.bmp RCDATA nv12frame-extra-height.bmp @@ -149,6 +165,14 @@ nv12frame-extra-height.bmp RCDATA nv12frame-extra-height.bmp /* @makedep: nv12frame-extra-height-2d.bmp */ nv12frame-extra-height-2d.bmp RCDATA nv12frame-extra-height-2d.bmp
+/* Generated from running the tests on Windows */ +/* @makedep: nv12frame-extra-width-height.bmp */ +nv12frame-extra-width-height.bmp RCDATA nv12frame-extra-width-height.bmp + +/* Generated from running the tests on Windows */ +/* @makedep: nv12frame-extra-width-height-2d.bmp */ +nv12frame-extra-width-height-2d.bmp RCDATA nv12frame-extra-width-height-2d.bmp + /* Generated from running the tests on Windows */ /* @makedep: rgb555frame.bmp */ rgb555frame.bmp RCDATA rgb555frame.bmp diff --git a/dlls/mf/tests/rgb32frame-extra-width-height.bmp b/dlls/mf/tests/rgb32frame-extra-width-height.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e4484622f19ac9240ec3f1a4bd5f3de760231118 GIT binary patch literal 64566 zcmeI)v27GV7>40>LLG!u-~x!D7bFUBOh$%~=zt=S$Q_Uq(E&N~F~?dIFt4Q@YoC+m z1VW#^`_HrAowbKwzrFpl{d?Sw=T~EW9P8a!H`~kcJRXn#zW?R_^JV<WI%o#>&-}s8 zvDeNs=X1{wKgBRV{P1(EfpQI&y;~t$&Rw><UBN&(1_ru;GQ+ZWD`d;L%XWJ!7%0bZ z@#quyF}}pz+$wvwLbeajSGe#4L74zQWqPvwFi<AIPnn)9KMa%!@KdHI%MSx(0{oQe z$@0TMnE*d!da@_>vyI)i+6=yZA49yGTPxhdD#yT1vvZvvKYfO0cE}Gu#Xmp%@H6)= zsLV}vzwY#p{wdc2Km73H^{W^tS^cAb_|ZSbK*{PK{lm{(|BzGUJZ8UsI_>>0e)ySd zo;}46Km0s_f$}L9uV3R+2nX-MbN>GP@KgNq!w)}GZ-cyUJ;Cd?{?R}BNB<N9C98k* z4?p^+7%15j_s`9ko7HCU`OAmX-v45!*}2Y-pFYDgJLHF-;-4RW_?i0g>%PoQcE9fQ zkNzpw0zdrl<Mpc;C|UiZfB4Zq#X!mGAN|A6T>m_bk55@`2A3DVPkaB1oo44cKYscQ z&+L#Neu{s7_~FO<=VG8_^^gAHNB<N9C98k*4?p^+7${l&qks6(KgB@Fp1FUv?crjz z8NA<qo%a40JI&5@e*E+qp4lNk{1pHE@WapC&tGM3vio(XfAmke7Wm<ZAFp4<K*{PK z{lky`DF#Yb|L7ln=K5#c{2ISP+$uBpxxG2<{jV}N+5NiXNB@*-fggVO@&2b6C|UiZ zfB4Zq#X!mGAN|9R{wW4ZR{!W9e)LZ<P_p_*|L`-}KX>EzuUUu9U~bpeNwIV6^|OwI zxg+6+pE)^uiXVRXIo3eA2Fu>9kS*sf+ug2Upd14O-9VXP*}E08<=kbvy%h|UV_={g zC^Ia3w?ej@yKJ|&f`M`j40Ho!hGp+o$d+@L?e<nMP>x|6|M$x}ZU$xVR>-n*oSp0J zS1?eHfggVOIo3eA2Fu>9kS*sf+ug2Upd14O-9VXP*}E08<=kbvy%h|UV_={gC^Ia3 Hw?g(WEVa!9
literal 0 HcmV?d00001
diff --git a/dlls/mf/tests/rgb32frame-extra-width.bmp b/dlls/mf/tests/rgb32frame-extra-width.bmp new file mode 100644 index 0000000000000000000000000000000000000000..509ed6acaeb54d46fd6e2221b47124ec92dfbfcf GIT binary patch literal 55350 zcmeI)v27GV7>40>LLG!u-~x!D2YR3Y$7Ey(i4G_NiTnaG0wOw~0UvW-S1_-o+tWNJ z%}JK^*?a#!^X*xC^4s_KzqhBy{dj&e*5|Q4jCHrY9?#?P{Qdol{rT+CC-7_hh=;j# zy75OJo}X~$2ZAyIe#-P@`C*_;fS)owS$-HO6X2&zPnI7B$^`f+)05?gfieMp%JgIx z_Op$%Z?zfx_&J97Ft={}_ScD>X6G_Le)<eocE}Gu#Xmp%@H6*LtjtYz-*@^)|CGJJ z4?q04eiZ{HtAF$lKl-N_C|UiZfB2c}A99ME=j`_{%ijOuho8CT*;D-R!_NyCD4$|+ z{TiP_xbiu;<=@W_KgBOU{O~jNHpq4B1+LrrNB`&_{ZkB-tp3qI{OF%zpkx>BpSv+P ztIgo+w@=I7|6-@vxy+BBKEstA^21N@&ksNRO#S(FDsz+F_nrRHKV>iQ!w)~MU&TPl z>L2~XkNznJN>=~qAAaWg=W%>|%4#z>zxucA{V#T!oy+|A=`&o}AwT>S|NQX7kN3~T zK*{PK{lky`DF#Yb|L7ln^iMHRvie8=@S}f<fs$Rhf41%MY_%DD-2N_m|BIbw=Q2Nj z`V3cg$PYioKR^8NGxzsbnVams@AQxUDSLq*e)w_yDh5hc|L7ln^iMHRvie8=@H5vx z<L1}+7vff#!JqBjviHBr++_EC$B+Igdx0N*`0@Uy7${l&qks6(KgB@F>L2~XkNznJ zN>=~qAAa;tF;KGlNB{6M**_2C|F2nBo59>!J5Gw7>+YZ9NSHeke)yS_v#0psho9>j zD0{G+yCY=FYnSbAk6@r20|VVanPEA1N641fF5B%L!9Y0%2D*VV!*cG9kS(uWw%a>` bfpQECbOU9E<=h=1TVA_tw|4{s<rw}0eNi>b
literal 0 HcmV?d00001
diff --git a/dlls/mf/tests/transform.c b/dlls/mf/tests/transform.c index 575d884e195..6de257475ba 100644 --- a/dlls/mf/tests/transform.c +++ b/dlls/mf/tests/transform.c @@ -1376,7 +1376,7 @@ static DWORD check_mf_sample_(const char *file, int line, IMFSample *sample, con const BYTE **expect_data, DWORD *expect_data_len) { struct check_mf_sample_context ctx = {.data = *expect_data, .data_len = *expect_data_len, .file = file, .line = line}; - DWORD buffer_count, total_length, sample_flags; + DWORD buffer_count, total_length, sample_flags, expect_length; LONGLONG timestamp; HRESULT hr;
@@ -1410,15 +1410,19 @@ static DWORD check_mf_sample_(const char *file, int line, IMFSample *sample, con "got sample duration %I64d\n", timestamp);
enum_mf_media_buffers(sample, expect, check_mf_sample_buffer, &ctx); + if (expect->total_length) + expect_length = expect->total_length; + else + expect_length = ctx.total_length;
total_length = 0xdeadbeef; hr = IMFSample_GetTotalLength(sample, &total_length); ok_(file, line)(hr == S_OK, "GetTotalLength returned %#lx\n", hr); todo_wine_if(expect->todo_length) - ok_(file, line)(total_length == ctx.total_length, + ok_(file, line)(total_length == expect_length, "got total length %#lx\n", total_length); - ok_(file, line)(!*expect_data || *expect_data_len >= ctx.total_length, - "missing %#lx data\n", ctx.total_length - *expect_data_len); + ok_(file, line)(!*expect_data || *expect_data_len >= expect_length, + "missing %#lx data\n", expect_length - *expect_data_len);
*expect_data = ctx.data; *expect_data_len = ctx.data_len; @@ -7647,7 +7651,8 @@ static void test_video_processor(BOOL use_2d_buffer)
static const MFVideoArea actual_aperture = {.Area={82,84}}; static const DWORD actual_width = 96, actual_height = 96, nv12_aligned_width = 128; - static const DWORD extra_height = actual_height + 0x10; + static const DWORD extra_width = actual_width + 0x30, extra_height = actual_height + 0x10; + static const DWORD nv12_aligned_extra_width = 192; const struct attribute_desc rgb32_with_aperture[] = { ATTR_GUID(MF_MT_MAJOR_TYPE, MFMediaType_Video, .required = TRUE), @@ -7681,6 +7686,13 @@ static void test_video_processor(BOOL use_2d_buffer) ATTR_RATIO(MF_MT_FRAME_SIZE, actual_width, actual_height, .required = TRUE), {0}, }; + const struct attribute_desc nv12_extra_width[] = + { + ATTR_GUID(MF_MT_MAJOR_TYPE, MFMediaType_Video, .required = TRUE), + ATTR_GUID(MF_MT_SUBTYPE, MFVideoFormat_NV12, .required = TRUE), + ATTR_RATIO(MF_MT_FRAME_SIZE, extra_width, actual_height, .required = TRUE), + {0}, + }; const struct attribute_desc nv12_extra_height[] = { ATTR_GUID(MF_MT_MAJOR_TYPE, MFMediaType_Video, .required = TRUE), @@ -7688,6 +7700,13 @@ static void test_video_processor(BOOL use_2d_buffer) ATTR_RATIO(MF_MT_FRAME_SIZE, actual_width, extra_height, .required = TRUE), {0}, }; + const struct attribute_desc nv12_extra_width_height[] = + { + ATTR_GUID(MF_MT_MAJOR_TYPE, MFMediaType_Video, .required = TRUE), + ATTR_GUID(MF_MT_SUBTYPE, MFVideoFormat_NV12, .required = TRUE), + ATTR_RATIO(MF_MT_FRAME_SIZE, extra_width, extra_height, .required = TRUE), + {0}, + }; const struct attribute_desc rgb32_default_stride[] = { ATTR_GUID(MF_MT_MAJOR_TYPE, MFMediaType_Video, .required = TRUE), @@ -7695,6 +7714,14 @@ static void test_video_processor(BOOL use_2d_buffer) ATTR_RATIO(MF_MT_FRAME_SIZE, actual_width, actual_height, .required = TRUE), {0}, }; + const struct attribute_desc rgb32_extra_width[] = + { + ATTR_GUID(MF_MT_MAJOR_TYPE, MFMediaType_Video, .required = TRUE), + ATTR_GUID(MF_MT_SUBTYPE, MFVideoFormat_RGB32, .required = TRUE), + ATTR_RATIO(MF_MT_FRAME_SIZE, extra_width, actual_height, .required = TRUE), + ATTR_UINT32(MF_MT_DEFAULT_STRIDE, extra_width * 4), + {0}, + }; const struct attribute_desc rgb32_extra_height[] = { ATTR_GUID(MF_MT_MAJOR_TYPE, MFMediaType_Video, .required = TRUE), @@ -7703,6 +7730,14 @@ static void test_video_processor(BOOL use_2d_buffer) ATTR_UINT32(MF_MT_DEFAULT_STRIDE, actual_width * 4), {0}, }; + const struct attribute_desc rgb32_extra_width_height[] = + { + ATTR_GUID(MF_MT_MAJOR_TYPE, MFMediaType_Video, .required = TRUE), + ATTR_GUID(MF_MT_SUBTYPE, MFVideoFormat_RGB32, .required = TRUE), + ATTR_RATIO(MF_MT_FRAME_SIZE, extra_width, extra_height, .required = TRUE), + ATTR_UINT32(MF_MT_DEFAULT_STRIDE, extra_width * 4), + {0}, + }; const struct attribute_desc rgb32_negative_stride[] = { ATTR_GUID(MF_MT_MAJOR_TYPE, MFMediaType_Video, .required = TRUE), @@ -7774,6 +7809,7 @@ static void test_video_processor(BOOL use_2d_buffer) ATTR_UINT32(MF_MT_DEFAULT_STRIDE, -82 * 4), {0}, }; + const MFT_OUTPUT_STREAM_INFO initial_output_info = {0}; const MFT_INPUT_STREAM_INFO initial_input_info = {0}; MFT_OUTPUT_STREAM_INFO output_info = {0}; @@ -7821,6 +7857,19 @@ static void test_video_processor(BOOL use_2d_buffer) .sample_time = 0, .sample_duration = 10000000, .buffer_count = 1, .buffers = &rgb32_crop_buffer_2d_desc, }; + const struct buffer_desc rgb32_extra_width_buffer_desc = + { + .length = extra_width * actual_height * 4, + .compare = compare_rgb32, .compare_rect = {.top = 12, .right = 82, .bottom = 96}, + .dump = dump_rgb32, .size = {.cx = extra_width, .cy = actual_height}, + }; + const struct sample_desc rgb32_extra_width_sample_desc = + { + .attributes = output_sample_attributes, + .sample_time = 0, .sample_duration = 10000000, + .total_length = actual_width * actual_height * 4, + .buffer_count = 1, .buffers = &rgb32_extra_width_buffer_desc, + }; const struct buffer_desc rgb32_extra_height_buffer_desc = { .length = actual_width * extra_height * 4, @@ -7831,8 +7880,22 @@ static void test_video_processor(BOOL use_2d_buffer) { .attributes = output_sample_attributes, .sample_time = 0, .sample_duration = 10000000, + .total_length = actual_width * extra_height * 4, .buffer_count = 1, .buffers = &rgb32_extra_height_buffer_desc, }; + const struct buffer_desc rgb32_extra_width_height_buffer_desc = + { + .length = extra_width * extra_height * 4, + .compare = compare_rgb32, .compare_rect = {.top = 12, .right = 82, .bottom = 96}, + .dump = dump_rgb32, .size = {.cx = extra_width, .cy = extra_height}, + }; + const struct sample_desc rgb32_extra_width_height_sample_desc = + { + .attributes = output_sample_attributes, + .sample_time = 0, .sample_duration = 10000000, + .total_length = actual_width * extra_height * 4, + .buffer_count = 1, .buffers = &rgb32_extra_width_height_buffer_desc, + };
const struct buffer_desc rgb555_buffer_desc = { @@ -7872,6 +7935,31 @@ static void test_video_processor(BOOL use_2d_buffer) .buffer_count = 1, .buffers = &nv12_buffer_2d_desc, };
+ const struct buffer_desc nv12_extra_width_buffer_desc = + { + .length = extra_width * actual_height * 3 / 2, + .compare = compare_nv12, .compare_rect = {.top = 12, .right = 82, .bottom = 96}, + .dump = dump_nv12, .size = {.cx = extra_width, .cy = actual_height}, + }; + const struct sample_desc nv12_extra_width_sample_desc = + { + .attributes = output_sample_attributes, + .sample_time = 0, .sample_duration = 10000000, + .total_length = actual_width * actual_height * 3 / 2, + .buffer_count = 1, .buffers = &nv12_extra_width_buffer_desc, + }; + const struct buffer_desc nv12_extra_width_buffer_2d_desc = + { + .length = nv12_aligned_extra_width * actual_height * 3 / 2, + .compare = compare_nv12, .compare_rect = {.top = 12, .right = 82, .bottom = 96}, + .dump = dump_nv12, .size = {.cx = nv12_aligned_extra_width, .cy = actual_height}, + }; + const struct sample_desc nv12_extra_width_sample_2d_desc = + { + .attributes = output_sample_attributes, + .sample_time = 0, .sample_duration = 10000000, + .buffer_count = 1, .buffers = &nv12_extra_width_buffer_2d_desc, + }; const struct buffer_desc nv12_extra_height_buffer_desc = { .length = actual_width * extra_height * 3 / 2, @@ -7882,6 +7970,7 @@ static void test_video_processor(BOOL use_2d_buffer) { .attributes = output_sample_attributes, .sample_time = 0, .sample_duration = 10000000, + .total_length = actual_width * extra_height * 3 / 2, .buffer_count = 1, .buffers = &nv12_extra_height_buffer_desc, }; const struct buffer_desc nv12_extra_height_buffer_2d_desc = @@ -7894,8 +7983,34 @@ static void test_video_processor(BOOL use_2d_buffer) { .attributes = output_sample_attributes, .sample_time = 0, .sample_duration = 10000000, + .total_length = actual_width * extra_height * 3 / 2, .buffer_count = 1, .buffers = &nv12_extra_height_buffer_2d_desc, }; + const struct buffer_desc nv12_extra_width_height_buffer_desc = + { + .length = extra_width * extra_height * 3 / 2, + .compare = compare_nv12, .compare_rect = {.top = 12, .right = 82, .bottom = 96}, + .dump = dump_nv12, .size = {.cx = extra_width, .cy = extra_height}, + }; + const struct sample_desc nv12_extra_width_height_sample_desc = + { + .attributes = output_sample_attributes, + .sample_time = 0, .sample_duration = 10000000, + .total_length = actual_width * extra_height * 3 / 2, + .buffer_count = 1, .buffers = &nv12_extra_width_height_buffer_desc, + }; + const struct buffer_desc nv12_extra_width_height_buffer_2d_desc = + { + .length = nv12_aligned_extra_width * extra_height * 3 / 2, + .compare = compare_nv12, .compare_rect = {.top = 12, .right = 82, .bottom = 96}, + .dump = dump_nv12, .size = {.cx = nv12_aligned_extra_width, .cy = extra_height}, + }; + const struct sample_desc nv12_extra_width_height_sample_2d_desc = + { + .attributes = output_sample_attributes, + .sample_time = 0, .sample_duration = 10000000, + .buffer_count = 1, .buffers = &nv12_extra_width_height_buffer_2d_desc, + };
const struct transform_desc { @@ -8082,6 +8197,73 @@ static void test_video_processor(BOOL use_2d_buffer) .output_sample_desc = &nv12_extra_height_sample_desc, .output_sample_2d_desc = &nv12_extra_height_sample_2d_desc, .todo = TRUE, }, + { /* Test 21 */ + .input_type_desc = nv12_default_stride, .input_bitmap = L"nv12frame.bmp", + .input_buffer_desc = use_2d_buffer ? nv12_default_stride : NULL, + .output_type_desc = rgb32_default_stride, .output_bitmap = L"rgb32frame-flip.bmp", .output_bitmap_2d = L"rgb32frame.bmp", .output_bitmap_1d = L"rgb32frame.bmp", + .output_buffer_desc = use_2d_buffer ? rgb32_default_stride : NULL, + .output_sample_desc = &rgb32_sample_desc, .output_sample_2d_desc = &rgb32_sample_desc, + .delta = 3, /* Windows returns 3 with 2D buffer */ + .todo = use_2d_buffer, + }, + { /* Test 22 */ + .input_type_desc = nv12_default_stride, .input_bitmap = L"nv12frame.bmp", + .input_buffer_desc = use_2d_buffer ? nv12_default_stride : NULL, + .output_type_desc = rgb32_default_stride, .output_bitmap = L"rgb32frame-flip.bmp", .output_bitmap_2d = L"rgb32frame.bmp", .output_bitmap_1d = L"rgb32frame.bmp", + .output_buffer_desc = use_2d_buffer ? rgb32_positive_stride : NULL, + .output_sample_desc = &rgb32_sample_desc, .output_sample_2d_desc = &rgb32_sample_desc, + .delta = 3, /* Windows returns 3 with 2D buffer */ + .todo = use_2d_buffer, + }, + + { /* Test 23, 2D only */ + .input_type_desc = nv12_default_stride, .input_bitmap = L"nv12frame.bmp", + .input_buffer_desc = nv12_default_stride, + .output_type_desc = rgb32_default_stride, .output_bitmap = L"rgb32frame-extra-width.bmp", + .output_buffer_desc = rgb32_extra_width, + .output_sample_desc = &rgb32_extra_width_sample_desc, .output_sample_2d_desc = &rgb32_extra_width_sample_desc, + .todo = TRUE, + }, + { /* Test 24, 2D only */ + .input_type_desc = rgb32_default_stride, .input_bitmap = L"rgb32frame-extra-width.bmp", + .input_buffer_desc = rgb32_extra_width, + .output_type_desc = nv12_default_stride, .output_bitmap_1d = L"nv12frame.bmp", .output_bitmap_2d = L"nv12frame-2d.bmp", + .output_buffer_desc = nv12_default_stride, + .output_sample_desc = &nv12_sample_desc, .output_sample_2d_desc = &nv12_sample_2d_desc, + .delta = 2, /* Windows returns 2 with 1D buffer */ .todo = TRUE, + }, + { /* Test 25, 2D only */ + .input_type_desc = rgb32_default_stride, .input_bitmap = L"rgb32frame-extra-width.bmp", + .input_buffer_desc = rgb32_extra_width, + .output_type_desc = nv12_default_stride, .output_bitmap_1d = L"nv12frame-extra-width.bmp", .output_bitmap_2d = L"nv12frame-extra-width-2d.bmp", + .output_buffer_desc = nv12_extra_width, + .output_sample_desc = &nv12_extra_width_sample_desc, .output_sample_2d_desc = &nv12_extra_width_sample_2d_desc, + .todo = TRUE, + }, + { /* Test 26, 2D only */ + .input_type_desc = nv12_default_stride, .input_bitmap = L"nv12frame-extra-width.bmp", + .input_buffer_desc = nv12_extra_width, + .output_type_desc = rgb32_default_stride, .output_bitmap_1d = L"rgb32frame.bmp", .output_bitmap_2d = L"rgb32frame.bmp", + .output_buffer_desc = rgb32_default_stride, + .output_sample_desc = &rgb32_sample_desc, .output_sample_2d_desc = &rgb32_sample_desc, + .todo = TRUE, + }, + { /* Test 27, 2D only */ + .input_type_desc = nv12_default_stride, .input_bitmap = L"nv12frame.bmp", + .input_buffer_desc = nv12_default_stride, + .output_type_desc = rgb32_extra_height, .output_bitmap = L"rgb32frame-extra-width-height.bmp", + .output_buffer_desc = rgb32_extra_width_height, + .output_sample_desc = &rgb32_extra_width_height_sample_desc, .output_sample_2d_desc = &rgb32_extra_width_height_sample_desc, + .todo = TRUE, + }, + { /* Test 28, 2D only */ + .input_type_desc = rgb32_default_stride, .input_bitmap = L"rgb32frame.bmp", + .input_buffer_desc = rgb32_default_stride, + .output_type_desc = nv12_extra_height, .output_bitmap_1d = L"nv12frame-extra-width-height.bmp", .output_bitmap_2d = L"nv12frame-extra-width-height-2d.bmp", + .output_buffer_desc = nv12_extra_width_height, + .output_sample_desc = &nv12_extra_width_height_sample_desc, .output_sample_2d_desc = &nv12_extra_width_height_sample_2d_desc, + .todo = TRUE, + }, };
MFT_REGISTER_TYPE_INFO output_type = {MFMediaType_Video, MFVideoFormat_NV12}; @@ -8416,6 +8598,10 @@ static void test_video_processor(BOOL use_2d_buffer) { const struct transform_desc *test = video_processor_tests + i;
+ /* skip tests which require 2D buffers when not testing them */ + if (!use_2d_buffer && test->input_buffer_desc) + continue; + winetest_push_context("transform #%lu", i);
check_mft_set_input_type_required(transform, test->input_type_desc); @@ -8426,7 +8612,8 @@ static void test_video_processor(BOOL use_2d_buffer) check_mft_set_output_type(transform, test->output_type_desc, S_OK); check_mft_get_output_current_type(transform, test->output_type_desc);
- if (test->output_sample_desc == &nv12_sample_desc) + if (test->output_sample_desc == &nv12_sample_desc + || test->output_sample_desc == &nv12_extra_width_sample_desc) { output_info.cbSize = actual_width * actual_height * 3 / 2; check_mft_get_output_stream_info(transform, S_OK, &output_info); @@ -8441,12 +8628,14 @@ static void test_video_processor(BOOL use_2d_buffer) output_info.cbSize = actual_aperture.Area.cx * actual_aperture.Area.cy * 4; check_mft_get_output_stream_info(transform, S_OK, &output_info); } - else if (test->output_sample_desc == &nv12_extra_height_sample_desc) + else if (test->output_sample_desc == &nv12_extra_height_sample_desc + || test->output_sample_desc == &nv12_extra_width_height_sample_desc) { output_info.cbSize = actual_width * extra_height * 3 / 2; check_mft_get_output_stream_info(transform, S_OK, &output_info); } - else if (test->output_sample_desc == &rgb32_extra_height_sample_desc) + else if (test->output_sample_desc == &rgb32_extra_height_sample_desc + || test->output_sample_desc == &rgb32_extra_width_height_sample_desc) { output_info.cbSize = actual_width * extra_height * 4; check_mft_get_output_stream_info(transform, S_OK, &output_info); @@ -8502,7 +8691,7 @@ static void test_video_processor(BOOL use_2d_buffer) length = *(DWORD *)(input_data + 2 + 2 * sizeof(DWORD)); input_data_len -= length; } - ok(input_data_len == input_info.cbSize, "got length %lu\n", input_data_len); + if (!test->input_buffer_desc) ok(input_data_len == input_info.cbSize, "got length %lu\n", input_data_len); input_data += length;
input_sample = create_sample_(input_data, input_data_len, test->input_buffer_desc);