From a95e8781cf94663b3d6a41745c102586e066bb85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Fri, 7 Oct 2022 16:54:29 +0200 Subject: [PATCH] Worker: add TIFF decoding support --- CHANGELOG.md | 1 + .../command_ffmpeg_test_files/frame-1.tiff | Bin 0 -> 20468 bytes internal/worker/output_uploader.go | 1 + internal/worker/output_uploader_test.go | 28 ++++++++++++++++++ 4 files changed, 30 insertions(+) create mode 100644 internal/worker/command_ffmpeg_test_files/frame-1.tiff diff --git a/CHANGELOG.md b/CHANGELOG.md index 0dbc24f5..b7a127c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ bugs in actually-released versions. This just means that the Manager has to tell the Worker which Blender to use, which is perfectly fine. - Fix error in sleep scheduler when shutting down the Manager. +- Workers can now decode TIFF files to generate previews. ## 3.0 - released 2022-09-12 diff --git a/internal/worker/command_ffmpeg_test_files/frame-1.tiff b/internal/worker/command_ffmpeg_test_files/frame-1.tiff new file mode 100644 index 0000000000000000000000000000000000000000..6e9c8f432a272766b72efbf0abbe6f28f4bb3c2c GIT binary patch literal 20468 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

rWgf!U_JyEkdlql`OM%Wg(f58ybR4_8UvF< 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%0AvbjVe zB?CTC_br+kDx@Yd%q59a{`tNO1!!(|_Sn(GhxhN;GrF*u4%vR9V73Kji}~U z7HWmV#RLER#y{XeJJ-Mclh=X%^T5Aet4){A?kasJ=$cO_LH3Zs4F?cML4*UOAx5XD z(F{j69TCl_fP|T3cEPd02ZA#a-rCT!^4aczRMG~z&~wu%kvz|5p%-V*o&^I*$Yq1f z*^{n3Q5XdZg(A@#c3gVS@fI5 zPcDn+U+fsOiENFf<0*Dw0zlTcT&de;>TSdCxxW7nj7AyUu|9vOu0HK4B~wYurt;a4z!vd0#9Bw0bl9r>G!~#X@n7nZYn=<2 zI$<2l)Qn7LKVBn8)Y7CIkWvKnE*AP_bFQc}Uzb^pAy+1e9gsp%U*hoL!(#nx;p~RN zJ{ZQ1Tl1<;amF34-*&Kg;72FF-P6@SKR?S_WQ>(_1^OkSz8K(({$%|bW_9ARg+c)) zwkp2Y@XN(o#>jkZ<7Y;?CUh;VI18m};Xq;EKkfZ8#MTG4ee#_X4`nl1aCWC!o3AbW z>(OtVNbc$BZqH>P?}WrtT&S_i*f5$-X;UsdlI}OELktJdL9MGjr1<}H&88nnL=gKn zq{JI^*5A_`wV6b2IoA<{A_GyX^#orA_+-3D=-9sJ7Z-~A_PnruxGMz{Ml9s4`e!;P zQg;^IsmF@n)-CC-@7`R7;2b5_FqV_E-=K{_(GVzCJQYIb&3lL4bxR3gFb2-}SI zhp+mb{(OI|hvmA!|6pPNS6}}-bm&)a{KDO9AApjEIS!M)SY3GZ$afz*`<=}b8@fC5 z8KH^V;6k*-Ov5;bKkZ@aKZdr*7cDqUi)*go9%{kgk2JG=Alue$Te#VbHI2g<$s`lc zt@y4BQwoe;!tOQ=0!=2@HIi__zQjtXAnfSKmW!pT;})jQ%j8bP&QE>-6b&+q@r ztAB%@eg5`8xPHye$#mKjf#Yhiwy^8OkG_5Qs~C~3n>KW`Wnl{^MP(VOgEq_fD|e7- zFfyezMSyNJgYt&ns*W0sHNK7EFlw>g)(7DwmKuqGL%ke&F0^Dl2HS~QMnwkdMA@aN znR&%5I7UpR!P{66=?7Zft(403XtHNh?&eG)R|*!MtbX4!{d%pU79?H}wDz{*~g1(xJb5>90Yvzkm0it?!r+C2IA^ zb?T*hW!H&EzI*f=UJ!J&rLUS86E)rC5C~tiskd&Uz|<7!ENu|Ka>mNBP=dJOD{aAF zU#PkU18jPn7AvO!kuJ--dBV#kv*;K!lPq63c;a)3xN&3sk}rZR0qo-Pq`p?WX-#G* zXR6j^aSx|UNpW3?R6jD^toI*ubEM;US6m!OjpnR z^>hE-Hj{sN-+%7O^nt^mzm5z1%TJ#8!6V1M4XQJZIGf8(Y#ibU*-T(n`AufXw zD^kN~FfsP=&7a96GnyGY^$I{PxU+xz!e4ZzyT5STzt7n@QKun_9dLnq>Ct1~d;Ihd z1DNziWaw5dYmbi&cXi~YQ%L$jML6c%L}+dR*Wf%xb0%tsl!+8Cc1_C~Z_;sLlWA==YwPc@l<>DE$cdv?!NNkFFi;>J&p@n{vNHgFCMY ztwkkhwWdZiWx`?~+_}F5+Oaf$Wu&ID;9AAs8%wY`85*pNsq z_)RBMxW^5gs#}2-w(Iz#6Kl3_>$@&x+L~Ce5jb9{SSx)0&^Pv!USh>)>0JcWRx+s% z5B7Jq3sI0v&=qP}jem{p0HiE#Nl?-Bh6pCf(=CKRF9j6h`A} zYsv8=PgY`rgmOF(lM@!wo3nT3t#(nw-b`z8SahbIadx?hVkEem_NL&!2z;KQ|Cwc! zm>9q+Z2-Sf`N|M`NsJ^XKDzlcg8pO83*2f@bG^!u`6FXJ6FsRuz>9ACA(&`&t~&G0 z{a-om90mD{I*=lxBa)dL5peJC>uSqqGwGy#E+!zt#H4JT#@wwP)&PtM+ptaD@rV;I z2f`Qq5*fOX%U^x%OAAH;FR>D$t_%&vMhamZ^!0X&Ss>j*2^pDem;(?MLNMz_vo1PI z3^$x}%0_M=-w3y~tg}}B(YP5Bh?^03QDPMKmMnfKNz4-kW-DdauJ&weyCY@gg@Fk0 zg`3@*b*EqUpL0{iSmO%!%cy5{xs0f{x0k^$s>iH3z=Bs?>qo-rG6z4g<+DAB-bh0) zd@uB>UP+J5woHd*B&0Je@cc@}tsXBO`k$};L!1;7H(|qwNHV4`r{z%&#$(wpA7bNt89FBG6}gi>S_ris7IQk9yiFRU>%wCdJs zrC`w5x;}Sx!pc}W7-%BWg+^5N=Jr-!na|IN=uRXT)?6mMtq1Xvl(0qDaJy&jYe44@ z@n=O8)_f2_F|*^t8$UIiS&wHq;6ENr#f6S+PtrPt_Wb}Hg zKduFc#wauwd`ZtISiURP0#sp6RlQWLVbOAsD5q;)ct%jRmeI%Yw=URAZzMZHQ9 zOVTg|xooDHqpMpgVXnb}WZt-LHXYOw{pL0rrhd*GZt0hF zdu^bn2M!!yEjU&Dt%1K5r;_Qbb2r^N@K#F%J0QOTu_zRrM{b1xUCs%sHMe|x;m{K& ze>~&P*_Ht*o6d+`NVpdsgQsz`2z;{~uGZDr-r3P+Nza*#2{Z&TgVLtaP>C9zwe!|) zNc@{=LVAmd+ob$ZnpZL_(sAc2m141)3cH5d$Jb;A@^+hTrhu^*Ikm7{(u;1oswG1( zSXR(l9iLyh=E;Kx9(aJqb8~YT2=2qk0>UixAzedS%1(BeeGjhvP})xFqSB*g2_g|x z62^kKYC)}BnR;>R=SRJxrCJH-;R*S?SlmtI=|Wc}5Ls&ukAN%$3mO{ihbU0mru0E; zRDjHeY1~|cYA6|OG`JA)S3D==svKckiA+M*FPE#uYSr;V>2{K>hD6en*>rwzXuz=1 znF!B~bXngf($5)jS3u{>_?%mhx&IE%fcbFipOYs~5;2D3S<=w9MFsxr^LKCSxHe&0 zF*OoVbtZ&NgFstwN~ad~KRf+QnDU)k%@jo{Iys40#|GcPpS+G@U6fBT%|PslRt30g zM+S4bjM2=4)tXdzPWE!8hCzlPoE5@7cpllu++9R2MhGj_ngga2!2Ccjq9Akydoyg| zsSw_aFrUwjjg8A`WJ*&`nrucOY~J(B2mOMGUu*6^i~a#~F7D(0YkG4NWI_L0oV1f7 zVXbQ4GH`EydeGKwO&YeMj6w(trg*x1@{QS-D~X!S;1kQ)l5#6as#V}Zu9Qu0R2mz=Hrm`&c!XeXq?(ActY#uCS%EgoYde;mlGP!^$UzQ) z0fn(3aywxOsURkf*`DuMJGxd>a+NAmwcnw4W3H4I@rxwX0r&_xYKKaf&F z@Fro!G|P1Ye`sQ!*l|Q86s6_HWQDoe_Rcn4q~ENS)XuyWx-A-#WF?rdkjO6!e@*Vm zc=+&P)}j?JkxT2?pKNkWMK!LV8J3Ey_iKYbb z=c`ruQ2baZEJzUv^T3r5u_CN4h~9gN7M(=zZS_vn=ruY~SBO=jM2WJ& z%3`si#0sJ;Q9}^D#J;;2{Y&U??fcRn*`W}f@kJ?B32%%rSObT2tA*&`MwOzvyh!Zvq^wgeUZ>wYUDLl|IS~x9jlR0NcX!7F~z|8uZIvjZS>n zv9ziMvCbW(vvEL5hU@4Gi_+?M491;YNOqH8)|{g=?j{fA$6MJb&mbD$#RZ0qpw)6HqOPP8Ba3sC3d#`nx+YlRVjhmp1wA}NzXe2VS2>1xh;!G0y z5GG(;v{5yZ&Fg%Go|sTw57CfiO1=0t{!(8Qfd5zpU(A(AJw_IDg*QLvR4vHNpKE<8 zVNweKte*C7!U-SruV77~6dJq*$Kq2##&To?(>GUz%iiduCmoJ8I!CsWU5@^EBqmN` zjmt?nou&NVYtG)Et%{>;q&KP2IK@Oo%^w{fjh6Y}2*($bHp)>HLJf%?(!mlJ&V^^? zKFODwy?(*ro}wIr59gf|!*-s*zLt*FI!l%`stH+jryB4Ptv%C?T>CikUFAoxP%axY z+XpIPT0Q($B8wf)p>p30KM`T)Fw(z~0JhK-@VP|mK&X_AAx8Lzl|T70;b5YYBz^T* zRJY_V>4;b3Z{8wxy;@q*$Q8LHMJVoeR4@+a3kev`tZC0QD^jO-W{!kNZv%1A z5IhGqemk%>B-7Jz=Qe@8ZJL$yuygV<`^yH!slByNr}bHMb;z_4uZ2aFZ{En6Kf+W6 z@k_PK_`{lfLg4!r%(tvw-#7+$)@G^(A&yh`^3^Dh$n!`h8%mD}znrdj@6!2B1&ah3 zQrmWhgnv8rmMVn4K|;c4BTO7eBYq9RCqg(y4%u&9R<)3NDT*ewFD?D<@bwBvx-r4M zUH&Y!lmkTpa6!h8HCSNy99Lfn<=2df79AcFkHqA6s>V+6yz2{EwnSsahUlyk`+lo3 zB+?UlNXp51joMH3FMJd8?(xl~`utjuM4nAssKH!R%Mk0gSxr+`=7iIca<*Q>R;{Ts zW=aC7q|D&+;TP@TiFP~Q65U1eIFPHw;TFCqT@w}by?;4Ip2J%vLniy#$`jsIHcX+% zPobOViHr^-Jq+DJDW^UL_F#AGPH8sslPaGhp6I5;%Sws)eM2kT-GqTZe3HeAsecaJ z>t#L0l7-iyyWofLdMD!$V%L}mbQJ&oViy0pb4g37ic}5v#XCgM#pxy2;$llvCIN@F zZU3(mP}uX2!=&MY>CAs1+I8T{6nL03VK|azeUz0l^Kuy(ylYxtm?xn!%ZKnVfo8%l z4*dn_HP0x`X5$nOhrX6!QltHfud4Z;82Uz6-p%V6ds>rB&B7q!da%RlcXt0qHSH)WXWt<%D(A$Lb(A(#!&@oi_lk)G&|Mu zy{s<@Y-6TA$SffXpuZdgr>*rZ+C27S?BJ1J^9{CDLpJ2DZN-wE|HNVwM>2a>G}b`} zEEM?Gx1-~M0V_Y+UNc)?L(Zyklm=g(j1X8c@}IWoQ@1-0#a({st$OpTA4Pv|c;oHf|z39&+IlxV{C5PMtxv ziTbpWR$KvxWOMrGMIICE1r_F2>^%B_lGWYPKi4L8l#A$-GiOHxtel zr$S6=jgq%y^m}smgr~1$wsDzv-(laDmsViAHoXJyLlPKoKWJw5_FIxY22&J^w++Up zJHa>K=Zn7jdNCC5URQ!cLZ{V74Lwub`9A0QOxLldfEjw|hY|V?GX-PB-NFaW&#_l7 zKMGF_QGr9tK>>orx(h9rtxu}xexWN+NIjX3pq)Y|pB8;)<)&gVhod$WrTKzIFC%_y=Orxtz8x23+QG zlxQFDiKX^H!$GiU(iMqVClR%9+qgbLx{?H|L#TY#>&_!>sp4y13n_*-PR=w=SIgwR z)*y`T@#dSM0@AJO`Pr;WNml7la<{{%-1YZgG_&r_8^GsnGVLb?EWBBf?XQosOxNe?(~B)=6140SbR3%$z#Je5C*O7_y|)={Cd-x@)p+>D;~b(Hqqu( znXs*q{YKvKQ7`&+ouQzLap9<1#OPs0na^tTxW&+WGVzau=}jPdKV@_ zQ8Ud1|7jBdJ2I%Bw#@tWk)omV$K$ND2f$MRvD!aPc42}AkCRecm+teLo}hZU&cs^= zy;tik!#Somjd8j(rwO&YGmk4XQ#rqG-pr-ZG)uVO=TVI*&|i6H7a?|QXFD}oG~%c3 zf#Z=Af)@q*%A28Q$Zabxt=Eh8~g>78V6rx=kVbp8{ z)rvyb_Kuu38&XkS0fLGkvCLn!Ow2&OK-f2=Zs0iC(hI15>j7ke%t+ju9Mp1dEX~jH{+m(YDrJchvY~X2Hjxn$hRG*v+F;NmD zBe?W^UZ1t{{2#_CV6Cl)dEH4-)u|`r2zJfgU%>29_5AwjAUY*;J?^u8xB#uyt-iLf z?fYxB3%G|lN60ht6*O<&3bd08GEoND~Y0MzG5NEFXaBI^;G@R$voV>b~5@*w?*s~{kE9n4=7jpO$RaDU}m`Z1+;(l}3 zWQ*^B(C}cSk8{h4*fDqZM2w~R)T{xMLE+*kn%0)nNJP2-fW+@|fb*p8z#!&SciHf)kEka4NHj36UT+@-CuIgd>IcgmGHfktCu&OLK z@N3@m4iM|kenCQgMgF62_7jFq@9M7ex*0K8*YYZ>P$>#iim9`12xu@C&WLRQq4u;Hn7~~MYCR(jQ*WYmAo(Ix z4Cs?PKl4SJBvLcit|))`szTUcZuv?#?Y)k0*fCuXL{EilO;p~q zZ&hfsb4#ex@w{6olb*eAm*q_x{(2@i%~0W(oe>9e9hxde`QC@Ak3 zW2gJe*SYBbay*_H{`xoKC+0B|lKdN6j$iBUU#`V7%YX9l|0jR6!hG#N@6pRVp8c#5ATz~CEgdW$wmW2N&O?uH<7+#WEOW)RBocZ?ju-3%{{sM3>=Xb1 literal 0 HcmV?d00001 diff --git a/internal/worker/output_uploader.go b/internal/worker/output_uploader.go index 7ae37e3c..c4c9d2ef 100644 --- a/internal/worker/output_uploader.go +++ b/internal/worker/output_uploader.go @@ -14,6 +14,7 @@ import ( "sync" "github.com/rs/zerolog/log" + _ "golang.org/x/image/tiff" "git.blender.org/flamenco/pkg/last_in_one_out_queue" ) diff --git a/internal/worker/output_uploader_test.go b/internal/worker/output_uploader_test.go index dacb61e0..191127c0 100644 --- a/internal/worker/output_uploader_test.go +++ b/internal/worker/output_uploader_test.go @@ -93,6 +93,34 @@ func TestProcess(t *testing.T) { } +func TestProcessTiff(t *testing.T) { + ou, mocks, finish := mockedOutputUploader(t) + defer finish() + + taskID := "094d98ba-d6e2-4765-a10b-70533604a952" + filename := "command_ffmpeg_test_files/frame-1.tiff" + + item := TaskOutput{ + TaskID: taskID, + Filename: filename, + } + + { + // Test happy response from Manager. + response := api.TaskOutputProducedResponse{ + HTTPResponse: &http.Response{ + Status: "202 Accepted", + StatusCode: http.StatusAccepted, + }, + } + mocks.client.EXPECT().TaskOutputProducedWithBodyWithResponse( + mocks.ctx, taskID, "image/jpeg", gomock.Any()). + Return(&response, nil) + + ou.process(mocks.ctx, item) + } +} + type outputUploaderTestMocks struct { client *mocks.MockFlamencoClient ctx context.Context