mpeg12 fw tee load will be fail without name, must pass
a name.
Change-Id: I5bf12ce9158237687c93acc0c54d4c29460cecea
Signed-off-by: shihong.zheng <shihong.zheng@amlogic.com>
PD#170744: decoder:
1. fix mh264 mosaic when play mjpeg at sametime in frame mode;
2. sync the mjpeg multi play code;
3. add the mpeg2&mpeg4 multi play code;
4. force exit when load ucode fail;
5. set time out for vdec_disconnet wait_for_completion;
6. reset core when active vdec to disconnect list and before run;
7. fix some coverity error;
8. remove ucode load when mmu enable in vmh264 init.
Change-Id: Ic8f296526ddac5b3904a323ce2850b1d9178a284
Signed-off-by: shihong.zheng <shihong.zheng@amlogic.com>
PD#169710: vh265: output the correct sei information for dv
Change-Id: I60368cdfa04e76d4b5b5bad5c2c066a50a878431
Signed-off-by: zhilei.wu <zhilei.wu@amlogic.com>
PD#172077
the value of dynamic_buf_num_margin was not set before, it causes the allocation of memory fail when config 1G DDR, so modify the code to set its value in driver.
Change-Id: I86d1f1dac5936bad693f6643826ee35596fb0bac
Signed-off-by: Peng Yixin <yixin.peng@amlogic.com>
PD#172068
needs to use VIDEO_DEC_H263 on the firmware loading.
Change-Id: Ia55c47046a848bb300947e5f3b79a73ae2203c05
Signed-off-by: Nanxin Qin <nanxin.qin@amlogic.com>
PD#167539
max_frame_num value exceeds the maximum value in the specification, and that cause block.
judge the validity of max_frame_num value to solve this issue.
Change-Id: Ic08e3f419e18d823cee4d0309b940dffa2058249
Signed-off-by: Peng Yixin <yixin.peng@amlogic.com>
PD#171042:
1. removed the way which used cpu type to choice fw.
2. removed redundant code.
ucode gitid
45b7330fd00f96d2e9859ac1ec91d1e46f70a1b2
Change-Id: Ie737701e682244223e437b2d6c5eb02420e10fbb
Signed-off-by: Nanxin Qin <nanxin.qin@amlogic.com>
PD#170460:
vmh264: decoder get ip only flag from application and
enable ip only fast output in dpb.
Change-Id: I15a160c65bd0e23324a356c5f78957884395e8d2
Signed-off-by: Hui Zhang <hui.zhang@amlogic.com>
PD# 169831
1. if alloc bmmu idx fail, try free keep video
2. delete redundant code to set the connected status in vmjpeg_multi
Change-Id: I356be5cf530600c3b439b4beab6289eba98c9d1a
PD#170347: vh265:
for multi-instances application . double write will be set to 0x10
for memory saving , (double write only mode), it must run under non-mmu
mode. so add non-mmu ucode to support it.
ucode gerrit: 48398
Change-Id: I70d9c2186ceb03fb3eff28478548da571d265b4c
Signed-off-by: Hui Zhang <hui.zhang@amlogic.com>
PD#168978
gHevc will free when module remove, but h265_task process is not quit,
and will run before kthread_run again. add task break after stop.
Change-Id: I3bb88801eb093c29237bf410221f5067f923f08d
Signed-off-by: shihong.zheng <shihong.zheng@amlogic.com>
PD#167443:
1.fix allocate memory fail: add a judgment statement about the width and height of video.
2.add code to put mv buffer when already got mv buffer and allocation mmu memory failure.
Change-Id: I9934716cbe0157b02b5f64c6a53e73bb8e1d7fc2
Signed-off-by: Peng Yixin <yixin.peng@amlogic.com>
1.Delete redundant code to set the connected statu in mh264
2.add mutex, to fix core schedule statu is active but no decoder being scheduled, it cause all video cann't play.
Change-Id: Ica094d8068be78d36699749c5b32e8e3ad34d4ca
Signed-off-by: Peng Yixin <yixin.peng@amlogic.com>
PD#168480:media_module:
1: interface optimization for get cpu id
Change-Id: Ic5211341becf381347f89bc2a1d41c0482a847e8
Signed-off-by: Conglin Guo <conglin.guo@amlogic.com>
PD#169800: vmh264: change error_proc_policy for gts test
bit[12] = 1 : i_only when error happen.
old policy may discard many pictures when error happen,it will lead gst
test fail. So change this policy to disbaled to meet gst test
Change-Id: I02d64285e012ac26433884aba8764162171e3e97
Signed-off-by: Hui Zhang <hui.zhang@amlogic.com>
PD#168480:get cpu id ver from dts ,in stead of get_cpu_type interface
Change-Id: Ib96afad61995282c56716268db70149b27c3cd3d
Signed-off-by: Conglin Guo <conglin.guo@amlogic.com>
PD#169274: dv: merge rain dolby vision support bypass_el,
fix cache dirty problem patch from 3.14. related bug is 166832.
Change-Id: Idf07dd5d1c9fccd7ec8a1f11d5213f9ce2b0db43
Signed-off-by: shihong.zheng <shihong.zheng@amlogic.com>
PD#153299:
1. amports has v4l for video decoding implemented upstream.
2. Only the decoding of h264 has been implemented at the moment.
3. the maximun resolution supports 1080p currently.
4. it is nv12 that the canvas data format of the decoder output.
5. the detailed description can be referred to wiki.
wiki: Media/The_V4L2_Amvdec_Ports_Instructions
Change-Id: I6fdff300a4b5bd715b8612be966a8734cd522555
Signed-off-by: Nanxin Qin <nanxin.qin@amlogic.com>
1.tee video firmware be loaded twice, cause the decoder isn't working properly. Delete the one in the vh264_init function.
2.Remove needn't debug code and optimize code logic.
Change-Id: Ifa19b3334a25d0b52d9173537e1b2a1a6a5cea3d
Signed-off-by: Peng Yixin <yixin.peng@amlogic.com>
PD#168278: previously use wrong(amvdec_xxx()) suspend/resume call. it will cause
system crash after resume. Now, fix it
Change-Id: I91fac08d138e5fcef38db91c7d44a029d76dd596
Signed-off-by: Hui Zhang <hui.zhang@amlogic.com>
PD#167435
1. decrease some mem use;
2. change vp9 4k mv buf num to 6;
3. reduce max multi-instance channels from 12 to 9;
4. avsp_long_cabac must config by option;
5. remove h264_4k2k module;
6. set_clk before init avoid timer run before work init;.
7. optimize some code in vp9/h265/avs2/mpeg2/avs.
Change-Id: Iaeedd24987649bdf04ec53e1c4c6baffb3bf1ea8
Signed-off-by: shihong.zheng <shihong.zheng@amlogic.com>
PD#168027:optimized the fw driver.
1. removed the node of detail that be used show fw info.
2. optimized showing info with fw.
Change-Id: Idc9ea92b109146ec28b7c6efc6a12cd001004428
Signed-off-by: Nanxin Qin <nanxin.qin@amlogic.com>
PD#165744 : netflix: merge patch for fix 29.97 and 23.97 output evenly
NEEDLEPLAT-2057:
[Netflix][NTS] Video judders are observed during VP9/HEVC playback [1/1]
[Problem]
[Netflix][NTS] Video judders are observed during VP9/HEVC playback.
The problem happens at 'Boardwalk Twirl Ride' scene with seek point at 760
seconds. Seek before the point or the exact point will show stuttery video
display but a seek after the location or a short seek (swim operation in
NF's term) will make the playback smooth again. [Solution] The problem
is identified to be an uneven PTS timestamp for sample frames. In order
to get 29.97fps the timestamp of video samples are switching between a
30fps rate and some samples with longer duration so by average it's
29.97fps. The output rendering control has very strict timestamp comparison
between system time and the timestamp of video frame. When system time passed
the next video frame's timestamp, a new frame is toggled to display. For the
uneven PTS case, some frames have over 2 vsync duration and the others have
less than 2 vsync duration. Depending on the initial vsync offset, there is a
chance to have frames toggled in 13221322 vsync sequence, instead of a normal
always 2 vsync toggle one frame pattern. The change is to do a small adjustment
to the system time, based on initial system time and video timestamp so the "phase"
of the vsync can be set up to avoid such situation.
[Platform]
needle,stark
[Test]
Verify with Netflix Chime S1E8 29.97fps titles, 'Boardwalk Twirl Ride' scene.
Change-Id: I073481ce9e39f49555480a139e3b32d8cc047e1c
Signed-off-by: Tim Yao <tim.yao@amlog
NEEDLEPLAT-2604: [Netflix] Video judders during playback [1/1]
[JIRA] NEEDLEPLAT-2604
[Problem]
FRC caused video judders with 23.97fps source.
[Solution]
When source is 23.97 fps and output is 59.94hz, in order to make it
friendly to TV 3:2 pulldown detection, the video frame output should follow a
323232 patten, which means for each vsync, frames are repeated 3 times, then
switch to a new frame and repeat twice. Such repeating pattern will make the
average vsync toggle rate become 2.5 frame per vsync, to match 23.97 to 59.94
frame conversion rate. And TV side can also detect such patterns and do its best
recovery for MEMC processing. The problem with Netflix is the PTS of each vidoe
frame is not incremented in a constant duration, but with some frames bigger then
1/23.97 seconds and some are smaller. In Jira NEEDLEPLAT-2057 we have a similar
processing for the case when source is 29.97fps and output is 59.94hz and for this
Jira the reason is same. The fix for NEEDLEPLAT-2057 actually caused a side effect
because it tried to set the initial vsync phase to 0.5, to maximumly avoid the
problem, but for the 2:3 situation, a 0.5 phase make it worse because the average
FRC ratio is 2.5, so an initial 0.5 phase will always make the output pattern not
aligned at 232323 pattern when the duration of each frame is not even. This fix
is to move the initial phase to 75% so both cases should work fine.
[Test] Play typical HD source with 23.97fps and observe the playback smoothness.
Also double check Chimera Boardwalk Twirl Ride from seeking point 02:34:14 and
check the playback is smooth also.
Change-Id: I95c35d4ffa563f74b9afa7ae08f7ef22d1227706
Signed-off-by: Tim Yao <tim.yao@amlogic.com>
NEEDLEPLAT-3173: [NTS]Frame stuttering on 4K 60fps [1/1]
[JIRA] NEEDLEPLAT-3173
[Problem] The test clip is 4K 60fps and the output is 4K
59.94hz so a frame dropping always happen every 1000 frame. The clip is special
in that the duration (PTS growing distance) between each frame is not same. The
frame's PTS is incremened by (1530, 1530, 1440) to get an average of 1500 90K
unit increase. (1500 = 90k / 60), which equals two 17ms dutation then followed
by a 16ms duration frame to get an average of 16.6ms duration. The previous
commit for NEEDLEPLAT-2604 and 2057 are the efforts to solve this problem by
setting an initial phase, which can solve the problem for the uneven PTS for
23.97 and 29.97fps cases. However, for 60fps source, the initial phase can not
solve the problem because we can not maintain 1 vsync 1 frame switching always
because eventually we need drop a frame for every 1000 frames. It means that
during the playback, this initial phase will be shiftted. And when the vsync
switching happens at those uneven PTS boundary, the same problem happens.
[Solution] The change is a general frame switching improvement to avoid two
situations: a) In one vsync, there are two frames toggled (frame dropping),
but the next vsync there is no frame flipped because of its PTS has not arrived.
This will cause unnecessary frame dropping and what we do is to move the second
video frame to next vsync window. b) In one vsync, there are no frames be flipped
(frame repeating), but the next vsync will have more than 1 frame flipped. It's
also another frame dropping and what we do is to flip the next video frame in
this vsync instead. So the idea is to make the frame switching at video display
driver more smooth by avoid uneven frame flipping for each vsync. The timestamp
of the test clip is not correct, but we can use this method to make output
sequence smooth and avoid frame dropping.
[Platform]
needle,stark
[Test]
Verify with the special test clip according to the instruction. Verify
NEEDLEPLAT-2604 and 2057 also.
Change-Id: I8fd9d70fd1fee561e28b8a0c47bd4be716934ec0
Signed-off-by: shuanglong.wang <shuanglong.wang@amlogic.com>