Commit Graph

653951 Commits

Author SHA1 Message Date
Ao Xu
bf633a3836 media_module: solve 32bit compile error
PD#169652: media_modules: solve 32bit compile error

Change-Id: Id12608913df7372a303606dbf39b1f349eaaf08d
Signed-off-by: Ao Xu <ao.xu@amlogic.com>
2019-07-23 17:52:49 +09:00
Nanxin Qin
4bf595fa56 decoder: fixed an issue of the h263 playback.
PD#172068
needs to use VIDEO_DEC_H263 on the firmware loading.

Change-Id: Ia55c47046a848bb300947e5f3b79a73ae2203c05
Signed-off-by: Nanxin Qin <nanxin.qin@amlogic.com>
2019-07-23 17:52:49 +09:00
Peng Yixin
fa6ba91951 vmh264: fix block in isr thread.
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>
2019-07-23 17:52:49 +09:00
Peng Yixin
38250cbd4a media_module: Getting hdr information from ucode for mh264 and mpeg2
PD#167533:

ucode gerrit id: 49327 and 49371

Change-Id: Id55415f32884425391b128b2e34d57e7a77e5191
Signed-off-by: Peng Yixin <yixin.peng@amlogic.com>
2019-07-23 17:52:49 +09:00
Nanxin Qin
3381e66954 modules: the firmware loading the way was optimized.
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>
2019-07-23 17:52:49 +09:00
Peng Yixin
9e1e8402e0 media: fix some coverity error
PD#170543

Change-Id: I8494394be526b99f16eab43f5510d4b48aa4a311
Signed-off-by: Peng Yixin <yixin.peng@amlogic.com>
2019-07-23 17:52:49 +09:00
Chuanzhi Wang
f84109b20a media_module: Add configuration items to control dvb module compilation.[2\2]
PD#169652: media_module: add CONFIG_AMLOGIC_DVB

Change-Id: If44aa8cb7f8119320d10413615da9b3606fed522
Signed-off-by: Chuanzhi Wang <chuanzhi.wang@amlogic.com>
2019-07-23 17:52:49 +09:00
nengwen.chen
76c96cd404 hw_demux: fix compile error by commit 'add xtal config for tuner' [1/1]
PD#171245: fix compile error by commit 'add xtal config for tuner'

Change-Id: I303bce09f127ee8e11417e570bcdf468b2f92eeb
Signed-off-by: nengwen.chen <nengwen.chen@amlogic.com>
2019-07-23 17:52:49 +09:00
Tellen Yu
1fdc1fa5cc Revert "hw_demux: add xtal config for tuner [2/3]"
This reverts commit fc1f54405421230a43f5f472bb79de4b64dae480.

Change-Id: I15d10a6ca42ceeb249a10b0bb55c0f7febce4ab4
2019-07-23 17:52:49 +09:00
Hui Zhang
ec67375d53 media_module: add vmh264 ip only mode
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>
2019-07-23 17:52:49 +09:00
nengwen.chen
9f5ff17601 hw_demux: add xtal config for tuner [2/3]
PD#171245: add xtal config for tuner

Change-Id: I62bc6dd3c5a154d3cc439d8542b99ecb4f0ccbdf
Signed-off-by: nengwen.chen <nengwen.chen@amlogic.com>
2019-07-23 17:52:49 +09:00
shihong.zheng
c0bc723b1d decoder: vp9 doublewrite only support [1/1]
PD#158925:
1. vp9 add double write only support
2. del MMU_ENABEL macro
3. detect mmu enable by double_write mode

Change-Id: I57995a56257e592ceb122ee3420f3201f3b913b8
Signed-off-by: shihong.zheng <shihong.zheng@amlogic.com>
2019-07-23 17:52:49 +09:00
Hui Zhang
46539beba2 PD#170564: optimize mpeg4 decoedr
Change-Id: I3499150842ece14f4a6302840aff65c5414e29e1
Signed-off-by: Hui Zhang <hui.zhang@amlogic.com>
2019-07-23 17:52:49 +09:00
Chuangcheng Peng
ed0282932f demux:close print info
PD# 170313

Change-Id: I67c0c3141712797311a95af0320b87487ada7f5a
Signed-off-by: Chuangcheng Peng <chuangcheng.peng@amlogic.com>
2019-07-23 17:52:49 +09:00
Rong Zhang
63adcffa88 PD#170621: MH264: level_idc is read from local memory uncorrectly
ucode gerrit id: 48715

Change-Id: I07f2fd75bb9148b35fe68fa08db822d36897e891
Signed-off-by: Rong Zhang <rong.zhang@amlogic.com>
2019-07-23 17:52:49 +09:00
Peng Yixin
2204358fe1 media: Support Closed Caption and subtitle.
PD#170181

