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

📄 mjpeg_drv.cpp

📁 ActiveX Setup Server Version 2.0.5 Chipsbrain Engineer Final Release
💻 CPP
字号:
#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/ioctl.h>#include <string.h>#include <unistd.h>#include "def.h"#include "mjpeg_drv.h"//#include "ioc_cmd.h"#include "ncplus_mjpeg.h"#include "debug.h"CMjpegDriver::CMjpegDriver(){	m_iDriverFd = -1;	m_JpegMode = _c0;	m_ImageQuality = _normal;}CMjpegDriver::~CMjpegDriver(){	Stop();	Close();}bool CMjpegDriver::Open(char * pszPath, int iFlag){	m_iDriverFd = open(pszPath, iFlag);	if(m_iDriverFd == -1)		return false;	return true;}bool CMjpegDriver::Close(){	if(!close(m_iDriverFd))		return true;	else		return false;}int CMjpegDriver::Read(char * pBuff, int iSize){	int iReadSize = 0;	do{		iReadSize = read(m_iDriverFd, pBuff, iSize);	}while(iReadSize <= 0);		return iReadSize;}int CMjpegDriver::Reset(){	return ioctl(m_iDriverFd, MJPEG_IOCRESET);}int CMjpegDriver::Stop(){	return ioctl(m_iDriverFd, MJPEG_IOCSTOP);}int CMjpegDriver::YuvFormat(int iMode){	if(iMode < _q0 || iMode > _v2)		return 0;	m_JpegMode = (JPEG_MODE)iMode;	return ioctl(m_iDriverFd, MJPEG_IOCTRESOL, m_JpegMode);}int CMjpegDriver::YuvFormat(char * pszSize, char * pszColorMode){	int iMode = -1;		if(strcmp(pszSize, "160*120") == 0){		if(strcmp(pszColorMode, "yuv420") == 0)			iMode = 0;		else			iMode = 1;	}	else if(strcmp(pszSize, "320*240") == 0){		if(strcmp(pszColorMode, "yuv420") == 0)			iMode = 2;		else			iMode = 3;	}	else if(strcmp(pszSize, "640*480") == 0){		if(strcmp(pszColorMode, "yuv420") == 0)			iMode = 4;		else			iMode = 5;	}	return YuvFormat(iMode);}int CMjpegDriver::Quality(int iAlpha){	m_ImageQuality = (IMAGE_QUALITY)iAlpha;	OutputDebugString("quality : ", m_ImageQuality);	return ioctl(m_iDriverFd, MJPEG_IOCTALPHA, m_ImageQuality);//	return 0;}int CMjpegDriver::Quality(char * pszAlpha){	int iAlpha = 0;		if(strcmp(pszAlpha, "better") == 0)		iAlpha = 32;	else if(strcmp(pszAlpha, "normal") == 0)		iAlpha = 64;	else if(strcmp(pszAlpha, "lower") == 0)		iAlpha = 128;	else if(strcmp(pszAlpha, "fast") == 0)		iAlpha = 256;	else if(strcmp(pszAlpha, "fastest") == 0)		iAlpha = 512;	return Quality(iAlpha);}int CMjpegDriver::JpegRotate(int iRotate) {	m_JpegRotate = iRotate;	return ioctl(m_iDriverFd, MJPEG_IOCTROTATE, m_JpegRotate);}int CMjpegDriver::GetJpegMode(){	m_JpegMode = (JPEG_MODE)ioctl(m_iDriverFd, MJPEG_IOCQRESOL);	return (int)m_JpegMode;}int CMjpegDriver::GetImageQuality(){	m_ImageQuality = (IMAGE_QUALITY)ioctl(m_iDriverFd, MJPEG_IOCQALPHA);	return (int)m_ImageQuality;}int CMjpegDriver::GetJpegRotate(){	m_JpegRotate = ioctl(m_iDriverFd, MJPEG_IOCQROTATE);	return (int)m_JpegRotate;}

⌨️ 快捷键说明

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