From 6bacff146c2971165404a0bf282270a67c1ac777 Mon Sep 17 00:00:00 2001 From: Hui Zhang Date: Thu, 21 Mar 2019 15:48:50 +0800 Subject: [PATCH] vmh264: fix frame mode playback not smooth issue [1/1] PD#SWPL-5926 Problem: In frame mode and frmbase_cont_bitlevel > 0 case. with some stream driver will finish search start code until H264_SEARCH_BUFEMPTY. it will cost 2+ vsync time. decoder will be blocked. actually, in frame mode decoder don't need to wait for timeout. decoder should return with H264_SEARCH_BUFEMPTY once bitlevel is very low. Solution: skip search start code vsync timeout wait in frame mode ucode gerrit: 63873 63932 Verify: X301 Change-Id: Id7a8f08aef41c16f00b56745ac8ffbced632e97e Signed-off-by: Hui Zhang --- .../decoder/h264_multi/vmh264.c | 8 ++++---- firmware/video/video_ucode.bin | Bin 945408 -> 945408 bytes 2 files changed, 4 insertions(+), 4 deletions(-) mode change 100644 => 100755 firmware/video/video_ucode.bin diff --git a/drivers/amlogic/media_modules/frame_provider/decoder/h264_multi/vmh264.c b/drivers/amlogic/media_modules/frame_provider/decoder/h264_multi/vmh264.c index fdd0a2b99162..1523bdc9210a 100644 --- a/drivers/amlogic/media_modules/frame_provider/decoder/h264_multi/vmh264.c +++ b/drivers/amlogic/media_modules/frame_provider/decoder/h264_multi/vmh264.c @@ -5139,8 +5139,8 @@ pic_done_proc: (dec_dpb_status == H264_DECODE_TIMEOUT)) { empty_proc: reset_process_time(hw); - - release_cur_decoding_buf(hw); + if (!hw->frmbase_cont_flag) + release_cur_decoding_buf(hw); if (input_frame_based(vdec) || (READ_VREG(VLD_MEM_VIFIFO_LEVEL) > 0x200)) { @@ -5171,8 +5171,8 @@ empty_proc: hw->decode_timeout_num++; else if (dec_dpb_status == H264_DECODE_BUFEMPTY) hw->decode_dataempty_num++; - - hw->data_flag |= ERROR_FLAG; + if (!hw->frmbase_cont_flag) + hw->data_flag |= ERROR_FLAG; vdec_schedule_work(&hw->work); } else { diff --git a/firmware/video/video_ucode.bin b/firmware/video/video_ucode.bin old mode 100644 new mode 100755 index 386394bdfb63d7118b71a0fc341a74d4f9d2368b..a5145607e9493152ab0ca2620e34ff1a588f6067 GIT binary patch delta 8402 zcmeI0dsG$29mnT4?A;f8Q4m28_2LsX5w3^|VptyWf=>vk#s}(Ee3BpmZPW@Zo)a}b zQZ&lsXif@M(Q14|>)lpQ(ygXZG$Ph#?5Va|O~qGywkT@nvX`1(klV7y`cL==W_D)2 z^Zm_l=kr^XbJ5DV=)xfr4zyoalfV5>vtqRT;EgA9-w!B{3SUsNF6`5s*ZRCW!0++- zu#Ba57O1gd-RB%VJmr_`Ux{6KprYj4cKwfc_{+HMt8%}pP3ku%Zq>?@i?{jZ%{egc{G$yds->OFmXB=#P$m*pdy{-W-n(h`*h@zr=WK|d_sQQ{-l+O(jV4~!p5BSP!fGUKD+IPt zYV_^{K?;|sm5S?>FmLAu$?Wzx8t#$pbWoRDg>{=wp<@I~s93R56O{bPTt4ufML{uL`MnJ)>vUEos_S^kb*-p%VBEyDH!jM<@ z`!iSxI!XM&#TIWZmkh6lz|g6B*Wy;lbTn4sY@Jetqp=z%Ptp6eOtPpNB3s+_rY!+6 zDXvxJiKMa`!i5ai$nm7dH3$~bSiP-`bGF+?y`?ufrCj7JWg?fWn0TdB)a(UP{r(nX z#0ZMQqLHqtqsaVg&~0G4-aHtOnEIhwn%-xlQ#4<#h0QNjsNWDubv^S!j68yzzXp@d z=>^ho+B9#Vj^7}|ufq^XBx|q3Qz23xj3UX0#cTli%?;SruB&SSmqY$3XLhF7%n*7+ z+sMM35N`h7BzeoFta3u&wVvvicFcKM=W%u6_SF>DmR`)(?^V8K(!>2bi#MvtmpF#{ zaPIpCd2ky#gnaUN{-wU6)mM@cnJMc63 zGkJIi2ADUS>J}=Z`%^BF^K00GuIPl`XX~hO6-6xt^hdp&!l1hJs3<~$Rz1LyTRYLd*Lu$rci zhbn=G*@)+>QdnM_CDK?TZKG~gTWca))3~ldQ=Jjr$#Sy7CDZ6}cN9@6%a^ngGW8#D zBxtE?E3IhYinJE!1HG**A%nB3yFSaR!>kG0Oz}oWR}><*-%*<;F^l)vK?hXi_zP1EURA@2}1=X+BJ!eb)J|D)@L#j`5iJnJ7s%RyMp!GWX*qajhzj14 z0op~!L_~OmjDG{jIDDjxcbkoODr)s8+PZ;gd6AUkIAbP1O~#U|chl!ABNWi!oE>LO8SzGv%Y$e{qoTnq6QMF? zCSzyZEa?p0O-U5Zef2GZqO-ldKN(O72p zZCaRm4sIaqcwNj`X(YX(Jc(q9;K z?cs|*2ceMXx&F+{m}?Io{8YMKL+Kq}#!8@O`R&LsIlGx7#z^78F3oIryAiOPudInv zAq`$=q#Ko1`8S~^ZZ|A3ByIIj1ySktZino2z0B#_$C&G8Nvpgs)W)gIcw-fb)kCFC zZFg|99R?1&3Ck+(X&P&!;PoUO(WrExV-=X delta 8413 zcmeHLdsGzH8NYXTc3wLR@{kq9WRW028V!M~x8@6|8ObSQ8rRE7l{vs=-?A-JRi>>NYmg?e?6Of0pmg z{T{#Xaep&cI6Yc8J-RBVxZ%zSHp)ApYxr9yf;MjtUCea8WBYK~?IS;$ko}hLpMLhL z_x_K|79|`kKg8t?{(9oQe({wHGw7PjbK^4N|LWD){`NQRx6UpuUlPi`XRI^MIUaNB zw&z#1w`+H6cQ68qchFm=?0I(zyQ61a&(gsc)S3_dhIZF|F}>oG{cXYe7T*Ev znNy#H&un?4{|DUbe>6SYWn6f_Vr<-)uL`C|AKkk84}L2fm&ZgGE~x+Uy1d`{TMvFr z|Kd)|h4g_(jK}wd{B7foGgp7Lxws1Xx1HX9)}zTZAtlKK=6HZT9iih92XEOFd#EWe zw0L@PQDIR`xFISwCMLEZ5{F5GHR-O+`r~%w+)U_%Hzhc2lieD`i)?Y0iQ-oPfuH?RkEn^*xwkv_5f-70Pn z5Xkl7aCHhTkU&}Hkd-NEWJ)~Grf`5zcIeb%kGzi`rbbIQj)s3hEu=R1YLz2KgTFvA zxcd>OHaauo|HbJcqK z2XMNj?$BYV;VF&*yU0rzg_w`#g-;|;RB$VSVD1c~^U*V{d5}hxt)(!+d~Y~C5OI-j z^e?R77`lL=O(`UOT~MV8-D+W|r7`jaUxjc3k>i4b7gajK)e}6G=?e&9iRj5{Ft}MH z2ZK2Ja1Bn)0%RPg4J?*cYJ7m|XuLq_gG|iPc#-0Zq;(8<*|?bg(F@4J@@#P|-p?D^9EAdPA#G0D=*41+!(% z98^9&Bq2+Z4krPkcc*BQ*7R6I^b$Sw-X^9u7?2@9Qv!lFqA$l6YO*RhBbGFqG1N?C z)K7rPs7`;MiI#SPX!F}+X+QK)>W;y|va*bfzE5fFZ8tjrmt-4SVu;Xmt2i}ZPYNd( zS`4$abWzHvS1Ct|y+nc3Ph3OxM#*1MNh#i^Q-g0RIEugs>=9o^x6*B@fW@XHjMPYw!%ZlRieXMdh$kjYAW<%wHPl z%Aw#l(wcsVNVQe>W597qHW0wk4sF$d5!=yuV>>*6tQqsQzm|Q-2@sp5{pR{KdVu-r z1p0jizZ2av&4Ihn?94%MCt7x?H2iZFr-8U|`=rgVgQ4LfK+_!tk{0JX23OoHK@``i z%-d?|q5j48JnkYXUZ7HO(x~eKE7VtT;!n|xtk3;d$YJ>4bXALA-buZBf)^gmY&y_G%#&29#gF;j&*SynvpvSx9^7B6mO1{IuXORPcld(&HBl7ATP$riU1oO!ZYG% zN#@6p(ov9{#t6^JN_a2sZ=g>e%P>(K$-h&@+25-A%M^ za~u4fcK2OscV+*a`hKEKnafOeb@rWp09z+B`3v0f*4Yn5PY5I>bsNIzMG_``aDGn-K ze(~!Z{ijMh`gEn6(3_O`NiLpu=eUsr_dTlbxTC)NzP$v1^hfX8Aq`7x@GRYTihn}) zZaQWcIdB(f+<|)-w80{c5+CzdICqrY?*AHx>#oQm`#$ZDsrwqIZI?~LH8yxl>GJeD zci*G5yFW*|$9>~Pa*cI_s_$=BPn7xyRsPz(o^(&>*q-zigv*m&@2uq-R}uAA59sow zJ3nT