From 7d41786c85fadf0b01b163f2f56600d9f1ddd4cd Mon Sep 17 00:00:00 2001 From: Sebastien Vincent Date: Thu, 3 Jun 2010 14:18:55 +0000 Subject: [PATCH] Fix a bug in DirectShow when changing webcam resolution and add I420 format support. --- lib/native/windows-64/jdirectshow.dll | Bin 96256 -> 95744 bytes lib/native/windows/jdirectshow.dll | Bin 81920 -> 81920 bytes .../windows/directshow/ds_capture_device.cpp | 5 +---- ...pl_neomedia_directshow_DSCaptureDevice.cpp | 1 + ...ator_impl_neomedia_directshow_DSFormat.cpp | 8 +++++++- ...icator_impl_neomedia_directshow_DSFormat.h | 8 ++++++++ .../impl/neomedia/directshow/DSFormat.java | 3 +++ .../media/protocol/directshow/DataSource.java | 4 +++- 8 files changed, 23 insertions(+), 6 deletions(-) diff --git a/lib/native/windows-64/jdirectshow.dll b/lib/native/windows-64/jdirectshow.dll index 2a29a11a2e02477cae253408762cca0e84bdd77f..82e5bfea1bf66b6e256ec5461741181cd7eeffe2 100644 GIT binary patch delta 22957 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 G4F3xpKuxy* delta 23182 zcmeHvdt6ji_xITYBg16`l;Mtm4hY^D0To1aP|!h9@s4JSmrTnGDwL%)7+TPXV%r=t zEmSf}DH2Pxv{6YgNzp7Vt+4EAOe-oMGxKTQ?>c7>qR;btf4}$hzJI>Q&zkSrYp=cb zZSCthSa@As*s88zkw-tjF-j6otJF2ZQ{^s6b_n(;!ZIGoW_lRLGAY1QlJ*Vf&$F(o zEEPYaO61?NXr|)ss_q^mrja(2r0IO1s!PYY0}#qZFc4_s^HkkgE?=(-?l{dA0vjSa z0GHLir<%lAD)(~j(y>cFNxFHA>s>AeXiTKzGOl@yA@E9t~bD3 zbi88DU~lS=G(Gv@4#PY7AV*Wt$_Srj?k3A9jr~?U_jeo53i$%J>1+f)?lvRPPNpm; zO(`>D3VtzJro)(JY>fR3AEcS8db}@R>J{W;w;CkLc(Xxnj+6G$+@=}LI`fY1L)fEy zjC&rN%s+H52-y@*rd&*GZTT)H3s_@}DS4QtKy81LkM)RS>$%yZkuBvW&-H9DKkr%2 zw(&f#2v)~8dL3qGc(!(e=YgI|HL~sJ`CHmF_62X%E@2CJZpYWyG2X#DE`;~~uX1^U zXL}C|>Gxm8hw!(&E$mZ1(B}mf%0KZ*WzTR=-^`wMF=TO#z6^~mH^qelyUEgMuaMFT`W&Hrjg%9FvLUM^U!P;w^Q*oYYzvR;6yWzv4@nwr`TCkm zmL()JWn~N+WC@?vX|SK+-y_2Ko=&Fd!0uF%`*LuRg;{!$!;NSj-1%X)l0VaV6}!nD zo!<-kBLEJDF3dJr#>8Y<7V2}zw~Y31e#$ShqurfJ1-@C9G|lLg)vf$reqkLi$Rd*^ zTa%fxv4zLz!n_;Xi<;f}L|vx)!*P<7X=$=A=eu-c*%W?L*M%id28ZEsa;J_-p=gOv69(?=x5zDM_V%{Y{onOqL6#Ik)YNovEx1)P$C1 zdyhVpgR4H>a@=J36nQzy0@aF9%Po67PYXz8k8yKA47>KXKQf{wmdN zJ}Bs6HkDTf<%H(_>2R1V==#r0mQ!|>uOwabNH|OUO&=Z@9LLtynu7PT@Y@%WD@JaN zz42#(W1UrU{S07w+Y|?fATfmvZe(Fp&3)Y&d)Ke zbrg8m-4V=4xJZLBJTv718jLqF%bG09eN1a_=KD~0$9j?Als(cPD5v@qD)*(b1@b*n zL42iN%d_=rzw>Z=c|Ld$^Qc2-I16{+ef8nISnt)jynUp}GCIcoEPq|E?>URcigU3D z+nIs6Z|%kW5ZJNr!u(G-n36WAi}+3b^r@RMz}wa3IRr;rF14>qK54YC%j+H_IAwp8 z#;9DEasQrbFy9>&+c!rH;}oibsdSCLiY7!jZ$wt9)&-85a5lYkC^MC6cU_Pqhpw2b zqxCAw1>Q4ye&_P8fm>Py*1w;d!aOhIGDYjQHO&ax;tsuH|RFeHUN{x0h zk_iu54HjVWzJ^?mnM%}O@ru}Cs?4+e``A$)diX`U#b)=?^MO5*4R4%qI8Y$VpQBUC z8{L%oc^c;D@@5LSS{kpZLrxTZ;aGbjKR&axxRvkhanb$w8LFUe?5F&>o*A82PzagF zm`Z8EDAoOOw)UHz=}hH*nn(4H^xNSrTz53BKC;7a;M01S=*GzjCsOaKC!Ll}o@(Z| zdXMUK1fl%!6!jZ~0V(Q@r}?BlDdwDxn50uKd9Qhf`bGAo42ZInrOi2-;vupOi%3h( z@X7D0Xodf~mKQ`OOUSjC6^(ys|IN;i5Lt%lO_nTuZb_PtWf=F4>lOYzrdian$0r1) zT>FC|aD!%9h>(L%i+h%B<(K2SvM0E!;i6A6_G*}xNBLlxFg$Q|2LHv7-uE+X9TR>M z{hdVp^pUB=jdptBSE<8C#F$E!7-%~1q@km#=5zZ_Q%%-$TVH*zY|6T1p+1Rzj3x^+ zl_+gE;-p+OTNC-YfyO`&?i1gq<83Tt$qTV;TUxx=f6cSvQ)A6kE2JHVv2r$lscFto zSffQ^&d@|t=|uf>3YjcvKK#RYU1G^luhpycIhl#^hWvh+mV%@#j2}~G>1dxU%Ww>e z&+W&4a5yL|M$85KQT}VZKYM^{62g1@h0Sf2rBYu=y@q`AObJc)n^@gUtLuv)OM4J2 zr~K58N(f^Cdp@RmXmtR2xTBg84&C3}oY*~Jh7#9s!Wp-U;%xj-Vl?}eUr8Lh;D|G- zRQuj>7^2OsLzi$wk}z7vn=GDLrNdXC2TLf@!W=#jr(jA%pfenCOM@cL4#dh^IwKD= z&k|Tfc~&5SQXbjjWxlmvOt+Xeb?T^(|3dGTj`6Xl{Q<^uigp%{@gMq)WXpMc{}HO5 zN4Qzz&o}lTGvdWYGD>UsvCrDp@IjbxXbrEjAyV!S^aaKhwt#joMNM6KH%@0#@#q2l zCXa(H`?_FiWgBWXw9RzRr){R+K|_=2u)E3IOs_tt>=j<3$|%|DMyvQc1NyT=+&-YY z$5+jYLR13}O6neQPS#^4%MoSAgE=u@+4e*rhxZzIZqgjpxCZ`FQmiVvfwv|-uBtxH z7bJI6l^^HplZUC6AFus1c_LGdj^nW@>Ff`_IAxoES{==AmJ1GD95|}9$)OA7k%M&J zfA5#1g8{CR4O5##XXhD%VpSdb@Vr5F4=n7>q_jGDqAm^l<^a5DjjbRq&666UE|B)} z+P+XJQ4hnfeV*JwS}P87rjoEg5>24PRH@DjJmnc-pCRk$=KRHrQhTem9_4#e=dce+N?P^yQmNIS2M%eEBwRE43<-?9yyUk z{|>uF--eqWJ)4v1;@61ctnS35Yrf=AU`&=XaJp06JgVGV?ZKpD%3^F$n}+b{tjHcw zLr}zt!>PDx_c&$B*Oz8v(48y^(@^99CGt97n&p>h#j0m2@nfcj`o%I>AiI+VT*z+a}vF6PA?$@=-O*as=6Gxm(dwmDmS&ZZlWKUu@_&eD_s%bU6 zDSIvgea8({9eBHT(YWIbb4}s|eQ;A(MrQ~r^3?5QrInWCUdiePzHGuWt=*q`13rb; zIamAZgpMlq(+iU)F$bSKIh=jRADi4w_n|8~#?@40^D7CoN23$aC9m_hCPxf@N{`Sn zlOyVnWZ z%HY9gOc};b@*PtKde?2mvZj5~g-MoM4&9IZ+LW&S$08)R#b!j_ZHpUp1)zJ9WJRMi zjuMw^ZuaJz*f3nQoObAT@L@RzQJ24S;@NcGcj^$2JLu#5V01s{Pfktix}7P7(qo5I z;O)@4zf3t>AVrr_n>F*VrW!QgY>_ZLGa1)Si|Eo_jzzC5h7?`Wh0Z@G?M-*6B;)yn zX+t#|x=^dC3;DKbM&A(#*j0$d;sysYbm2cwdoJ|tFox6IDfJmp@vHmB(&H5^uRP0`p=!HYYDsRe#zmG4|5ti%%T6(7kAdqdGI4OOXsn3 zy0XaHtU0e~aQ6M}QG=?-i(J33tNYDONL#84I8{4#VMiC$HydkbF8NB;?U(iN%KR=E z@BaX2Up+*wS4VlJ%(Q&s(4Ah-XD%BEci6J*6IQ_IFOQ4P_=B1p*E{4r8q@0Qv`oUn zSCBh&Zx_-`AJ)hZEg!+K2hQ(lo_LGm*XU)vA{!=T^<}bQQ4ge;67}wz6cSeqCF(th zY*0S~p*v>P2K6d%@HR?Na+wmO>*s@CEBHKz?x2}^={ocdkfJ^MTlfKXqgx<18A`Rg z*HO{dB2<)m99mL=hoboRW$L=Qh&V`j$usyE{!M;wc8hBZ9%dJKLBUM6f`3*JYZwDR zOrGjD(&E*cY4P&*-gL~NyZtmZnD?4W74TxdyK&7;?=@Bg;Oe~3V*}Y0zTmNXcAEEj zJVfQ9;-el9VrBfH$A^Sf!Ix;Kl9gVXal>TsIwJ3E$go3~$d5e!d#9F_@W>0-Hsi`7 z>)Lko@^k$7if3G0CB{cR(G~O8;wJ_(JFkA?8C95r_kFS(tKgHKJcUak{mNeK4j;Et z=fD05xkEi&^7W?ll$+*5*E9}Y5MQ-2)jvf zS62D6^4fP-B{SS%{qmH*YQ$gM?db57R450mENRe5?@^#pYICOA*a}1lq51M1V z4_<_p%L%kfBW9DW{8w`~mG@2VUl_$^@j-=8yFCL1hpveqDeTE=_)mp#Y(5WLJ+4!a ztCIA`us|<3LBX7?(x{HV^1{{M4Rrqo_EOH|`&$aJ`;gYEbFM%^V=swer4_ND)o8(#j_(=eQo4(zKp$Dn^4SD zaLsqkCtLrSOfXd9DS z!sb3J<-)RK7VTmF+=eu^hM(Bb#p6Llrn%IYs3-DYH)I95k*=d5<=Cn<*SsxZx9nK8 z+_Fmh{lO=f^>axY`LEc&xALua`npjziZaMNtW}+c7N@xB0msw;M?HsLqlcf*H}(Ebgz)$9rCkMU02GpRQnfy^TiO& zX);@y+RQ(BF+@LsOyq|nawO@079tz)rW=D3X{FgJhc5m*?zK5BV;6=I^ImfY>J91_ zC;%?KIO;jDYcG1Q#gUY%Rr4*ZJZhtDek)CvIIUrldR2+E@E0~u@l7F>n;(+O1*Fh_ z%WrS)AF^+zT*Mav_7DCgd-ywwXa^r<4QJ2tN3C73RzGjG`gc1HU1ghvMW9NJR|0DP z<9tAQRHt7)k|b6BOjGGPeKRt3=&*?{&+yv#09nVD!=Zbce^?&N^7+;B3|7kHUJCNw zM?>}3IZ)#_4Y`)6KjOJBckTJ@R7p~H`0|oS zyG@I>6eYz9fGAT@l$nZ63nurS?%&x^l={$D5EQ8G-^w>iVdwehFQ;i=`y5JeGn>g0 zR>JjL7leeLf&|-(<$F>3q9|_!VWvAeei5(Q8mayLGgNJ$68VqX&$nJ<{U4#MVEG3+ zzm}#>KYzFROqTP<)nhIo-l5B%OqRnQLVK7>QvbpKc;)$yJ#k}{<~W&POD_ov`IK*X zHF3&PB+p2=l4-e=R+_I@rKL0##5;8FPol&ZGE?gFy&BY+&>1DbiBv3*?K0ac|MIiM0^J<^&>4 zmgCo!r<}@nN5zA_7nOO8ycDxU z?Kmn1-ugIn6=2g*?SzY1tFXIw@`a=V?Ifq*Vcx&8m*jw4~53h<>g&g1$s#dbY{B+ec zc9HjZBZNI(JN%6%#t!n%yWfdlHL*3`lUFVl~hle$`g%4(;9nKZ~ zb*I3O-nB$DsQ2)&Jp)-a&)L&cm3e@#-IMO`38j={-fJ+6q7iV>L$meQ{F^JEv54B%c7qWytXw}S=ru>ffidS*>hqWXs1R_((D^xbrg57+U)?AhMTDls&sUEbS zZ+ttbe}4!q!!#x8zB1!gqV7e^d2y*UEZyNKx~+aH$Ta6;@BQhceCDNr&qMBasK<)_{JX%*9@G`AMf)QkwKuBInqf4(d9N*j zc2R075}{Fw5x^N`s64a^o+^rpB4ZBSSpLf1cug-% zgZdq=slB0+hVs8_OYwej-M)J5jboCuJX+pq=vw)M?^=3>8nJ^;*C$bRJ3DmS2Fpg= zaasFx1)2eSF}#U7hDkK#81MYvO7bNP(_ep>!Wz-LD7Di8-u>|6*bV!g)AZVlChznM^1(QZrkX_qsPW{p@secq zN`Cn8@Zhq3aI!}GPn#WduKdj2%SyuuC;i83yL=eLA`ihDih5Xq4;8Qhf7OfZHLmFi8!n~_*f`L1^DRI(0aX5le+;{R=)?VVVM+~fpPdhSLGhGo);uS|W zXt(1KZ8-x+GFa3v@j*xRERWAR`j{%?UH-+$S9;H;zfnsq1& z`tcMZ7__wNg{5oYOkGeVcz~0G)e+4-!nAn7VSj-uaCPX z%#xR(2AXF(^`yx+UsIAAT8+x~cj$6rX(pr&l z0)C8F0GLv7{=?1|n|`kh%V+5&y+^)*a)dZ^&p?W_DF`a%_&mKt*ZU0~dz$0SbLjNz zteij8tYS+~s_xr)_X|TkcguTmI_pOA{0otIr@#3^K~Qo9##qtw zG{!8yXIZ|>JaR{!Roc5pMXmk|7Zvu2F&DeCZ~3T;8Q9})yqJO)X`fu|0!O`mv63z1 z8!ydJX@mH$my+38-t(&z+68&pFf6Ml)wBNBmefOo$$4b%4?pU#zaO0 zmiwi(vs>^r&Lm!U`8_sgBZ_Ki*{A#(d1r zXVLT}NgnvHh@LxR6ud6*=S(H68mXYaz<7b#0_O@`A@Bu(y9Cw=Y!djTf@bMAA@CTb zWDqPcTHqjoBLz+uIA7ojfyDwh3#<@WBk%)(jRL=x(JV50KJSYVF8WdffOST1m{z{3I?1)dZ54}rf4 zREe$(6c{6LFff%e&K81PfyDwh3*05JPTk-R z(z*Ne%6lkfZ0xI1gb<*6R>?t zIJ@BfD%V3V0{Zk&rJQ+` z0ZEz(E)C%c(3*g_3}}p%M&n-K|6J@cYIvNrx)C6IeGNkY@*#u=w&jcw?dI4i=X+uvp>mJwTq$r)(qg^{x&Ao(CZ$bXmf=&*XZYTiK)L2nVpz)*E|^+gm46q z9*Ut(CCs}|Z^eJmlPjI9R3Z>amB>l1z5V-SReX*p)%2nF4kxG6cn!Q;4ytD8K>p0l z=uY>Gvj*~mH~VxdY^P1R77ygNZ}#zR5t*zJlSdv;{v%wg>8&)#K9cf9e|(p`W}#Au zLJ^a`KnXi1o!PVIMm)4)&O>?m3zjT~`Ig5N3x%~Mx29;#<-tm@OkknFJb}3avjrLj zCJBrY7${IDP@_}q+Wi!47FZ*&OhL2c<4hpXRiGsBPLN{YmcSbVTLoSh*dp+fzzYJ; z32YYFB(PCNtX%a%U=#R(z&e5Z1l9=LBd|(frN9b-TLqR2+$69};5vcDgtT(55rRU2 zs|2nPm@hC-;6j1(1!svPM8p+uTmiZXKs%0oFhr3uJZH13DJsUWg<~J(%QUUFy#Q zHX2;5c{=9mn+=ik$pbH^46#-qr7Ee1^`MS*QQIIdcP0y?x#L2+R8mhYW}sqFi*>s& zZt#ZzTMz3c2?ukmLZxjw#)?G)Q=ceeTjpiUZVWDx2{ z?W2w8b=P2vbzA@oS7#%sfmAwMZR41id)X`|6+$hCWFbn$%iATZ1Fuv(h*W7`Ko4D= z5*k5;*6o34MFU!KJ{r2^u6565Br)`65@tc_3@TKZ31R1x(~c)uv(-0%1*i6;v=)I{R{ntzD7};L-0+Yi&sBoYM9sg)M9idt0-En2&F07B+Tx0UM-clIv_t z`qrgrxK7itw==d`!rk6A>y{waWkKsTMffiu+4i}vgd+jjzLNAjs2*t})hbDy*x?=- z^X?#d&(%oY6Wt{5c+b2bPZ!B^s9SaiTuo3hj8qH{mE;lMAv@F>8O#F4ImJpQl0*v) zWt%0onA8zYSrTMMgq=?=iiX4OJ+cUES_rvCFpEi!5Jm3|B%3KfvNuM^7X!)mDM2oh2#APm;DK zTHg#|p^1`Y!znc{0AGK=W+W9Zzr(#UYUO)m*4rU0*p13&b79t=p{ySZwayAdp)3wDCqh|>T$5~i7bG5MO>Efd8l6Hyt2T^{ZfP@!MEU0 zZ@@My27eZ!RLlDw8S9{uI_y>Dk!}t2G+nSgiMKu-#{5;l&0%b??Y z4@r~gdyiaBzr(FrZF9+UrYE-v!db>6(OdG^+aV7&r%5?Zqqu~59F$K+bsZ#KJsEbF z)DtyQUb{Hv<|4Tbg;BV7oA00#lGN=+8-=aoB3S2f`(Vz9ESyg(nl%Z5>}X}4SqP-3 zP=qO-o_~pM@cCH@w`FBb3uggp>h@eY2Xi8P&8R5JzY$15Ig|;D^&$t??n;gnPfu?k z0~$q`TGjxasi5}$+g>Jjbi69h*GDC}vCcHU2S~-JIk{i9Fq8+Z5Sjf6q{kJ<9?Fbf z7}7I4#`;z$3x==ujlj4IwT_O!8lHp=fKiTDe#&5JKG;H}q8yHk)EjXxM`4PmXBUvH zKk|zll%1poI#Q2&efAz1q6-oKNKY_07ohs1`I4wWgeIfAXC?S-z%5bIjz**9`jI39r>rWh}@B7ik_p4>Mqn`<@+Lh)eWRNQ@P8)Yw=F0 zMbv}%I8YOX13O58_{$8Rx&D~-bh2Js9Qk3r&pqjbf?Y9_`kE!zW>q#hWF9hT?=5vG z)cxKRN!PAJa^JzvUoZeCc{{F`}M5)k|K>1c~Js8=jQHdY}^n3-ROnw(( zYJmtNjDxNq(?|(>&wSiDVJf~y?&d1F{UW65Yq+5j2})eY8yXf`2(qEs-ydy*vm3R;gSdX|CjI9ZYoi?FY^tK^-i z?8BVqauNRs=)6_iodxuBiX*0AxPpFhCJl0tf@bUT{0unsi;`HT;ky}-n{{e;7P81G zuAYwWcul=SZhohlemJfShWX;0r;kt-2U=t24)s=iyb~!;-W`SPPk9pzl`DBejdl%%(yOPGpq3hy9Cyfg3n&zk#?9KsOOj$U?oO z(7B+Ap4QqJ*0-&!Z!VUkvmov73R3uiB?w#9u`E2*X>WZV3b9P-a#x_cypKlTp@nE4 z?bORg+)<%-)H*AcS=#zA&5XA^Ao4sycWn1u+ZFjC$QFqB1=h$OtUI$?GkdV`WT)}g zVr;2OBx&0Xn84%f+d=Y8^pbqXYi*u+9=T4vl;<&mLCx0fJ+SR{iXUDlNw0(USugis zQ(!!~C+ptk$k(?>(k&1bZ}-cvmWTfW}*^7aclr!TpSzQ zrZn?=T-JclgmEk!v1j7s3jdQrx2$~)I0e%MK?k1<+yG=);|**KYqG93un?ER3}&6F zV>-_Y#5KzCIE3ox`0r}HU|?CEfkTzb_zV}ChT-is6X?854^4uEMi9+w_dkgX6v+zM z@%Cdna~bR;A;A|I7Dt!T9|Q}-0VI$itNt--k*{s>KA6jNK zLV|Q>h5l{eQDRa`|M;9-7d@&`c=%Cmu7MLs0B+wvGBhaoUee2*6ESSnTZ3G)k zxMc+EA0!tDKe^A{TgKe|mq)N6YUu6nI+`t3dE{vog5aC=AMn}p|j0pRR@GW0Ozmo_zi!kn?3Ze_P;WLopoV_`kth^=re}&HSb?T~=BTsw+uu$N9fpZl!OSwWYU0{yDY=I_$Mu7%_5d!@LY6Q9p zlmy=Ct`y{!z#9TvWi;cUE(CUgR|K{Qyd>~~z-ECqf%^pR5$MdIQiQh(+$6AAU?HKk z-&EGwoFhaN1)2mJ1V#wNA3oi)rEqpS=GuFn3i1|6jBEZ!*yF!dG>fOkdSV*e?`|wm z>=y1Xd4LU2ZJxn2=2o1RX@aN8-k64W3&8E5X8dt!4N!|YA_DjLKEMo668QG_`*hEL z6;uN`;T=!~cnNcf5%b3_@Pw~}F5qIm2KXI_?Bkx>EH1inpWuf}HPCzmlW{co9Ps$& zLplSZg0=vE)8TD9*w~@<8)2F7E}iv!bZ?0@PxmDD!~)FVlvxgFr#K* zhJvU>*(4Nv1@J0}GHwMP#bkF0iJO7_Fwyz-Ma_V3gN)#7fS+T+D+AyD`kSu7M}hos zM@{$!$Q8VN?QO;kh(Dl|@4s8Y8^IICVJ0+yHvq?h7J|Y~Ugg`A{Cvc`;7d1^3B0&>G(NS@c6JrItZenOZRl$aLl{|p6=k@0u92P zK}XNfbTj$@fkEkLMo=!iw+Wb)q40!@LFCnIfVChpx)1o1;9G${!xf!C;M*XYlxl#! zBk+H~;lFhV1*VzMDv+lGPk`)3J3)8AR{}F|V`%nDL9>H-2^0f4wV=NS_ydRvK{qbyaiZlW;_VcOS{I*xNh3g{ zW158VKWH+JB1lYV2HC)`1F{^H8a%#Rlzs+L0(_+?1xyu94SXC#@)f|>1YZUG8$>OH zmvvHi5b-g2sAPC7chU1ccij zLP?=h0sI<7@)qE%c?yp&I;CBLuL4#-jIj^>8ejv63e*f#%~$kYf$KrEj+o2AdxbqPjvT!2cPasO$3dE;eQfMmt0N4P^0e>C%;Ucs! zcpK2M1fv5yy;F!@hW@{VKnyM`FMzxTGZ|l6j+qnuR$xm3h9h{wfh*C};OUmiD$ry_vT@Jn%a4cvaczkdu<%7bHDyT77j z76aS_B7MSuSCuXc1kxXAQ1?{;&Dj<3WCRGG0#P9ffd>Tt0r0HguLHxk(-h652;fu@ z%>mPao;wuY3%GeFGKbDSU`VB6GZc6TR1dig`28-lk`eR29Zb*HmHtQs7J^!!MEHu3 zR{&2}DN|-M@YOfbP0*(FM#K30(*MO*SgdYgr23-HP(kf-Z>bK2G z#&rlhT7zam;zD30CSg)wX3JIbXx&>Uc4^9l7JfP}b#i%Rrhxg!MklTTk z`|&@Af+tL@Lt5~JyAPsU!S6AHsr&#ANJ_vakUSKDoen8ZX9Kdsn3RU%ju{yEAsi4q zVTlce1HTFQ1&A`Z1nhQ1;q^ccBIn%%j6JHfN-yA?W9a{UB+dg9T94HUJYfZh5)cmm z2vaiTD}dFYR`4~z)CM@+Fs$Xk$3WE7D}co(uvdVba4U%H5RUp7l>?sz3_q!~Xv9g3 z|2Ghzh&{lrO=u=0&ITSi1tsuJKwC4K6g*+(8D$#I0!E%ycs(#5M41u(0;+<(&!^am zokM!?cYx`i(VUM74fqAfM)QB&=g9aAj73D~fz_Z^@GHK=w(J`Tsh|TK(*oxLpAEEt z=v1^0*Z`s~y8;|=S@Dl_;PLNpT7rHf@D_*)N4W2b(prQ~=I>DhL^J_i{-Gpx1!{jl zQ$p?ooC7KcKNooQDryG)I0f;sogsIn*7R?5hfnv~Q6~LcCRp48J0oNf% z1fn4A&&^hq*nbLVsBhG9sz+0ddSdQtVpC3W_IOWinCjmcW$YKjm--wI= z-J-oca6X9i>C=v4!PCbVPyT|5i?;2+@?X&Zq*Q@G9f)}Pir}K)=_3J;R@4I9XCGh; zh;$4AfcD5Ymgu6=np8c~V5I2GXlY zQX-^Rjl>fk6+FFeq*sb0C#1KA#1l$41P`P)bepic67B<0Aqbm6q)%wRDguO_|5PFf z^@1l%6+FG{qE}Xwn2=si5l^^P@Pzw7a%RA0!4v)%o}@hy)iKqE>ZI!I>YQrH2V)B9t()@Ly5yEU_C2k8 zZtan(HPt@Vfz?h;W3@@v&aIwbomai0y0E&qx~#gqx}v(On*J~5a%$$Htzj5J>Br!8aqT>cmSGkO~U diff --git a/lib/native/windows/jdirectshow.dll b/lib/native/windows/jdirectshow.dll index d21c6b2f4efbc88abce67722d71a0de0547affd5..159eb5fd5de5361671437ed8ac39295f8548523a 100644 GIT binary patch delta 18461 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 delta 18717 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 diff --git a/src/native/windows/directshow/ds_capture_device.cpp b/src/native/windows/directshow/ds_capture_device.cpp index 9546c3586..4a27ad453 100644 --- a/src/native/windows/directshow/ds_capture_device.cpp +++ b/src/native/windows/directshow/ds_capture_device.cpp @@ -394,10 +394,7 @@ void DSCaptureDevice::initSupportedFormats() format.pixelFormat = mediaType->subtype.Data1; format.mediaType = mediaType->subtype; - if(format.pixelFormat != 0x30323449) - { - m_formats.push_back(format); - } + m_formats.push_back(format); } } } diff --git a/src/native/windows/directshow/net_java_sip_communicator_impl_neomedia_directshow_DSCaptureDevice.cpp b/src/native/windows/directshow/net_java_sip_communicator_impl_neomedia_directshow_DSCaptureDevice.cpp index b86e6e732..dfa2ae871 100644 --- a/src/native/windows/directshow/net_java_sip_communicator_impl_neomedia_directshow_DSCaptureDevice.cpp +++ b/src/native/windows/directshow/net_java_sip_communicator_impl_neomedia_directshow_DSCaptureDevice.cpp @@ -238,6 +238,7 @@ JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_neomedia_directshow_D fmt.pixelFormat = (unsigned long)f; dev->setFormat(fmt); + dev->start(); } } diff --git a/src/native/windows/directshow/net_java_sip_communicator_impl_neomedia_directshow_DSFormat.cpp b/src/native/windows/directshow/net_java_sip_communicator_impl_neomedia_directshow_DSFormat.cpp index 989256d80..44a1f5358 100644 --- a/src/native/windows/directshow/net_java_sip_communicator_impl_neomedia_directshow_DSFormat.cpp +++ b/src/native/windows/directshow/net_java_sip_communicator_impl_neomedia_directshow_DSFormat.cpp @@ -3,7 +3,7 @@ #include #include -#include +#include JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_impl_neomedia_directshow_DSFormat_getRGB24PixelFormat (JNIEnv *, jclass) @@ -119,3 +119,9 @@ JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_impl_neomedia_directshow_ return MEDIASUBTYPE_YVYU.Data1; } +JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_impl_neomedia_directshow_DSFormat_getI420PixelFormat + (JNIEnv *, jclass) +{ + return 0x30323449; //MEDIASUBTYPE_I420.Data1; +} + diff --git a/src/native/windows/directshow/net_java_sip_communicator_impl_neomedia_directshow_DSFormat.h b/src/native/windows/directshow/net_java_sip_communicator_impl_neomedia_directshow_DSFormat.h index 1e23fa1ef..b5aa8d2f1 100644 --- a/src/native/windows/directshow/net_java_sip_communicator_impl_neomedia_directshow_DSFormat.h +++ b/src/native/windows/directshow/net_java_sip_communicator_impl_neomedia_directshow_DSFormat.h @@ -159,6 +159,14 @@ JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_impl_neomedia_directshow_ JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_impl_neomedia_directshow_DSFormat_getYVYUPixelFormat (JNIEnv *, jclass); +/* + * Class: net_java_sip_communicator_impl_neomedia_directshow_DSFormat + * Method: getI420PixelFormat + * Signature: ()J + */ +JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_impl_neomedia_directshow_DSFormat_getI420PixelFormat + (JNIEnv *, jclass); + #ifdef __cplusplus } #endif diff --git a/src/net/java/sip/communicator/impl/neomedia/directshow/DSFormat.java b/src/net/java/sip/communicator/impl/neomedia/directshow/DSFormat.java index 285a6bae4..05c1c7184 100644 --- a/src/net/java/sip/communicator/impl/neomedia/directshow/DSFormat.java +++ b/src/net/java/sip/communicator/impl/neomedia/directshow/DSFormat.java @@ -26,6 +26,7 @@ public class DSFormat NV12 = getNV12PixelFormat(); Y411 = getY411PixelFormat(); Y41P = getY41PPixelFormat(); + I420 = getI420PixelFormat(); } /* supported formats */ @@ -37,6 +38,7 @@ public class DSFormat public static final long Y411; public static final long Y41P; public static final long NV12; + public static final long I420; /** * Video width. @@ -119,5 +121,6 @@ public long getPixelFormat() public static native long getY41PPixelFormat(); public static native long getYVU9PixelFormat(); public static native long getYVYUPixelFormat(); + public static native long getI420PixelFormat(); } diff --git a/src/net/java/sip/communicator/impl/neomedia/jmfext/media/protocol/directshow/DataSource.java b/src/net/java/sip/communicator/impl/neomedia/jmfext/media/protocol/directshow/DataSource.java index f323a1afc..53c927a30 100644 --- a/src/net/java/sip/communicator/impl/neomedia/jmfext/media/protocol/directshow/DataSource.java +++ b/src/net/java/sip/communicator/impl/neomedia/jmfext/media/protocol/directshow/DataSource.java @@ -67,6 +67,8 @@ public class DataSource extends AbstractPushBufferCaptureDevice FFmpeg.PIX_FMT_UYYVYY411, DSFormat.NV12, FFmpeg.PIX_FMT_NV12, + DSFormat.I420, + FFmpeg.PIX_FMT_YUV420P, }; /** * The default width of DataSource. @@ -180,7 +182,7 @@ protected AbstractPushBufferStream createStream( for(int i = 0 ; i < fmts.length ; i++) { System.out.println(fmts[i].getWidth() + " " + fmts[i].getHeight() - + fmts[i].getColorSpace()); + + " " + fmts[i].getPixelFormat()); } */