From 51fbc15f0c0eb4acc7f43a21f0cf0c4362ccb5cc Mon Sep 17 00:00:00 2001 From: "jianfeng.zheng" Date: Thu, 27 Mar 2025 19:26:15 +0800 Subject: [PATCH 1/2] framereader: fix read_frame_I010 As libva defined: ``` /** I010: three-plane 10-bit YUV 4:2:0. * * Each sample is a two-byte little-endian value with the top six bits ignored. * The three planes contain Y, V and U respectively. */ ``` Signed-off-by: jianfeng.zheng --- lib/framereader.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/framereader.py b/lib/framereader.py index 5633ef3e..bd671bb6 100644 --- a/lib/framereader.py +++ b/lib/framereader.py @@ -96,9 +96,9 @@ def read_frame_I010(fd, width, height): size = width * height size2 = width2 * height2 - y = numpy.fromfile(fd, dtype=numpy.uint16, count=size).reshape((height, width)) >> 6 - u = numpy.fromfile(fd, dtype=numpy.uint16, count=size2).reshape((height2, width2)) >> 6 - v = numpy.fromfile(fd, dtype=numpy.uint16, count=size2).reshape((height2, width2)) >> 6 + y = numpy.fromfile(fd, dtype=numpy.uint16, count=size).reshape((height, width)) & 0x03ff + v = numpy.fromfile(fd, dtype=numpy.uint16, count=size2).reshape((height2, width2)) & 0x03ff + u = numpy.fromfile(fd, dtype=numpy.uint16, count=size2).reshape((height2, width2)) & 0x03ff return y, u, v From 6ea589b0df751f0ed31a8b37b3d82fba8730bfde Mon Sep 17 00:00:00 2001 From: "jianfeng.zheng" Date: Thu, 17 Apr 2025 18:45:35 +0800 Subject: [PATCH 2/2] test/self/formats.py : add I010 Signed-off-by: jianfeng.zheng --- test/self/assets/175x143.I010 | Bin 0 -> 75394 bytes test/self/assets/175x144.I010 | Bin 0 -> 75744 bytes test/self/assets/175x145.I010 | Bin 0 -> 76446 bytes test/self/assets/176x143.I010 | Bin 0 -> 75680 bytes test/self/assets/176x144.I010 | Bin 0 -> 76032 bytes test/self/assets/176x145.I010 | Bin 0 -> 76736 bytes test/self/assets/177x143.I010 | Bin 0 -> 76254 bytes test/self/assets/177x144.I010 | Bin 0 -> 76608 bytes test/self/assets/177x145.I010 | Bin 0 -> 77318 bytes test/self/formats.py | 2 +- 10 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 test/self/assets/175x143.I010 create mode 100644 test/self/assets/175x144.I010 create mode 100644 test/self/assets/175x145.I010 create mode 100644 test/self/assets/176x143.I010 create mode 100644 test/self/assets/176x144.I010 create mode 100644 test/self/assets/176x145.I010 create mode 100644 test/self/assets/177x143.I010 create mode 100644 test/self/assets/177x144.I010 create mode 100644 test/self/assets/177x145.I010 diff --git a/test/self/assets/175x143.I010 b/test/self/assets/175x143.I010 new file mode 100644 index 0000000000000000000000000000000000000000..19bc4b5e9c7984832be7b17490adddf060e515c5 GIT binary patch literal 75394 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 literal 0 HcmV?d00001 diff --git a/test/self/assets/175x145.I010 b/test/self/assets/175x145.I010 new file mode 100644 index 0000000000000000000000000000000000000000..15ce6cc866c26a6b858436342b73b44a948260e0 GIT binary patch literal 76446 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 I{u}!6Z)RH&nE(I) literal 0 HcmV?d00001 diff --git a/test/self/assets/176x143.I010 b/test/self/assets/176x143.I010 new file mode 100644 index 0000000000000000000000000000000000000000..f481da9268a103940a8bbd8058673900c71bf523 GIT binary patch literal 75680 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 literal 0 HcmV?d00001 diff --git a/test/self/assets/176x145.I010 b/test/self/assets/176x145.I010 new file mode 100644 index 0000000000000000000000000000000000000000..a0d43d53088cf0dc724f3f7f9452387f7d8fe0e8 GIT binary patch literal 76736 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 literal 0 HcmV?d00001 diff --git a/test/self/assets/177x144.I010 b/test/self/assets/177x144.I010 new file mode 100644 index 0000000000000000000000000000000000000000..52b5048b8ad3392902e6fa9d79f6e26aee64ad03 GIT binary patch literal 76608 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 literal 0 HcmV?d00001 diff --git a/test/self/assets/177x145.I010 b/test/self/assets/177x145.I010 new file mode 100644 index 0000000000000000000000000000000000000000..edf029f94cfef2e542ce2a1733a39628d6f5cddd GIT binary patch literal 77318 zcmeI53yjo7w#Mt66ER>`f<`t#gaAP^PLO~RqC}p;@)A*A@{|>10TJc3$V&l590oxi zi-@4kg322qD`AY9g~f>)F=)VmSqYHUh(Q8G2pBQQ#(+nI+=TOlS8NNs`mSL zGrvCl)j6kX!gkr7c&of3jg)%pLaDd)F8!9ucY8A5o|4LUQvrOtaw^}A z$$Yy|I^Xrq2&crc5l)Na6t=%>jj$2cI&%6tXFjZD`@7Bvr{!yDbaQGWY=re|o@Hw( z8HJv!R~lg>to7uyOf9EQVQcxYWov2qgf?!oI*Z{H##wUOu@N@H+N>fi7tX0u*#557 z#%)$-F`U9VOHMmB!baF!BAy@nN=-k~a`ig%VLjcP(v#DUjIa^bu6c1+2o-5;e^+ZG z*Xt~X(>Qx_+K~}9!sZh3%vf7xWOZ7uUKhG-e4ZA)=EHHKp~49J_|%L-e(|{x)^PQj zIMGmHggrgYDC8HP8(|GsuZa^46-L<8(~LrX@wpM!aP^uv(NJN8Jw44RJ4$_roId_9B!r6echUZvC0U&jPT`y-ryUz%BdjG5 zdO&=xePyrH#%)$-G3@!pM_F>(u@R1Q^$IQ3tj-8~e(_P3oOW!4<6ON$OEs%A!k%Az zlqIJf8{s%tuh3G>>Wr}G7awKGX~#x5&ebclRI@sNb?PYlDyiet_wssol|Nop)o6~p z+O30YBfZ>OTF6`6N?z}#QVSU<%Xp33;7VwY+e63cU3y!d!oR<~!mZ{KTJL(fWxNgA zZtkFKN#D?Zs!7jEXDOkTyo-mriBwxAOI3dt-E*l_vwGb-RHeEK;7CX6YJBIoYv?KW zGv7s>!0cD9&!4$jVA;>@ zg%+KR}1llJm$e208NLlMo7@B+D3Ht{I; zvedR1&U;5&d6O#mWqiY5m-pSXAiWN5a09QC*>nT%MPw75ax-`Ue4`HH{Uj}yZ>Xu9 zr=E!2mt~e~jkrHccXKEHnP<80_;I>crqVM;I8V5NEOIN{t)N`~{unm3+z(b#q%>ANL2ud~aUm*2!b?f@?3=;nUg+k2s0Xtf>*s z6W-u@AUYq!H+wjL&OP{V^harp2+q0b1a5+7cDv@Zlpd3|@(@Rv>o79%&f0AKxtrqlcI*`wT3TFBq| zEqKWz$m}lB7xW8a{{w2pV_aJ~hTP&4DwPrLF4~FDz*f4-9IgkCl%sHizjHbKp)FRf zB6z|nH^x2Zp61nD4=dmpcx+Rd>P@@Oo9niSD^QBRYi1g+i$T6Ph2l+Z%>GD4Oj_X2Y zbig&?M$!r-e?fLohLx-WS;GPuM7MzSN-mW*+&I41wc};{8rR@=;Rg-z>;d;JwZ`KD zS2MOzD&(&3o^T^;zajcYTRb^x_78bRb4TB6g;1Eb@^MwaVtKDT;eo8gj#Nc zJIZ^g7o4^>ST1t);KobfC++2+nU<0tJw-fItvP?>y)`4%?}x!X|JiQhoBQDTJigm0#I z(CO&`mssVx(|Ov1OgQJMClSY&knuKy2b9Vk(u7}?!|pw-W@o7}dKRyuZoU`&ih0N* z%IU9&;R&cd_QF{v%b)3SR47$>o$k4;ucnT5?@*Phx_o%_Z*^Q_tZm(?J559{X9#M# z3Z6}i`AN3`UCZP6-Vf&)TnDxEAexJg+X&Rltaul&6mj}FFM8s%oAGkiOrr46njh}J?5F~vQG)o(Fsy4rHYTq5rhjj>jZ zl;_~B^^wEQreUb&E+bAyq4Jo6T6mpwL9g<0`i@_6C%7&**& zq(8Mpck>Bhc(uqy%wWjyn;(^$M*GB;02T5tiSSdXo%m*{EUF57q^HxhZ=`ux340?W`=h*zD4vNvM02czGjZ)X?1;2M-Mrce=LvTJzs7LU53s`~GE#=4 zAN&>THs59=6_tCLf3*Q~;YGdzhpWEkJp+~=o zAK|ZgD*6)T==-z>$G&nm^0eN3fp6!x){u-@qEPbJ(dsW3FrC=ThY%M z!hn3i}Nwg?u^B1b`G_2cSLp(+~jlQ8H-#;tZQZ1&$|mg+yuAvsG{fN+|?`i zjQ$2+AB3|j=|5xT6{%FS`pVZxf2=OThfvc^1>s@XbDjX#{S#KQ18z6E5IfDXR&v85og=pMlLZI?y+3nLO-Jqn6{CL)CoCASHyKOB0K$Oth^#i zEOlJ@8tISKMfg^E7(Ishv>Ba*-Pq08O4rI1oGmHFnUphb2Rg=ku|M|#a@=RoMIL|( z@H_ZGFGT9i)Pr}Te_1L&VK=o7GPqr+I}W3co{#L(phq?%l|}osR3p#h1Y1`q zK0*ckj=4lWTib$|Tkn3P5$<+=5v(_Y+kUv{y>2J3L}r%jp>0L&d?PZ5MQ#$#uB~#b z;KRkT44+3ctbeE6>)59|hFo|V|AAVf=QAC(%045UC)@_>+brzhzbsF{FB;*L$rf*iR9qWA-JD=%;ZMCCYmK@-$>%itCR(epWk%((?JjCI(5zKr#)2A*Go4t+yj z%xx`~$P@ksC(O>HPI#9(OA#I$qHi-2&RP$d@FS=!2E%v9gZL8J?WW@_d>!~mTkI>Z z$8P_F=ovSa@vas+6>X5G9ie;OF?jc65++0J;p#5S2^N zpO}F>xfBGy#(vUe>?7?(?c5b{S_c)|4%}NK6P`$|v2$M!|82-!P|uymCvyNR{J(*68d>m3 zR3{b8AU+!2dp&o=XVVS+%T~XwcrUoa?!WJlBPX1Rd`^EKOaDS%uD`EDZT~NPk5ccs zzgxPc}dP z@7%%GyesD#DPEk@T3%tfo8`w=gJ^uiyu!R9)hklBG1jvxRB4P0C8xj680%RTsx-!h zlG9&jjP