diff --git a/LedOK/base/ffutil.cpp b/LedOK/base/ffutil.cpp index fe03275..624f5b5 100644 --- a/LedOK/base/ffutil.cpp +++ b/LedOK/base/ffutil.cpp @@ -14,36 +14,36 @@ QString videoInfo(QByteArray url, QImage &img, int64_t *dur, AVCodecID *codec_id AVFormatContext *fmt_ctx = avformat_alloc_context(); QString err; { - if(avformat_open_input(&fmt_ctx, url.constData(), nullptr, nullptr) != 0) { + if(avformat_open_input(&fmt_ctx, url.constData(), 0, 0) != 0) { err = "Couldn't open input stream"; goto free; } - if(avformat_find_stream_info(fmt_ctx, nullptr) < 0) { + if(avformat_find_stream_info(fmt_ctx, 0) < 0) { err = "Couldn't find stream information"; goto free; } - if(dur!=nullptr) *dur = fmt_ctx->duration; + if(dur) *dur = fmt_ctx->duration; int vi_idx = -1; - for(uint ss=0; ssnb_streams; ss++) if(fmt_ctx->streams[ss]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) vi_idx = ss; + for(uint ss=0; ssnb_streams; ss++) if(fmt_ctx->streams[ss]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {vi_idx = ss; break;} if(vi_idx == -1) { err = "Didn't find a Video Stream"; goto free; } auto codecpar = fmt_ctx->streams[vi_idx]->codecpar; - if(codec_id!=nullptr) *codec_id = codecpar->codec_id; - qDebug()<<"codec_id"<codec_id<codec_id); + if(codec_id) *codec_id = codecpar->codec_id; + qDebug()<<"codecpar w h"<width<<"x"<height<<"codec_id"<codec_id<codec_id); if(av_seek_frame(fmt_ctx, -1, 1000000, AVSEEK_FLAG_BACKWARD) < 0) { err = "av_seek_frame fail"; goto free; } const AVCodec *decoder = avcodec_find_decoder(codecpar->codec_id); - if(decoder==nullptr) { + if(decoder==0) { err = "Could not found Video Decoder"; goto free; } auto vcCtx = avcodec_alloc_context3(decoder); avcodec_parameters_to_context(vcCtx, codecpar); - if(avcodec_open2(vcCtx, decoder, nullptr) < 0) { + if(avcodec_open2(vcCtx, decoder, 0) < 0) { err = "Could not open Video Codec Ctx"; avcodec_free_context(&vcCtx); goto free; diff --git a/LedOK/device/ctrltestpanel.cpp b/LedOK/device/ctrltestpanel.cpp index 8dcc4ae..2939750 100644 --- a/LedOK/device/ctrltestpanel.cpp +++ b/LedOK/device/ctrltestpanel.cpp @@ -480,9 +480,6 @@ void CtrlTestPanel::SendAnycastCmd(LedCard card, int iProgramIndex, bool isSingl send->connectToHost(QHostAddress(card.ip),31299); ST_ANSY_PROGRAM_PACKET tempStreadPakcet; - tempStreadPakcet.SyncHead[0]=0x7e; - tempStreadPakcet.SyncHead[1]=0x7e; - tempStreadPakcet.SyncHead[2]=0x55; tempStreadPakcet.ucCommType=0x97; tempStreadPakcet.iBaoLiu=0; tempStreadPakcet.iLength=4; diff --git a/LedOK/devicepanel.h b/LedOK/devicepanel.h index 2fbcf84..9d05431 100644 --- a/LedOK/devicepanel.h +++ b/LedOK/devicepanel.h @@ -41,4 +41,10 @@ signals: void sigSelectedDeviceList(); }; +struct UDPPacket { + unsigned char SyncHead[3]; + unsigned char ucCommType; + char serialCode[20]; + unsigned int iLength; +}; #endif // DEVICEPANEL_H diff --git a/LedOK/globaldefine.h b/LedOK/globaldefine.h index 24f846f..2a6fc21 100644 --- a/LedOK/globaldefine.h +++ b/LedOK/globaldefine.h @@ -31,136 +31,15 @@ enum { MainPage_End, }; -struct RESTORE_IP { - char cNewIp[20]; - char cMask[20]; - char cGateway[20]; - char cDns[20]; -}; -struct UDPPacket { - unsigned char SyncHead[3]; - unsigned char ucCommType; - char serialCode[20]; - unsigned int iLength; -}; -struct STREAM_PACKET { - unsigned char SyncHead[3]; - unsigned char ucCommType; - char ucSerialCode[20]; - unsigned int iLength; - char pDataBuffer[2049]; -}; + struct ST_ANSY_PROGRAM_PACKET { - unsigned char SyncHead[3]; + unsigned char SyncHead[3]{0x7e, 0x7e, 0x55}; unsigned char ucCommType; int iBaoLiu; unsigned int iLength; unsigned char pDataBuffer[20]; }; -enum _NET_COMMU_TYPE { - COMMAND_SAVE_ADVANCE_PARAM_NOT_RESET=0x40, - COMMAND_ONLY_RESET_CARD_IP=0X43, - COMMAND_SET_M31_DOUBLE_HUB=0X44, - COMMAND_CONNECT_COLSE =0x7A, - COMMAND_UPGRADE = 0x80, - COMMAND_SIGNLE_FILE_UPGRADE , - COMMAND_LOOPCHECK , - COMMAND_VERIFY_CLOCK , - COMMAND_SCREEN_OPERATOR,//0x84 - COMMAND_SET_SERIAL_NUM, - NET_COMMU_TYPE_PLAY_IN_LINE , // 网络同步在线播放. - NET_COMMU_TYPE_PREVIEW_IN_LINE, // 网络在线预览. - NET_COMMU_TYPE_UPGRADE_SYSTEM, // 系统升级. - NET_COMMU_TYPE_RECOVER_SYSTEM, // 系统还原到上一次正确的启动. - SCREEN_OPERATOR_COMM_PARAMS_SAVE, // 参数保存. - NET_COMMU_TYPE_COMM_EXIT,//普通退出,不重启 - NET_COMMU_TYPE_AUDIO_PLAY,//0X8C - NET_COMMU_TYPE_IO, - NET_COMMU_TYPE_IO_CHECK, - NET_COMMU_TYPE_LIMITE_TIME, - NET_COMMU_TYPE_SYSTEM_BROADCAST,//0X90 - NET_COMMU_TYPE_REALTIME_INSERT_PLAY, - - NET_COMMU_TYPE_MODIFY_SERIAL_ID, - NET_COMMU_TYPE_KERNEL_UPGRADE_SYSTEM, - NET_COMMU_TYPE_UPGRADE_FINISHED_EXIT, - NET_COMMU_TYPE_REAL_TIME_INSERT_PLAY_WITH_LIST_EXIT, - NET_COMMU_TYPE_ZNSZ,// 智能设置命令. - NET_COMMU_TYPE_SELECT_PROGRAM_PLAY,// 选节目播放.0x97 - NET_COMMU_TYPE_SELECT_MULI_PROGRAM_PLAY,//98选播多个节目 - NET_COMMU_TYPE_GET_PROGRAM_NAME,//99获取所有节目的名称 - NET_COMMU_TYPE_GET_CUR_PLAY_STATUS,//9a查询当前播放的详细信息 - NET_COMMU_TYPE_POWER_PANEL_ON_OR_OFF,//9b开关大屏幕 - NET_COMMU_TYPE_ADJUST_BRIGHTNESS,//9c调节亮度 - NET_COMMU_TYPE_GET_SYSTEM_STATUS,//9d获取系统状态 - NET_COMMU_TYPE_VERIFY_SIGN,//校验签名9e - NET_COMMU_TYPE_SET_WEB_SERVER_PARAM,//配置web服务器参数 - NET_COMMU_TYPE_GET_WEB_SERVER_PARAM,//a0 - NET_COMMU_TYPE_SET_WIFI_PARAM,//a1配置wifi参数 - NET_COMMU_TYPE_GET_WIFI_PARAM,//a2获取wifi参数 - NET_COMMU_TYPE_SCAN_AP_WIFI_PARAM,//a3获取ap热点的名称 - NET_COMMU_TYPE_GET_ANDROID=0xa4, - NET_COMMU_TYPE_INSTALL_APK=0xa5, - NET_COMMU_TYPE_UNINSTALL_APK=0xa6, - NET_COMMU_TYPE_SET_DNS=0xa7, - NET_COMMU_TYPE_GET_DNS=0xa8, - NET_COMMU_TYPE_SET_PROXY=0xa9, - NET_COMMU_TYPE_GET_PROXY=0xaa, - NET_COMMU_TYPE_SET_ANDROID_COMMUNICATION=0xab, - NET_COMMU_TYPE_GET_ANDROID_COMMUNICATION=0xac, - NET_COMMU_TYPE_GET_SIM_STATUS=0xad, - NET_COMMU_TYPE_GET_APN_PARAM=0xae, - NET_COMMU_TYPE_GET_APK_VERSION=0xaf, - NET_COMMU_TYPE_SET_REALTIME_PARAM=0xb0, - NET_COMMU_TYPE_GET_REALTIME_PARAM=0xb1, - NET_COMMU_TYPE_SET_REALTIME_LINSTEN_PARAM=0xb2, - NET_COMMU_TYPE_GET_REALTIME_LINSTEN_PARAM=0xb3, - NET_COMMU_TYPE_SET_HUAWEI_4G=0xB4, - NET_COMMU_TYPE_GET_HUAWEI_4G=0xB5, - NET_COMMU_TYPE_CLEAR_ANDROID_PROGRAM=0xB6, - NET_COMMU_TYPE_SET_AP_PARAM=0xB7, - NET_COMMU_TYPE_GET_AP_PARAM=0xB8, - GET_REALY_RESOLUTION=0xB9, - GET_REALY_ANDROID_FIRMWARE_INFO=0xBA, - NET_COMMU_TYPE_NUM, - - COMMAND_UPGRADE_ANSWER =0xC0, - COMMAND_SIGNLE_FILE_UPGRADE_ANSWER , - COMMAND_LOOPCHECK_ANSWER , - COMMAND_VERIFY_CLOCK_ANSWER , - COMMAND_SCREEN_OPERATOR_ANSWER, - COMMAND_SET_SERIAL_NUM_ANSWER, - NET_COMMU_TYPE_PLAY_IN_LINE_ANSWER , // 网络同步在线播放. - NET_COMMU_TYPE_PREVIEW_IN_LINE_ANSWER, // 网络在线预览. - NET_COMMU_TYPE_UPGRADE_SYSTEM_ANSWER, // 系统升级. - NET_COMMU_TYPE_RECOVER_SYSTEM_ANSWER, // 系统还原到上一次正确的启动. - SCREEN_OPERATOR_COMM_PARAMS_SAVE_ANSWER, - NET_COMMU_TYPE_COMM_EXIT_ANSWER, - NET_COMMU_TYPE_AUDIO_PLAY_ANSWER,//0XcC - NET_COMMU_TYPE_IO_ANSWER, - NET_COMMU_TYPE_IO_CHECK_ANSWER, - NET_COMMU_TYPE_LIMITE_TIME_ANSWER, - - NET_COMMU_TYPE_SYSTEM_BROADCAST_ANSWER, - NET_COMMU_TYPE_REALTIME_INSERT_PLAY_ANSWER, - NET_COMMU_TYPE_REALTIME_INSERT_PLAY_WITH_GLINT_ANSWER , //带闪烁功能的实时插播 - - NET_COMMU_TYPE_KERNEL_UPGRADE_SYSTEM_ANSWER, - NET_COMMU_TYPE_UPGRADE_FINISHED_EXIT_ANSWER,//0xd4 - NET_COMMU_TYPE_REAL_TIME_INSERT_PLAY_WITH_LIST_EXIT_ANSWER, - NET_COMMU_TYPE_ZNSZ_ANSWER,// 智能设置命令. - NET_COMMU_TYPE_SELECT_PROGRAM_PLAY_ANSWER,//0x97 选节目播放. - NET_COMMU_TYPE_SELECT_MULI_PROGRAM_PLAY_ANSWER, - NET_COMMU_TYPE_GET_PROGRAM_NAME_ANSWER, - NET_COMMU_TYPE_GET_CUR_PLAY_STATUS_ANSWER, - NET_COMMU_TYPE_POWER_PANEL_ON_OR_OFF_ANSWER, - NET_COMMU_TYPE_ADJUST_BRIGHTNESS_ANSWER, - NET_COMMU_TYPE_GET_SYSTEM_STATUS_ANSWER,//获取系统状态 - NET_COMMU_TYPE_NUM_ANSWER, - - COMMAND_CONNECT_COLSE_ANSWER -}; class DevicePanel; extern DevicePanel *gDevicePanel; extern QList gSelCards; diff --git a/LedOK/mainwindow.cpp b/LedOK/mainwindow.cpp index e8d6fd6..0f95914 100644 --- a/LedOK/mainwindow.cpp +++ b/LedOK/mainwindow.cpp @@ -452,7 +452,7 @@ MainWindow::MainWindow(QWidget *parent) : BaseWin(parent) { QByteArray ba("Broadcast!"); memcpy(packet.ucSerialCode, ba.data(), ba.size()); packet.iLength = 80; - packet.ucCommType = COMMAND_ONLY_RESET_CARD_IP; + packet.ucCommType = 0X43; memcpy(packet.pDataBuffer, &stTempIp, 80); packet.pDataBuffer[packet.iLength] = GetCheckCodeIn8(&packet.ucCommType,packet.iLength+sizeof(packet.ucCommType)+sizeof(char)*20+sizeof(packet.iLength)); int iLenPacket = packet.iLength+sizeof(int)+3*sizeof(unsigned char)+sizeof(char)+20*sizeof(char)+sizeof(char);/////除正文外的协议结构大小; diff --git a/LedOK/mainwindow.h b/LedOK/mainwindow.h index 353f2a5..ab2b545 100644 --- a/LedOK/mainwindow.h +++ b/LedOK/mainwindow.h @@ -43,4 +43,17 @@ private: void test(); }; +struct RESTORE_IP { + char cNewIp[20]; + char cMask[20]; + char cGateway[20]; + char cDns[20]; +}; +struct STREAM_PACKET { + unsigned char SyncHead[3]; + unsigned char ucCommType; + char ucSerialCode[20]; + unsigned int iLength; + char pDataBuffer[2049]; +}; #endif // MAINWINDOW_H diff --git a/LedOK/mguangyingpinwidget.cpp b/LedOK/mguangyingpinwidget.cpp index 71808fb..736f53f 100644 --- a/LedOK/mguangyingpinwidget.cpp +++ b/LedOK/mguangyingpinwidget.cpp @@ -1150,9 +1150,6 @@ void mGuangYingPinWidget::mymidelay(int imlsec) void mGuangYingPinWidget::MWSendCmdByUdp(unsigned char cmd,unsigned char *pUcValue,unsigned int iLength,int iCountCmd) { ST_ANSY_PROGRAM_PACKET tempStreadPakcet; - tempStreadPakcet.SyncHead[0]=0x7e; - tempStreadPakcet.SyncHead[1]=0x7e; - tempStreadPakcet.SyncHead[2]=0x55; tempStreadPakcet.ucCommType=cmd; tempStreadPakcet.iBaoLiu=iCountCmd; tempStreadPakcet.iLength=iLength; @@ -1188,9 +1185,6 @@ void mGuangYingPinWidget::MWSendCmdByUdp(unsigned char cmd,unsigned char *pUcVal void mGuangYingPinWidget::MWSendCmd(uint8_t iComIndex,unsigned char cmd,unsigned char *pUcValue,unsigned int iLength,int iCountCmd) { ST_ANSY_PROGRAM_PACKET tempStreadPakcet; - tempStreadPakcet.SyncHead[0]=0x7e; - tempStreadPakcet.SyncHead[1]=0x7e; - tempStreadPakcet.SyncHead[2]=0x55; tempStreadPakcet.ucCommType=cmd; tempStreadPakcet.iBaoLiu=iCountCmd; tempStreadPakcet.iLength=iLength;