Skip to content

Commit

Permalink
vpp: support 3D with afbc format [1/1]
Browse files Browse the repository at this point in the history
PD#TV-3042

Problem:
3D function did not support afbc format before

Solution:
Add the support case which format is afbc.

Verify:
x301

Change-Id: I38189bfa78eec6ac811fb81631514d7d7b8b3d62
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>

b8d9145 vpp: add interface to force non-afbc path [1/1]
c807fc4 vpp: tm2: add vd2 function for tm2 [2/2]
eea348a vpp: tm2: add vpp and sr support [1/2]
f08c28c video: Some interlace stream will stuck when pts rebound [1/1]
53b2624 amlvideo: reset video_inuse when amlvideo stop [1/1]
17cdaf3 amvideo: set black_threshold_height default 48 [1/1]
1cd025d vpp: set default aspect when the ratecontrol is zero [1/1]
58a2e8f vpp: Modify vframe epoll event [1/1]
94b0dc8 vpp: Modify vframe epoll event [1/1]
e98d6d3 video: enable pts calculation when hold video state changes [1/1]
43d30c4 vpp: add histgram test interface for vpp slt test [1/1]
2677784 amvecm: optimize amvecm update in vsync [1/1]
af78b0f vpp: increase the afbc burst len as 4 for txlx [1/1]
1ace6fc vpp: hold the vpp setting when meet the non-dw afbc frame [1/1]
e8a3758 vpp: 3d: disable crop when 3d playback or hdmi in [1/1]
4e6774d vpp: add black_threshold to disable video when window is too small[1/1]
3ae164f vpp: including crop info when AFBC switch to normal frame [1/1]
c67657f vpp: add the pic_mode backup to check difference [1/1]
33b1aee video: timming gets error when switching channels [1/1]
233779e vpp: add log switch in vpp_set_filters [1/1]
b00582b vpp: config the vd1 canvas1 correctly when 3D enabled [1/1]
607bc19 vpp: support 3D with afbc format [1/1]

vpp: config the vd1 canvas1 correctly when 3D enabled [1/1]

PD#TV-3086

Problem:
3D display abnormal. The vd1 canvas1 was incorrect.

Solution:
When enabled 3D function, config vd1 canvas1 correctly

Verify:
x301

Change-Id: I201cda2f33badf1af54ab4f177a17f761c7cea8d
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>

vpp: add log switch in vpp_set_filters [1/1]

PD#SWPL-5942

Problem:
Too many log when DI process called the vpp_set_filters with AFBC.

Solution:
Add log switch to disable it.

Verify:
verified on X301

Change-Id: I34c8573bed78e49d27ec386279e929e617bf76d5
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>

video: timming gets error when switching channels [1/1]

PD#TV-3062

Problem:
When switching channels, Hisense platform needs hold video,
and the timming obtained at this time is wrong

Solution:
because we have add hold video function, so get width and
height interface give the last video frame width and height,
and so on change the video

Verify:
X301

Change-Id: I331a4589dcb5f5785dce7eea6d8cd03c92d733d2
Signed-off-by: Xiaoming Sui <xiaoming.sui@amlogic.com>

vpp: add the pic_mode backup to check difference [1/1]

PD#TV-2929

Problem:
The pic_mode in cur_dispbuf was changed but not be detected.

Solution:
Add global pic_mode variable to check if the pic_mode in cur_dispbuf
is changed. If so, force vpp_set_filters.

Verify:
verified on x301

Change-Id: I5b95f512ad0823b031989f05526f114694887f2b
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>

vpp: including crop info when AFBC switch to normal frame [1/1]

PD#SWPL-6347

Problem:
When AFBC switch to normal frame, excluding the crop information, the pps
parameters are calculated with wrong input size.

Solution:
1.Add the crop information, when afbc swicth to normal frame.
2.check ratio of compress_width/width, sync to crop value

Verify:
verified on x301

Change-Id: Ib943f8a11263ce577952e589bc172d8b7bafd954
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>
Signed-off-by: Luan Yuan <luan.yuan@amlogic.com>

vpp: add black_threshold to disable video when window is too small [1/1]

PD#TV-3641

Problem:
Add new interface to disable video when window is too small

Solution:
Add the black_threshold interface to control the threshold size.
And set the default value is width=20, height=30.

Verify:
verified by x301

Change-Id: Ifeb376c2e2edbb5706b2cdc2d08421bd0086b01e
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>

vpp: 3d: disable crop when 3d playback or hdmi in [1/1]

PD#TV-3962

Problem:
3D mode does not support crop function

Solution:
Remove crop when 3D display.

Verify:
Verified on x301

Change-Id: Id35dd662886be24e3ec78d070e3a70f513f89b16
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>

vpp: hold the vpp setting when meet the non-dw afbc frame [1/1]

PD#SWPL-7513

Problem:
When meet the non-dw afbc frame, vpp can not display with
scaling down as expected.

Solution:
Hold the current vpp setting and wait provider to switch
non-afbc.

Verify:
x301

Change-Id: I3c0e678d2da42376f3a77e334b8c5ce48460273b
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>

vpp: increase the afbc burst len as 4 for txlx [1/1]

PD#TV-3132

Problem:
When playing 4K afbc and scaling down to small window,
the vskip is 1 and DDR freq is also lower, the display will
flicker caused by DDR bandwidth issue.

Solution:
Increase the afbc mif burst len from 2 to 4. And enable
the dmc adjustment in that case.

Verify:
r311, verify pass

Change-Id: Ia431a93f6083fd584b7e2eb14f777c5a5e7c20e7
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>

amvecm: optimize amvecm update in vsync [1/1]

PD#SWPL-6475

Problem:
hdmi input signal, video flicker

Solution:
optimize amvecm update in vsync

Verify:
verify on TL1

Change-Id: I3379333053fc52b8a33747ca83b1d6d68ea874ab
Signed-off-by: MingLiang Dong <mingliang.dong@amlogic.com>

vpp: add histgram test interface for vpp slt test [1/1]

PD#khadasGH-31

Problem:
Need pattern to filter the error vpp modules in SLT test

Solution:
Using clipping and histgram function to create the test pattern
and get the histgram data.

Verify:
verified on w400

Change-Id: I52680c96f568980f71ac8c27c4b66352fea96651
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>

video: enable pts calculation when hold video state changes [1/1]

PD#TV-3999

Problem:
dtmb individual channel switching speed is slow,
it takes about 16s

Solution:
enable pts calculation when hold video
state changes.

Verify:
X301

Change-Id: I4c8eda3af3df894d8116461abf63c3dda45c8ce3
Signed-off-by: Rui Wang <rui.wang@amlogic.com>

vpp: Modify vframe epoll event [1/1]

PD#SWPL-8850

Problem:
too many print when channel change.

Solution:
Modify vframe epoll event flow to avoid same event.

Verify:
verify on marconi.

Change-Id: Id709439f24d3cad82df6082c477cacce1a9b9cc7
Signed-off-by: qiyao.zhou <qiyao.zhou@amlogic.com>

vpp: Modify vframe epoll event [1/1]

PD#SWPL-8850

Problem:
too many print when channel change.

Solution:
Modify vframe epoll event flow to avoid same event.

Verify:
verify on marconi.

Change-Id: Iefbd190c0280276bf941c48bf99706a0f2573df1
Signed-off-by: qiyao.zhou <qiyao.zhou@amlogic.com>

vpp: set default aspect when the ratecontrol is zero [1/1]

PD#TV-5266

Problem:
Vpp used the wrong aspect ratio in 3D, screen mode = normal
and aspect ratio is 0 in ratecontrol variable.

Solution:
When the aspect ratio is 0, set the default value as
(height << 8) / width

Verify:
Verified by x301

Change-Id: I34f7cd3ce5ed1818d3090ebb4be934225038625e
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>

amvideo: set black_threshold_height default 48 [1/1]

PD#OTT-1836

Problem:
disable video when window is too small

Solution:
set black_threshold_height default 48

Verify:
U212