1.Add Support Closed Caption driver code.
2.Add subtitle driver code.

Change-Id: If0c6023592c8a3f9fb50a301fe46c6dc3cadb2f1
Signed-off-by: Peng Yixin <yixin.peng@amlogic.com>
2019-07-23 17:52:49 +09:00
Yixin Peng
74a6910af7 vdec: reduce CPU usage.
PD#170687

1.modify code: decode schedule doesn't work when video isn't play.

Change-Id: I7dfbe1b90e30980e05003404a8b4275502153639
2019-07-23 17:52:49 +09:00
nengwen.chen
6c4eb9137c hw_demux: modify tuner config in dts [2/3]
PD#170567: modify tuner config in dts

Change-Id: Icb47d7e68c220b7fe98281d308a971a5cbdd768a
Signed-off-by: nengwen.chen <nengwen.chen@amlogic.com>
2019-07-23 17:52:49 +09:00
rongrong zhou
7ff5d2db36 codec_mm: fix alloc fail issue
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
2019-07-23 17:52:49 +09:00
Rong Zhang
09700c2fbb PD#169326: H265: support over decode check for single mode
ucode gerrit id: 47661

Change-Id: Ib4bbc5854f9c4fe89308188814179e3ecad02465
Signed-off-by: Rong Zhang <rong.zhang@amlogic.com>
2019-07-23 17:52:49 +09:00
Hui Zhang
040fa9e2fe media_module: add 265 non-mmu ucode support
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>
2019-07-23 17:52:49 +09:00
Yahui Han
83f81c8481 dvb: merge from projects/verimatrix/905d-android-0425. [1/1]
PD# 152116

support config aysncfifo buffer length in dts file.

Change-Id: Ie996fb93b654f1c7ebd86cab0656a0959c6fd537
2019-07-23 17:52:49 +09:00
shihong.zheng
56d8cdee56 vh265: fix crash in task handle
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>
2019-07-23 17:52:49 +09:00
Peng Yixin
db300ca1de media_module: fix issue on h265
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>
2019-07-23 17:52:49 +09:00
Peng Yixin
a7aeb2aa48 PD#167020: vdec: fix cann't play all video after use aiqiyi play video
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>
2019-07-23 17:52:49 +09:00
Conglin Guo
3be62d451e media_module: interface optimization for get cpu id
PD#168480:media_module:
1: interface optimization for get cpu id

Change-Id: Ic5211341becf381347f89bc2a1d41c0482a847e8
Signed-off-by: Conglin Guo <conglin.guo@amlogic.com>
2019-07-23 17:52:49 +09:00
Hui Zhang
c6e24e8e29 media_module: fix issue on gts
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>
2019-07-23 17:52:49 +09:00
Nanxin Qin
ca44d65706 fw: optimize the code that cause the mem leak.
PD#168987

Change-Id: Ie71c41778ef909c0c676d93d3e87e2644d935cdf
Signed-off-by: Nanxin Qin <nanxin.qin@amlogic.com>
2019-07-23 17:52:49 +09:00
shihong.zheng
9ceecdb7d1 vmjpeg: add g12b mjpeg ucode
PD#168987

add g12b pure hardware decode to improved performance.

Change-Id: I2c61fe4ba1a6ae97dc1c437cc969fe486c37be16
Signed-off-by: shihong.zheng <shihong.zheng@amlogic.com>
2019-07-23 17:52:49 +09:00
nengwen.chen
68ff3759d7 hw_demux: txl: add dtmb for txl
PD#169838: hw_demux: txl: add dtmb for txl

Change-Id: Ibfdce0f298cfec3e77a1221b975dca8879254604
Signed-off-by: nengwen.chen <nengwen.chen@amlogic.com>
2019-07-23 17:52:49 +09:00
Conglin Guo
6ce9ee378d media_module: get chip id info from device tree
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>
2019-07-23 17:52:49 +09:00
Nanxin Qin
a11dd82dca fixed an issue with building on the Android P.
PD#153299:
BOARD_AML_VENDOR_PATH instead of ANDROID_BUILD_TOP.

Change-Id: I5e7724d334379cc97795b144b652688ff14ded1b
Signed-off-by: Nanxin Qin <nanxin.qin@amlogic.com>
2019-07-23 17:52:49 +09:00
shihong.zheng
14f66edb98 h265: fix dolby vision video cannot play [1/2]
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>
2019-07-23 17:52:49 +09:00
Nanxin Qin
f1dec43592 amvdec_ports: adds the feature of the amvdec ports are based on v4l2.[2/2]
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>
2019-07-23 17:52:49 +09:00
rongrong zhou
69d9c4ed74 try free keep video when allocation fail [2/2]
PD#167377

