static int omx_need_drop_frame_num;
static bool omx_drop_done;
static bool video_start_post;
+static bool videopeek;
/*----omx_info bit0: keep_last_frame, bit1~31: unused----*/
static u32 omx_info = 0x1;
if (next_vf == NULL)
return false;
+ if (videopeek) {
+ videopeek = false;
+ pr_info("video peek toogle the first frame\n");
+ return true;
+ }
+
if (debug_flag & DEBUG_FLAG_TOGGLE_FRAME_PER_VSYNC)
return true;
if (/*(cur_vf == NULL) || (cur_dispbuf == &vf_local) ||*/ debugflags &
int keeped = 0;
new_frame_count = 0;
first_frame_toggled = 0;
+ videopeek = 0;
atomic_set(&video_unreg_flag, 1);
while (atomic_read(&video_inirq_flag) > 0)
put_user(video_onoff_state, (u32 __user *)argp);
break;
+ case AMSTREAM_IOC_SET_VIDEOPEEK:
+ videopeek = true;
+ break;
default:
return -EINVAL;
}
case AMSTREAM_IOC_SET_VSYNC_UPINT:
case AMSTREAM_IOC_SET_VSYNC_SLOW_FACTOR:
case AMSTREAM_IOC_GLOBAL_SET_VIDEO_OUTPUT:
+ case AMSTREAM_IOC_SET_VIDEOPEEK:
return amvideo_ioctl(file, cmd, arg);
default:
return -EINVAL;
#define AMSTREAM_IOC_GET_OMX_VERSION _IOW((_A_M), 0xb1, int)
#define AMSTREAM_IOC_GET_OMX_INFO _IOR((_A_M), 0xb2, unsigned int)
#define AMSTREAM_IOC_SET_HDR_INFO _IOW((_A_M), 0xb3, int)
+#define AMSTREAM_IOC_SET_VIDEOPEEK _IOW(_A_M, 0xbf, unsigned int)
#define AMSTREAM_IOC_GET_TRICK_VPTS _IOR((_A_M), 0xf0, int)
#define AMSTREAM_IOC_DISABLE_SLOW_SYNC _IOW((_A_M), 0xf1, int)