示例#1
0
int playback_down_key_active(cdvr_thmb_t *pdvr)
{
    printf("%s:%d dispmode %d\n", __FUNCTION__, __LINE__, pdvr->dispMode);
	pthread_mutex_lock(&g_cdvr->pb_mutex);
	if(pdvr->dispMode == DISP_FULL_SCREEN) {
		if(pdvr->fileType == GP_FILE_TYPE_JPEG) { // jpeg for scale up function
			playback_Set_PIPE_With_CMD(CMD_GET_JPEG_SCLIDX, 1);
			if(pdvr->sclIdx == 0) { //will be in thumbnail mode
				//dvr_thmb_setDispThmbMode(pdvr); //enter thmb mode
#if !CVR_DUAL
				dvr_thmb_dispPage(pdvr);
#else //CVR_DUAL mode // to next file
				dvr_thmb_nextIdx(pdvr);
				dvr_thmb_dispFullScreen(pdvr);
#endif
			}
			else { //if not scale down
				playback_Set_PIPE_With_CMD(CMD_SET_SCALE_DOWN, 1);
				playback_Set_PIPE_With_CMD(CMD_GET_JPEG_SCLIDX, 1);
			}
		}
		else if(pdvr->fileType == GP_FILE_TYPE_VIDEO) {
			//dvr_thmb_setDispThmbMode(pdvr); //enter thmb mode
#if !CVR_DUAL
			dvr_thmb_dispPage(pdvr);
#else //CVR_DUAL mode // to next file
			pdvr->pVideoInfo->frameRate = 0;
			dvr_thmb_nextIdx(pdvr);
			dvr_thmb_dispFullScreen(pdvr);
#endif
		}

	}
	else if(pdvr->dispMode == DISP_THMB_SCREEN){
		int curPage = pdvr->cur_page;
		//dvr_thmb_preIdx(pdvr);
		dvr_thmb_nextIdx(pdvr);
		if(curPage != pdvr->cur_page) {
			dvr_thmb_dispPage(pdvr);
		}

	}
	else if(pdvr->dispMode == DISP_VIDEO_SCREEN) {
		pdvr->pVideoInfo->volume -= VIDEO_PLAY_VOLUME_STEP;
		if(pdvr->pVideoInfo->volume <= 0) {
			pdvr->pVideoInfo->volume = 0;
		}
		ExtGpVideoEngineSetVolume(pdvr->pVideoInfo->volume);
	}
	else if(pdvr->dispMode == DISP_SCALE_SCREEN) {
		playback_Set_PIPE_With_CMD(CMD_SET_SCALE_DOWN, 1);
		playback_Set_PIPE_With_CMD(CMD_GET_JPEG_SCLIDX, 1);
		if(pdvr->sclIdx == 0) {
			dvr_thmb_setDispFullMode(pdvr); //enter full mode
		}
	}
	pthread_mutex_unlock(&g_cdvr->pb_mutex);
}
int dvr_thmb_deleteAllFile(cdvr_thmb_t *pdvr, gp_file_t **ppFile)
{
	int number = pdvr->file_number;
	int i;
	printf("get delete file number:%d\n", number);
	for(i=0; i<number; i++) {
		pdvr->pUrl = FilelistGetFilePath(*ppFile, i);
		if(FilelistGetLock(*ppFile, i) == GP_FILE_UNLOCK) {
			printf("======del file %d %s=======\n", i, pdvr->pUrl);
			fileDel(*ppFile, pdvr->pUrl);
			printf("delete ok!\n");
		}
		else {
			printf("%s is lock!!!!\n", pdvr->pUrl);
		}
	}
	sync();
	*ppFile = FilelistGetFileNum(pdvr, *ppFile, 1);
	printf("get file number:%d\n", pdvr->file_number);
	dvr_thmb_setFileNumber(pdvr, pdvr->file_number, 1);
	if(pdvr->dispMode == DISP_FULL_SCREEN) {
		dvr_thmb_dispFullScreen(pdvr, pdvr->upFrame);
	}
	return 0;
}
示例#3
0
/**
 * menu key active.
 * return: 0: need do draw ui. -1:do not draw ui.
 * */