try free keep video when allocation fail

Change-Id: I8c9b8bf412a6f6c26b6443c15f6a27019f08890e
2019-07-23 17:52:49 +09:00
Peng Yixin
76c4043ce9 PD#168285: mh264: fix cann't play UHD video on widevine.
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>
2019-07-23 17:52:49 +09:00
Hui Zhang
bfc8f4c32b decoder: fix hevc suspend/resume bug
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>
2019-07-23 17:52:49 +09:00
shihong.zheng
cda1c484ad decoder: decrease mem use and optimize code
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>
2019-07-23 17:52:49 +09:00
Nanxin Qin
7088a280cc firmware: optimized the fw driver.
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>
2019-07-23 17:52:49 +09:00
Hui Zhang
1fb35a30c3 media_module: sync 3.14 decoder code
PD#166988: sync decoder code with 3.14-dev

1)  fix multi-instace stability issue ( crash. searial no-respense)
2)  add vmh264 & h265 error handle code
3)  add  h265 dolby vision corner case process
4)  add h265 fast output process
5)  add vp9 mmu mem alloc optimization

Change-Id: I02548af673660bd088528c23da21dcd37aad801e
2019-07-23 17:52:49 +09:00
shuanglong.wang
704b9a2719 media_modules: netflix: merge patch for fix 29.97 and 23.97 output evenly [2/2]
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>
2019-07-23 17:52:49 +09:00
Jiacheng Mei
4f17ce0c3d encoder: add G12B support
PD#165090: add G12B support for encoder

Change-Id: I2e50f5ca980fb53e06796d68f640efe03f23c343
Signed-off-by: Jiacheng Mei <jiacheng.mei@amlogic.com>
2019-07-23 17:52:49 +09:00
manhao liang
d52957f566 dvb: optimize AV SYNC procession.Merge from 3.14 pcrscr master
PD#167562: AV SYNC procession.merge 3.14 pcrscr master

Change-Id: Ied535033acb2de8e7f1a2d53290a260dcaa4db42
Signed-off-by: manhao liang <manhao.liang@amlogic.com>
2019-07-23 17:52:49 +09:00
Yixin Peng
18b3f31e3a PD#157125: AVS: fix video display isn't smooth
Change-Id: I1166a7385f0befbb60875c6984d98aa5573d2983
Signed-off-by: Yixin Peng <yixin.peng@amlogic.com>
2019-07-23 17:52:49 +09:00
Yixin Peng
00b6e665e7 PD#166393: vmh264: fix vmh264 mosaic issue
Change-Id: Ifd5dc2f73444dcf1d17a87346644d67647b99301
Signed-off-by: Yixin Peng <yixin.peng@amlogic.com>
2019-07-23 17:52:49 +09:00
shihong.zheng
a43dd77b40 decoder: g12b bringup
PD#165090

add g12b chips code for decoder

Change-Id: I63b0d09b2cf411ff26045e9274d6f53266e9b8c1
Signed-off-by: shihong.zheng <shihong.zheng@amlogic.com>
2019-07-23 17:52:49 +09:00
Yao.Liu
33f847bf31 vdec: optimize vdec_core_thread
PD#165213: optimize vdec_core_thread to fix vts timeout issue [1/2]

Change-Id: I8214d0a69b71f1bed8fb21d5bbb5694f95649880
Signed-off-by: Yao.Liu <yao.liu@amlogic.com>
2019-07-23 17:52:49 +09:00
Hui Zhang
730972d592 decoder: fix vh265 mem leak issue
PD#166845: vh265: fixed  mem leak issue in aux buf

Change-Id: Id4ebc9ae1bf1684e25c75232a173e5f5f092472f
Signed-off-by: Hui Zhang <hui.zhang@amlogic.com>
2019-07-23 17:52:49 +09:00
Chuangcheng Peng
c6f8a9eb00 DVB: remove invalid notes
PD# none

Change-Id: I5b1292cce9d272b61df956e79c7f09adb3986a3d
Signed-off-by: Chuangcheng Peng <chuangcheng.peng@amlogic.com>
2019-07-23 17:52:49 +09:00
Cheng Tong
a56a2692e7 DVB: update external demod dts parser for attach mode
PD#163384: update external demod dts parser for attach mode

Change-Id: I17e982473d4f9d33bfc9139da141ad4ca02e0b99
Signed-off-by: Cheng Tong <cheng.tong@amlogic.com>
2019-07-23 17:52:49 +09:00