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

📄 tvi_def.h

📁 君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图片解码,浏览,电子书,录音,想学ucos,识货的人就下吧 russblock fmradio explore set
💻 H
字号:
#include <mplaylib.h> /* malloc */#include <mplaylib.h> /* memset */static int init(priv_t *priv);static int uninit(priv_t *priv);static int control(priv_t *priv, int cmd, void *arg);static int start(priv_t *priv);static double grab_video_frame(priv_t *priv, char *buffer, int len);static int get_video_framesize(priv_t *priv);static double grab_audio_frame(priv_t *priv, char *buffer, int len);static int get_audio_framesize(priv_t *priv);int teletext_control(void* p, int cmd, void *arg);static tvi_functions_t functions ={    init,    uninit,    control,    start,    grab_video_frame,    get_video_framesize,    grab_audio_frame,    get_audio_framesize};static tvi_handle_t *new_handle(void){    tvi_handle_t *h = (tvi_handle_t *)malloc(sizeof(tvi_handle_t));    if (!h)	return(NULL);    h->priv = (priv_t *)malloc(sizeof(priv_t));    if (!h->priv)    {	free(h);	return(NULL);    }    memset(h->priv, 0, sizeof(priv_t));    h->functions = &functions;    h->seq = 0;    h->chanlist = -1;    h->chanlist_s = NULL;    h->norm = -1;    h->channel = -1;    h->scan = NULL;    return(h);}static void free_handle(tvi_handle_t *h){    if (h) {	if (h->priv)	    free(h->priv);	if (h->scan)	    free(h->scan);	free(h);    }}/** Fills video frame in given buffer with blue color for yv12,i420,uyvy,yuy2. Other formats will be filled with 0xC0 */static inline void fill_blank_frame(char* buffer,int len,int fmt){    int i;    // RGB(0,0,255) <-> YVU(41,110,240)     switch(fmt){    case IMGFMT_YV12:        memset(buffer, 41,4*len/6);       //Y        memset(buffer+4*len/6, 110,len/6);//V        memset(buffer+5*len/6, 240,len/6);//U        break;    case IMGFMT_I420:        memset(buffer, 41,4*len/6);       //Y        memset(buffer+4*len/6, 240,len/6);//U        memset(buffer+5*len/6, 110,len/6);//V        break;    case IMGFMT_UYVY:        for(i=0;i<len;i+=4){            buffer[i]=0xFF;            buffer[i+1]=0;            buffer[i+2]=0;            buffer[i+3]=0;	}        break;    case IMGFMT_YUY2:        for(i=0;i<len;i+=4){            buffer[i]=0;            buffer[i+1]=0xFF;            buffer[i+2]=0;            buffer[i+3]=0;	}        break;    case IMGFMT_MJPEG:        /*	This is compressed format. I don't know yet how to fill such frame with blue color.	Keeping frame unchanged.	*/        break;    default:        memset(buffer,0xC0,len);    }}

⌨️ 快捷键说明

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