Change-Id: I9ed7deb54baef1c44bb9cc0c1a4d699140663864
Signed-off-by: jintao xu <jintao.xu@amlogic.com>

amlvideo: reset video_inuse when amlvideo stop [1/1]

PD#TV-6189

Problem:
video_inuse always is 1 when codec server crash

Solution:
reset video_inuse when amlvideo stop

Verify:
TL1

Change-Id: I5b1b808668e3b2fb78781a4ea1ccbaefc3507d2b
Signed-off-by: Lifeng Cao <lifeng.cao@amlogic.com>

video: Some interlace stream will stuck when pts rebound [1/1]

PD#TV-6236

Problem:
Some interlace stream di has buffer count more than 16
If video pts rebound in this stream. The condition that
(abs(omx_pts_set_index - next_vf->omx_index) <= 16) is
not true. So this frame can not toggle always.

Solution:
Delete this condition that
(abs(omx_pts_set_index - next_vf->omx_index) <= 16)

Verify:
verify TL1

Change-Id: I7e8c12ec72d086b0516f7c7490b492e16e36e8fe
Signed-off-by: Lifeng Cao <lifeng.cao@amlogic.com>

vpp: tm2: add vpp and sr support [1/2]

PD#SWPL-6615

Problem:
Need vpp and sr supprt for sm2

Solution:
add support for tm2

Verify:
test pass on tm2 skt

Change-Id: I0ae2cb178fcbe047cdfec6b4e200424178993e6e
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>

vpp: tm2: add vd2 function for tm2 [2/2]

PD#SWPL-6615

Problem:
Need vd2 function

Solution:
add vd2 function for tm2:
1.vd2 pps scaler
2.disable vd2 afbc

Verify:
test pass on tm2 skt

Change-Id: I7af5de741b90e443ee065218aecb823ef06d66a7
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>
Signed-off-by: Luan Yuan <luan.yuan@amlogic.com>

vpp: add interface to force non-afbc path [1/1]

PD#SWPL-7035

Problem:
When DI switched to use VD AFBC, need vpp force to non-afbc first.
Otherwise, display willl flash.

Solution:
Provide new interface to request the vpp release afbc hardware first.
Then return the current afbc status.

Verify:
verified on x301

Change-Id: Ibb2b897db7d2f2c40006433d63709988992c84f1
Signed-off-by: Brian Zhu <brian.zhu@amlogic.com>
  • Loading branch information
Brian Zhu authored and HighwayStar committed May 19, 2022
1 parent d45e0b8 commit 0e60e3e
Show file tree
Hide file tree
Showing 9 changed files with 1,140 additions and 417 deletions.
9 changes: 0 additions & 9 deletions drivers/amlogic/media/enhancement/amvecm/amcsc.c
Original file line number Diff line number Diff line change
Expand Up @@ -6360,15 +6360,6 @@ static void video_process(
pr_csc("saturation offset = %d.\n",
saturation_offset);
cur_csc_type = csc_type;

if (vf) {
if ((cur_csc_type == VPP_MATRIX_BT2020YUV_BT2020RGB) &&
(cur_csc_type != 0xffff) &&
(vf->source_type == VFRAME_SOURCE_TYPE_HDMI)) {
amvecm_wakeup_queue();
pr_csc("wake up hdr status queue.\n");
}
}
}
}

Expand Down
2 changes: 2 additions & 0 deletions drivers/amlogic/media/video_processor/video_dev/amlvideo.c
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,8 @@ static int amlvideo_close(struct file *file)
mutex_lock(&dev->mutex);
dev->users--;
mutex_unlock(&dev->mutex);
if (dev->inst == 0)
video_inuse = 0;
AMLVIDEO_DBG("amlvideo close");
return 0;
}
Expand Down
1 change: 1 addition & 0 deletions drivers/amlogic/media/video_processor/video_dev/amlvideo.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ struct vivi_fh {
enum v4l2_buf_type type;
};

extern bool video_inuse;
extern bool omx_secret_mode;
extern void get_ppmgr_buf_info(char **start, unsigned int *size);

Expand Down
Loading

0 comments on commit 0e60e3e

Please sign in to comment.