int playback_menu_key_active(cdvr_thmb_t *pdvr)
{
	int ret = 0;
	printf("%s:%d\n", __FUNCTION__, __LINE__);
	pthread_mutex_lock(&g_cdvr->pb_mutex);
	if(pdvr->dispMode == DISP_FULL_SCREEN) {
		if(pdvr->fileType == GP_FILE_TYPE_JPEG) { 
		}
		else if(pdvr->fileType == GP_FILE_TYPE_VIDEO) {

		}

		ret = 0;
	}
	else if(pdvr->dispMode == DISP_THMB_SCREEN) {
		ret = -1;
	}
	else if(pdvr->dispMode == DISP_VIDEO_SCREEN) {
		ret = -1;
	}
	else if(pdvr->dispMode == DISP_SCALE_SCREEN) {
		dvr_thmb_dispFullScreen(pdvr);
		ret = -1;
	}

	pthread_mutex_unlock(&g_cdvr->pb_mutex);
	return ret;
}
示例#4
0
int playback_up_key_active(cdvr_thmb_t *pdvr)
{
    printf("%s:%d dispmode %d\n", __FUNCTION__, __LINE__, pdvr->dispMode);
	pthread_mutex_lock(&g_cdvr->pb_mutex);
	if(pdvr->dispMode == DISP_FULL_SCREEN) {
		if(pdvr->fileType == GP_FILE_TYPE_JPEG) { // jpeg for scale up function
#if !CVR_DUAL
			dvr_thmb_setDispScaleMode(pdvr);
			//image_scale_up(pdvr->pPhotoInfo);
			playback_Set_PIPE_With_CMD(CMD_SET_SCALE_UP, 1);
			dvr_thmb_getScaleIndex(pdvr);
#else
			dvr_thmb_preIdx(pdvr);
			dvr_thmb_dispFullScreen(pdvr);
#endif
		}
		else if(pdvr->fileType == GP_FILE_TYPE_VIDEO) {
#if CVR_DUAL
			pdvr->pVideoInfo->frameRate = 0;
			dvr_thmb_preIdx(pdvr);
			dvr_thmb_dispFullScreen(pdvr);
#endif
		}

	}
	else if(pdvr->dispMode == DISP_THMB_SCREEN){
		int curPage = pdvr->cur_page;
		//dvr_thmb_nextIdx(pdvr);
		dvr_thmb_preIdx(pdvr);
		if(curPage != pdvr->cur_page) {
			dvr_thmb_dispPage(pdvr);
		}
	}
	else if(pdvr->dispMode == DISP_VIDEO_SCREEN) {

		pdvr->pVideoInfo->volume += VIDEO_PLAY_VOLUME_STEP;
		if(pdvr->pVideoInfo->volume >= 8) {
			pdvr->pVideoInfo->volume = 8;
		}
		ExtGpVideoEngineSetVolume(pdvr->pVideoInfo->volume);
	}
	else if(pdvr->dispMode == DISP_SCALE_SCREEN) { //now only in photo
		playback_Set_PIPE_With_CMD(CMD_SET_SCALE_UP, 1);
		dvr_thmb_getScaleIndex(pdvr);
	}
	pthread_mutex_unlock(&g_cdvr->pb_mutex);
}
int dvr_thmb_deleteFile(cdvr_thmb_t *pdvr, gp_file_t **ppFile)
{
	
	if(FilelistGetLock(*ppFile, dvr_thmb_getCurIdxOfFile(pdvr)) == GP_FILE_UNLOCK) {
		printf("======del file %s=======\n", pdvr->pUrl);
		fileDel(*ppFile, pdvr->pUrl);
		printf("delete ok!\n");
		sync();
		*ppFile = FilelistGetFileNum(pdvr, *ppFile, 1);
		printf("get file number:%d\n", pdvr->file_number);
		dvr_thmb_setFileNumber(pdvr, pdvr->file_number, 0);
		if(pdvr->dispMode == DISP_FULL_SCREEN) {
			dvr_thmb_dispFullScreen(pdvr, pdvr->upFrame);
		}
	}
	return 0;
}
示例#6
0
int dvr_thmb_UpdateAllInfo(cdvr_thmb_t *pdvr)
{
	if(!pdvr) {
		pdvr = g_cdvr;
		if(!pdvr) {
			return -1;
		}
	}
	dvr_thmb_get_info();
	pdvr->pUrl = NULL;
	pdvr->pPath= NULL;
	FilelistGetPageLock();
	FilelistGetFilePath(0);
	FilelistGetFileName(0);
	playback_Set_PIPE_With_CMD(CMD_GET_FILE_ALL_TYPE, 1);
	dvr_thmb_dispFullScreen(pdvr);
	return 0;

}
示例#7
0
/**
 * playback mode key active.
 * return: 0: do mode active, 1: change mode.
 **/
