⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.bak

📁 这个是Linux下的应用程序
💻 BAK
📖 第 1 页 / 共 3 页
字号:
#include <stdio.h>#include <stdlib.h>#include <asm/ioctl.h>#include <asm/errno.h>#include <linux/slab.h>#include <fcntl.h>#include <pthread.h>#include <string.h>#include <time.h>#include <unistd.h>                                                                                                                                                                #include "main.h"#include "typedef.h"#include "at2041reg.h"                                                                                #include "stream_server.h"/*netbsd*/#include "packet.h"//#include "netpacket/packet.h"#include "linux/if_packet.h"#include "linux/if_ether.h"#include "linux/if.h"#include "common.h"#include "hanzi_display.h"                                                                                #include "state_define.h"                                                                                #define ENV_TO_FLASH    0x1000#define CFG_ENV_SIZE    0x20000#define ENV_HEADER_SIZE (sizeof(unsigned long))#define ENV_SIZE (CFG_ENV_SIZE - ENV_HEADER_SIZE)                                                                                unsigned char env_dat_sv[CFG_ENV_SIZE];volatile unsigned long frame_number_5=0;FILE *fp,*fb;int fl;time_t t;struct tm *tm_t;char filename[50]="/mnt/nfs/";unsigned int file_state = 0;unsigned char replay_state = 0;long file_length = 0;unsigned short key_value = 0;unsigned char  input_state;unsigned char record_state=0;//uns8 image_data[6000];uns8 palette_data[80];        int i;        int ch;        int num;        uns16 *mux_data;        uns32 m,n;        uns16 rx_id;        uns16 enc_txmsg_size = 4;        uns16 key;        unsigned long decoder_size;        unsigned long stream_size;        unsigned char temp;        unsigned char string1[20];        unsigned char string0[5];        uns32 count;        uns8 y_data,u_data,v_data;        uns8 r_data,g_data,b_data;        uns8 trans_data,mode_data;        char a,b,c;        char focus_index=0;        	unsigned char file_name[10][80];        unsigned int line_count;	unsigned int line_current;	unsigned int line_sel;	//image_data[0]=5;        //image_data[1]=0;        //image_data[2]=100;        //image_data[3]=0;        //image_data[4]=100; 	unsigned char bool_state=0; #define BOOL_STATE_NONE 0x0#define BOOL_STATE_SELECT 0X01unsigned char play_state=0;#define PLAY_STOP       0X0#define PLAY_START      0X01#define PLAY_PAUSE      0X02char file_to_play[200];                                                                              /*2005-04-15 netbsd*/volatile unsigned long gop_number_1=0;volatile unsigned long frame_number_1=0;uns8 palette_data[80];int open_mykey(void){	fl = open("/dev/my_key",O_RDWR);        if(!fl)        {                printf("open device is fail !!! \n");                return 0;        }	printf("key device is normal !!!\n");	return 1;}#define KEY_UP 		0X01#define KEY_DOWN 	0X02unsigned char key_state=KEY_UP;unsigned int key_count=0;unsigned char mykey(void){	uns16 temp = 0;	read(fl,&key_value,sizeof(short));	if(key_value != 0x006f)	{		//usleep(500);		key_count++;		switch(input_state)		{		   case INPUT_RECORD:		    //if(key_count<2)                     //     return 0xff;                    break;		   case INPUT_PLAY_START:		   break;		    default:			if(key_count<100)				return 0xff;		    break;		}		read(fl,&key_value,sizeof(short));		if(key_value != 0x006f && key_state==KEY_UP)		{	key_state=KEY_DOWN;			switch(key_value)			{				case 0x004f : temp = 1;break;				case 0x002f : temp = 2;break;				case 0x0067 : temp = 3;break;				case 0x006e : temp = 4;break;				case 0x006d : temp = 5;break;				case 0x006b : temp = 6;break;				default     : temp = 0xffff;						break;			}			printf("the key value is %d\n",temp);			key_count=0;			return temp&0xff;		}		else		{			key_count=0;			return 0xff;		}	}	else	{                if( key_state==KEY_DOWN)                {                        key_state=KEY_UP;                }		temp = 0xffff;return temp&0xff;	}	}void rgb_to_yuv(uns8 R,uns8 G,uns8 B,uns8 *y,uns8 *u,uns8 *v){	double Y,U,V; 	#if 0	//Y =((0.257*R)+(0.504*G)+(0.098*B))+16;        //U =((-0.148*R)-(0.291*G)+(0.439*B))+128;        //V =((0.439*R)-(0.368*G)-(0.071*B))+128;        //#else	Y =((0.229*R)+(0.587*G)+(0.114*B));        U =0.564*(B-Y);        V =0.713*(R-Y);	//#else	//Y =((0.257*R)+(0.504*G)+(0.098*B))+16;        //Y =((0.229*R)+(0.587*G)+(0.114*B))+16;	//U=((-0.147*R)-(0.281*G)+(0.436*B))+128;        //V =((0.615*R)-(0.518*G)-(0.01*B))+128;	#else	Y =((0.229*R)+(0.587*G)+(0.114*B));        V =((-0.1687*R)-(0.3133*G)+(0.5*B))+128;        U =((0.5*R)-(0.4187*G)-(0.0813*B))+128;	#endif	//U=U+128;        //V=V+128;        if(Y>255) Y=255;        if(U>255) U=255;        if(V>255) V=255;        if(Y<0) Y=0;        if(U<0) U=0;        if(V<0) V=0;	*y=(uns8)Y;	*u=(uns8)U;	*v=(uns8)U;}void set_palette_color(uns8 trans,uns8 mode){	int i;	//int trans=0;	//int mode=0;	uns8 y_data,u_data,v_data;	//black	i=0;	rgb_to_yuv(0x0,0xff,0x0,&y_data,&u_data,&v_data);	palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=4;        palette_data[5*i+4]=mode;	//blue	i=1;        rgb_to_yuv(0,0,128,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//dark green	i=2;        rgb_to_yuv(0x00,128,128,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//dark cyan	i=3;        rgb_to_yuv(0,128,0,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//maroon	i=4;        rgb_to_yuv(128,0,0,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//purple	i=5;        rgb_to_yuv(128,0,128,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//olive	i=6;        rgb_to_yuv(128,128,0,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//light gray 	i=7;        rgb_to_yuv(192,192,192,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//dark gray	i=8;        rgb_to_yuv(128,128,128,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//blue	i=9;        rgb_to_yuv(0,0x00,250,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//green	i=10;        rgb_to_yuv(0x00,250,0x0,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//cyan	i=11;        rgb_to_yuv(0x0,255,255,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//red	i=12;        rgb_to_yuv(255,0x00,0x0,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//megenta	i=13;        rgb_to_yuv(255,0x0,255,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//yellow	i=14;        rgb_to_yuv(250,250,0x00,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;	//white	i=15;        rgb_to_yuv(250,250,250,&y_data,&u_data,&v_data);        palette_data[5*i+0]=y_data;        palette_data[5*i+1]=u_data;        palette_data[5*i+2]=v_data;        palette_data[5*i+3]=trans;        palette_data[5*i+4]=mode;}extern const unsigned char image_data0[];extern const unsigned char image_data1[];uns16 image_buffer[4000];void image_fill_data(char *image_from,char* image_to,int width,int height){    	uns16 i,j;	for(j=0; j<height; j++)	{			for(i=0;i<width;i++)		{			image_to[j*width+i]=image_from[j*width+i];			#if 0			if(i%2 == 0)			{			    image_to[j*width+i/2]=4<<(image_from[j*width+i]/27);				}			else			{			    image_to[j*width+i/2]|=(image_from[j*width+i]/27);			}				#endif		}		}}#define CREATE_FILE_OK   0x01#define CREATE_FILE_NO	 0x00/******************************************************************/// 功能:	录像////// 2007.12.18/*****************************************************************/int kinescope(void){	//osd_on_off(0,0);        encoding_stream_read(mux_data);        printf("the first word is 0x%4x\n",mux_data[0]);        if((mux_data[0] & 0x0002) != 0x0002)        {                printf("###### Stream Format is Wrong !!! ######\n");                return 0;        }        stream_size = mux_data[1]*16*2;        fwrite((mux_data +4),sizeof(unsigned short),(unsigned long)(stream_size/2),fp); }/******************************************************************************/// 功能		回放 //// 2007.12.18/*****************************************************************************/void get_file_length(void){	char replay_name[50]="/mnt/nfs/";		printf("Get file bath !!! \n");	strcat(replay_name,file_to_play);	printf("the file bath is %s\n",replay_name);		if((fp = fopen(replay_name,"r")) == NULL)	{		printf("Open file is fail !!!\n");               	return ;        }	fseek(fp,0L,SEEK_END);	file_length = ftell(fp);	fseek(fp,0L,SEEK_SET);	rx_id = RxID(0x09, 0, 0x01, W_FLAG);write_rx_fifo (rx_id);        rx_id = 4;write_rx_fifo (rx_id);        usleep(1000);        video_decoder_start(VIDEO_ONLY);	usleep(10000);	video_decoder_start(VIDEO_ONLY);	replay_state = 0;}#define REPLAY_NORMAL 0x00#define REPLAY_FAST   0x01#define REPLAY_STOP   0x02#define REPLAY_PAUSE  0x03int replay(void){	int i;	printf("replay is start !!! \n");        switch(replay_state)	{		case REPLAY_NORMAL	:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -