video: video peek do not post video start event [1/1]

PD#SWPL-4317

Problem:
for video peek, before audio post audio start, video may have rended.

Solution:
do not post video start for video peek, all wait for audio start to
start pcr

Verify:
verify by p212

Change-Id: If5656154e30613164465f84c44d3fd1ee386d654
Signed-off-by: shuanglong.wang <shuanglong.wang@amlogic.com>
This commit is contained in:
shuanglong.wang
2019-01-17 17:58:00 +08:00
committed by Jianxin Pan
parent 624307e8ab
commit b5d6c8e67d

View File

@@ -143,6 +143,7 @@ static int omx_need_drop_frame_num;
static bool omx_drop_done;
static bool video_start_post;
static bool videopeek;
static bool nopostvideostart;
/*----omx_info bit0: keep_last_frame, bit1~31: unused----*/
static u32 omx_info = 0x1;
@@ -5473,9 +5474,10 @@ static irqreturn_t vsync_isr_in(int irq, void *dev_id)
if (vf) {
if (hdmi_in_onvideo == 0) {
tsync_avevent_locked(VIDEO_START,
(vf->pts) ? vf->pts :
timestamp_vpts_get());
if (nopostvideostart == false)
tsync_avevent_locked(VIDEO_START,
(vf->pts) ? vf->pts :
timestamp_vpts_get());
video_start_post = true;
}
@@ -6908,6 +6910,7 @@ static void video_vf_unreg_provider(void)
new_frame_count = 0;
first_frame_toggled = 0;
videopeek = 0;
nopostvideostart = false;
atomic_set(&video_unreg_flag, 1);
while (atomic_read(&video_inirq_flag) > 0)
@@ -7861,12 +7864,14 @@ static long amvideo_ioctl(struct file *file, unsigned int cmd, ulong arg)
put_user(video_onoff_state, (u32 __user *)argp);
break;
}
case AMSTREAM_IOC_GET_FIRST_FRAME_TOGGLED:
put_user(first_frame_toggled, (u32 __user *)argp);
break;
case AMSTREAM_IOC_SET_VIDEOPEEK:
videopeek = true;
nopostvideostart = true;
break;
default:
return -EINVAL;