int playback_mode_key_active(cdvr_thmb_t *pdvr)
{
	printf("%s:%d\n", __FUNCTION__, __LINE__);
	pthread_mutex_lock(&g_cdvr->pb_mutex);
	if(pdvr->dispMode == DISP_FULL_SCREEN) {
		if(pdvr->fileType == GP_FILE_TYPE_JPEG) { 
		}
		else if(pdvr->fileType == GP_FILE_TYPE_VIDEO) {

		}

	}
	else if(pdvr->dispMode == DISP_THMB_SCREEN) {
		
	}
	else if(pdvr->dispMode == DISP_VIDEO_SCREEN) {
		if(pdvr->pVideoInfo->videoMode == VIDEO_PAUSE) {
			ExtGpVideoEngineResume();
		}
		ExtGpVideoEngineStop();
		g_VideoEnd = 0;
		pdvr->pVideoInfo->videoMode = VIDEO_OPEN;
		pdvr->pVideoInfo->speed = 0;
		//dvr_thmb_dispFullScreen(pdvr);
		dvr_thmb_dispFullScreen_Replace(pdvr);
		Dsp_Open();
		ExtGpVideoEngineSetVolume(g_sys_vol);
		timeOut_count = 0;
		pthread_mutex_unlock(&g_cdvr->pb_mutex);
		return 1;
	}
	else if(pdvr->dispMode == DISP_SCALE_SCREEN) {
		dvr_thmb_dispFullScreen(pdvr);
		playback_Set_PIPE_With_CMD(CMD_GET_JPEG_SCLIDX, 1);
		pthread_mutex_unlock(&g_cdvr->pb_mutex);
		return 1;
	}
	pthread_mutex_unlock(&g_cdvr->pb_mutex);
	return 0;
}
示例#8
0
int playback_enter_key_active(cdvr_thmb_t *pdvr)
{
	printf("%s:%d\n", __FUNCTION__, __LINE__);
	pthread_mutex_lock(&g_cdvr->pb_mutex);
	if(pdvr->dispMode == DISP_FULL_SCREEN) {
		if(pdvr->fileType == GP_FILE_TYPE_JPEG) { 
#if CVR_DUAL
			printf("%s:%d\n", __FUNCTION__, __LINE__);
			//int idx = dvr_thmb_getScaleIndex(pdvr);
			//if(idx == 0) {
				dvr_thmb_setDispScaleMode(pdvr);
			//}
				//image_scale_up(pdvr->pPhotoInfo);
			playback_Set_PIPE_With_CMD(CMD_SET_SCALE_UP, 1);
			dvr_thmb_getScaleIndex(pdvr);
#endif
		}
		else if(pdvr->fileType == GP_FILE_TYPE_VIDEO) {
			printf("%s:%d\n", __FUNCTION__, __LINE__);
			dvr_thmb_setDispVideoMode(pdvr);
			if(pdvr->pVideoInfo->videoMode == VIDEO_OPEN) {
				g_cdvr->pVideoInfo->play_time = 0;
				g_cdvr->pVideoInfo->show_time = 0;
				g_cdvr->pVideoInfo->speed = 0;
				printf("%s:%d\n", __FUNCTION__, __LINE__);
				Dsp_close();
				ExtGpVideoEngineSetVolume(pdvr->pVideoInfo->volume);
				//ExtGpVideoEngineSetUrl(pdvr->pUrl);
				g_VideoEnd = 0;
				ExtGpVideoEnginePlay();
				pdvr->pVideoInfo->videoMode = VIDEO_PLAY;
			}
		}

	}
	else if(pdvr->dispMode == DISP_THMB_SCREEN){
			printf("%s:%d\n", __FUNCTION__, __LINE__);
		
		//dvr_thmb_setDispFullMode(pdvr);
		pdvr->pVideoInfo->videoMode = VIDEO_OPEN;
		pdvr->pVideoInfo->frameRate = 0;
		dvr_thmb_dispFullScreen(pdvr);
	}
	else if(pdvr->dispMode == DISP_VIDEO_SCREEN) {
			if(pdvr->pVideoInfo->videoMode == VIDEO_PAUSE) {
				//pdvr->pVideoInfo->videoMode = VIDEO_PLAY;
				pdvr->pVideoInfo->videoMode = pdvr->pVideoInfo->lastMode;
				pdvr->pVideoInfo->lastMode = -1;
				ExtGpVideoEngineResume();
			}
			else if(pdvr->pVideoInfo->videoMode == VIDEO_PLAY || pdvr->pVideoInfo->videoMode == VIDEO_SPEED||
					pdvr->pVideoInfo->videoMode == VIDEO_REVERSE) {
				pdvr->pVideoInfo->lastMode = pdvr->pVideoInfo->videoMode;
				pdvr->pVideoInfo->videoMode = VIDEO_PAUSE;
				ExtGpVideoEnginePause();
			}
	}
	else if(pdvr->dispMode == DISP_SCALE_SCREEN) { //need to change to dv mode
#if CVR_DUAL
		playback_Set_PIPE_With_CMD(CMD_SET_SCALE_UP, 1);
		dvr_thmb_getScaleIndex(pdvr);
#endif
	}
	pthread_mutex_unlock(&g_cdvr->pb_mutex);
}
示例#9
0
int playback_down_L_key_active(cdvr_thmb_t *pdvr)
{
	printf("%s:%d\n", __FUNCTION__, __LINE__);

	int speed = 0;	
	pthread_mutex_lock(&g_cdvr->pb_mutex);
	if(pdvr->dispMode == DISP_FULL_SCREEN) {
		if(pdvr->fileType == GP_FILE_TYPE_JPEG) { // jpeg for scale up function
			//dvr_thmb_preIdx(pdvr);
			dvr_thmb_nextIdx(pdvr);
			dvr_thmb_dispFullScreen(pdvr);
		}
		else if(pdvr->fileType == GP_FILE_TYPE_VIDEO) {
			//dvr_thmb_preIdx(pdvr);
			pdvr->pVideoInfo->frameRate = 0;
			dvr_thmb_nextIdx(pdvr);
			dvr_thmb_dispFullScreen(pdvr);
		}

	}
	else if(pdvr->dispMode == DISP_THMB_SCREEN){
		//dvr_thmb_prePage(pdvr);
		dvr_thmb_nextPage(pdvr);
		dvr_thmb_dispPage(pdvr);
	}
	else if(pdvr->dispMode == DISP_VIDEO_SCREEN) {
		printf("set speed: %d\n", pdvr->pVideoInfo->speed);
		if(pdvr->pVideoInfo->videoMode == VIDEO_PLAY ||
				pdvr->pVideoInfo->videoMode == VIDEO_REVERSE) {
			if(pdvr->pVideoInfo->videoMode == VIDEO_PLAY) {
				//call pipe to enter reversed mode in pipe revice cmd callback function, 
				//if set error, it will be in video play
				ExtGpVideoEngineReversePlay(1); //enter reversed play
			}
			if(pdvr->pVideoInfo->videoMode == VIDEO_REVERSE) {
				speed = pdvr->pVideoInfo->speed;
				speed++;
				if(speed == VIDEO_PLAY_SPEED_STEP) {
					speed = VIDEO_PLAY_SPEED_STEP-1;
				}
				else {
					g_SetSpeed = -1;
					ExtGpVideoEngineSetSpeed(speed);
					if(g_SetSpeed != 0) {
						if(g_SetSpeed == -1) { //-2 is not set
							pdvr->pVideoInfo->speed = speed;
						}
						printf("%s:%d change speed to %d error ret: %d!!!\n", __FUNCTION__, __LINE__, speed, g_SetSpeed);
					}
					else {
						pdvr->pVideoInfo->speed = speed;
					}
				}
			}
		}
		else if(pdvr->pVideoInfo->videoMode == VIDEO_SPEED){
			speed = pdvr->pVideoInfo->speed;
			speed--;
			g_SetSpeed = -1;
			ExtGpVideoEngineSetSpeed(speed);
			if(g_SetSpeed == 0) {
				pdvr->pVideoInfo->speed = speed;
				if(speed == 0) {
					pdvr->pVideoInfo->videoMode = VIDEO_PLAY;
				}
				else  {
					pdvr->pVideoInfo->videoMode = VIDEO_SPEED;
				}
			}
			else {
				if(g_SetSpeed == -1) { //-2 is not set
					pdvr->pVideoInfo->speed = speed;
				}
				printf("%s:%d change speed to %d error ret: %d!!!\n", __FUNCTION__, __LINE__, speed, g_SetSpeed);
			}
		}
	}
	else if(pdvr->dispMode == DISP_SCALE_SCREEN) {
		
	}
	pthread_mutex_unlock(&g_cdvr->pb_mutex);
}
示例#10
0
int playback_up_L_key_active(cdvr_thmb_t *pdvr)
{
	int speed;
	printf("%s:%d\n", __FUNCTION__, __LINE__);
	pthread_mutex_lock(&g_cdvr->pb_mutex);
	if(pdvr->dispMode == DISP_FULL_SCREEN) {
		if(pdvr->fileType == GP_FILE_TYPE_JPEG) { // jpeg for scale up function
			//dvr_thmb_nextIdx(pdvr);
			dvr_thmb_preIdx(pdvr);
			dvr_thmb_dispFullScreen(pdvr);
		}
		else if(pdvr->fileType == GP_FILE_TYPE_VIDEO) {
			//dvr_thmb_nextIdx(pdvr);
			pdvr->pVideoInfo->frameRate = 0;
			dvr_thmb_preIdx(pdvr);
			dvr_thmb_dispFullScreen(pdvr);
		}

	}
	else if(pdvr->dispMode == DISP_THMB_SCREEN){
		dvr_thmb_prePage(pdvr);
		//dvr_thmb_nextPage(pdvr);
		dvr_thmb_dispPage(pdvr);
	}
	else if(pdvr->dispMode == DISP_VIDEO_SCREEN) {
		if(pdvr->pVideoInfo->videoMode == VIDEO_PLAY ||
				pdvr->pVideoInfo->videoMode == VIDEO_SPEED) {
			speed = pdvr->pVideoInfo->speed;
			speed++;
			if(speed == VIDEO_PLAY_SPEED_STEP) {
				speed = VIDEO_PLAY_SPEED_STEP-1;
			}
			else {
				g_SetSpeed = -1;
				ExtGpVideoEngineSetSpeed(speed);
				if(g_SetSpeed != 0) {
					if(g_SetSpeed == -1) { //-2 is not set
						pdvr->pVideoInfo->speed = speed;
					}
					printf("%s:%d change speed to %d error ret: %d!!!\n", __FUNCTION__, __LINE__, speed, g_SetSpeed);
				}
				else {
					pdvr->pVideoInfo->videoMode = VIDEO_SPEED;
					pdvr->pVideoInfo->speed = speed;
				}
			}
		}
		else if(pdvr->pVideoInfo->videoMode == VIDEO_REVERSE){
			speed = pdvr->pVideoInfo->speed;
			speed--;
			if(speed == 0) {
				ExtGpVideoEngineReversePlay(0); //disable reversed play
				// disable reversed mode, if at the last sec, it can not 
				// change video mode.
				if(pdvr->pVideoInfo->videoMode == VIDEO_PLAY) {
					g_SetSpeed = -1;
					ExtGpVideoEngineSetSpeed(speed);
					if(g_SetSpeed != 0) {
						if(g_SetSpeed == -1) { //-2 is not set
							pdvr->pVideoInfo->speed = speed;
						}
						printf("%s:%d change speed to %d error ret: %d!!!\n", __FUNCTION__, __LINE__, speed, g_SetSpeed);
					}
					else {
						pdvr->pVideoInfo->speed = speed;
					}
				}
			}
			else {
				pdvr->pVideoInfo->videoMode = VIDEO_REVERSE;
				g_SetSpeed = -1;
				ExtGpVideoEngineSetSpeed(speed);
				if(g_SetSpeed != 0) {
					if(g_SetSpeed == -1) { //-2 is not set
						pdvr->pVideoInfo->speed = speed;
					}
					printf("%s:%d change speed to %d error ret: %d!!!\n", __FUNCTION__, __LINE__, speed, g_SetSpeed);
				}
				else {
					pdvr->pVideoInfo->speed = speed;
				}
			}
		}
	}
	else if(pdvr->dispMode == DISP_SCALE_SCREEN) {
		
	}
	pthread_mutex_unlock(&g_cdvr->pb_mutex);
	
}
示例#11
0
cdvr_thmb_t *playback_init(int disp, int width, int height)
{
	int i, idx=0;
	pid_t cam_pid;
	char *argv[32];
	cdvr_thmb_t *pdvr = NULL;
	g_width = width;
	g_height = height;
	g_SetSpeed = -1;
	timeOut_count = 0;

	argv[idx++] = strdup("/system/app/cvrplayer");
	//argv[idx++] = strdup("/media/sdcardc1/cvrplayer");
	argv[idx++] = strdup("cvrplayer");
	
	argv[idx++] = strdup("-p");
	argv[idx++] = strdup(Memory_path);
	argv[idx++] = strdup("-d");
	argv[idx++] = (char *)malloc(32);

	sprintf(argv[idx-1], "%d", disp);

	argv[idx++] = strdup("-m"); //for filelist
	argv[idx++] = strdup("0");

	argv[idx++] = (char *)0;
	public_pipeinit(playback_receive_cmd_callback);
	signal(SIGCHLD, SIG_IGN);
	if((cam_pid = fork()) <0)
	{
		perror("creat pid fail\n");
		return NULL;
	}
	else if(cam_pid==0)
	{
		for(i=0; i<idx-1; i++) {
			printf("%s\n", argv[i]);
		}
		execv(argv[0], &argv[1]);
	}
	else {
		for(i=0; i<idx-1; i++) {
			free(argv[i]);
		}
		g_sys_vol = ExtGpVideoEngineGetVolume();
		g_cdvr = pdvr = dvr_thmb_init(width, height);
		if(!pdvr) {
    		printf("%s:%d\n", __FUNCTION__, __LINE__);
			return NULL;
		}
		usleep(200*1000);
    	printf("%s:%d\n", __FUNCTION__, __LINE__);

		do{
			dvr_thmb_get_info();
			if(pdvr->dispMode != -1) {
				printf("cvrplayer init ok!\n");
				break;
			}
			else {
				usleep(200 *1000);
			}
		}while(pdvr->dispMode == -1);

		if(pdvr->dispMode == DISP_FULL_SCREEN) {
    		printf("%s:%d init cvrplayer to FullScreen mode\n", __FUNCTION__, __LINE__);
			dvr_thmb_dispFullScreen(g_cdvr);
			FilelistGetPageLock();
		}
		else if (pdvr->dispMode == DISP_NO_FILE) {
    		printf("%s:%d no file mode\n", __FUNCTION__, __LINE__);
		}

		pdvr->pid = cam_pid;
	}
	return pdvr;
}
示例#12
0
void playback_reboot(int w, int h)
{

	int i, idx=0;
	int disp = 0;
	pid_t cam_pid;
	char *argv[32];
	cdvr_thmb_t *pdvr = NULL;

	argv[idx++] = strdup("/system/app/cvrplayer");
	//argv[idx++] = strdup("/media/sdcardc1/cvrplayer");
	argv[idx++] = strdup("cvrplayer");
	
	argv[idx++] = strdup("-p");
	argv[idx++] = strdup(Memory_path);
	argv[idx++] = strdup("-d");
	argv[idx++] = (char *)malloc(32);
	/*if(HDMI_Check() == 1) { // for hdmi and tv check.
		disp = 6;
	}
	else if(TV_Check() == 1) {
		disp = 4;
	}
	else */{
		disp = 0;
	}
	sprintf(argv[idx-1], "%d", disp);
	
	argv[idx++] = (char *)0;
	pipeDelete();
	public_pipeinit(playback_receive_cmd_callback);

	signal(SIGCHLD, SIG_IGN);
	if((cam_pid = fork()) <0)
	{
		perror("creat pid fail\n");
		return ;
	}
	else if(cam_pid==0)
	{
		for(i=0; i<idx-1; i++) {
			printf("%s\n", argv[i]);
		}
		execv(argv[0], &argv[1]);
	}
	else {
		for(i=0; i<idx-1; i++) {
			free(argv[i]);
		}

		pdvr = g_cdvr;
		if (pdvr->dispMode == DISP_NO_FILE) {
			pdvr->pid = cam_pid;
    		printf("%s:%d no file mode\n", __FUNCTION__, __LINE__);
		}
		usleep(500*1000);

		dvr_thmb_set_info(pdvr);
		pdvr->pUrl = NULL;
		pdvr->pPath = NULL;
		pdvr->pVideoInfo->speed = 0;
		pdvr->sclIdx = 0;
		pdvr->pVideoInfo->volume = ExtGpVideoEngineGetVolume();
		if(pdvr->pVideoInfo->volume > 8) {
			pdvr->pVideoInfo->volume = 8;
		}
		pdvr->pVideoInfo->videoMode = VIDEO_OPEN;

		pdvr->pUrl = FilelistGetFileName(0);
		pdvr->pPath = FilelistGetFilePath(0);
		FilelistGetPageLock();

		if(pdvr->dispMode == DISP_THMB_SCREEN) {
			dvr_thmb_dispPage(g_cdvr);
		}
		else {
    		printf("%s:%d init cvrplayer to FullScreen mode\n", __FUNCTION__, __LINE__);
			dvr_thmb_dispFullScreen(g_cdvr);
		}

		pdvr->pid = cam_pid;
	}
	return ;
}