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

📄 clidemo.c

📁 强大的QT,GTK的学习Demo.包含DSP驱动以及所使用库文件资源。
💻 C
字号:

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include "tmclientpu.h"

void    gmessage(int imark, char command, char* buf, int iLen);
void    ReadDataCallBack(int StockHandle, char* pPacketBuffer, int nPacketSize);

/*
 =======================================================================================================================
 *
 =======================================================================================================================
 */

int main(int argc, char ** argv)
{
    int                 i;
    int                 num;
    char                command[307];
    int                 retval, clienthandle, clienthandle2, clienthandle3, clienthandle4;
    CLIENT_VIDEOINFO    Clientinfo, Clientinfo2, Clientinfo3, Clientinfo4;
    CLIENTSHOWRECT      clientrect;
    int                 ichannelnum, iconnecttype;
    int                 iPlayTime;
    char                testmessage[128];
    char                mrserverip[256];
    int                 mrserverport;

    if(argc < 2)
    {
        printf("Usage:%s <ServerIP>[ChannelNum][ConnectType(0-tcp,1-udp,2-multicast, 3-audiodetach)][Relay Server IP]\n",
               argv[0]);
        return 0;
    }

    if(argc >= 3)
    {
        ichannelnum = atoi(argv[2]);
    }
    else
    {
        ichannelnum = 0;
    }

    if(argc >= 4)
    {
        iconnecttype = atoi(argv[3]);
    }
    else
    {
        iconnecttype = 0;
        fprintf(stderr, "Now with TCP connect!\n");
    }

    fprintf(stderr, "server:%s\n", argv[1]);
    fprintf(stderr, "argc=%d,iPlaytime=%d,ichannelnum=%d,iconnecttype=%d\n", argc, iPlayTime,
            ichannelnum, iconnecttype);

    MP4_ClientSetNetPort(5050, 6050);

    fprintf(stderr, "\n<<Type 'q' to exit!>>\n");

    clientrect.uWidth = 352;
    clientrect.uHeight = 288;

    MP4_ClientStartup(clientrect, gmessage);    /* NULL);
                                                 * */

    retval = MP4_ClientGetServerChanNum(argv[1]);
    printf("server:%s has %d channels\n", argv[1], retval);

    /* yxq test at 2004.7.20 */
    sprintf(testmessage, "this is a test message!");

    /* yxq test at 2004.8.19 */
#if 0
    if(argc >= 5)
    {
        strncpy(mrserverip, argv[4], 256);

        /*
         * fprintf(stderr,"<demo_info> want to set the mr server %s!to command relay\n",mrserverip);
         */
        MP4_ClientSetMR(mrserverip, NULL, 8050);
    }

    MP4_ClientCommandToServer(argv[1], testmessage, 128);
    for(num = 0; num < 10; num++)
    {
        sprintf(testmessage, "the times%d test message!\n", num);
        if(argc >= 5)
        {
            strncpy(mrserverip, argv[4], 256);

            /*
             * fprintf(stderr,"<demo_info> want to set the mr server %s!to command relay\n",mrserverip);
             */
            MP4_ClientSetMR(mrserverip, NULL, 8050);
        }

        MP4_ClientCommandToServer(argv[1], testmessage, 128);
    }
#endif
    usleep(100);
    Clientinfo.m_bRight = 0;                    /* yxq test at 2004.11.10 */

    /*
     * Clientinfo.m_bRight = 1;
     * yxq test at 2004.11.10
     */
    Clientinfo.m_bRemoteChannel = ichannelnum;
    Clientinfo.m_sUserName = "username1234567890";
    Clientinfo.m_sUserPassword = "userpassword1234567890";
    Clientinfo.m_bUserCheck = 1;
    switch(iconnecttype)
    {
        case 0:
            Clientinfo.m_bSendMode = PTOPTCPMODE;
            break;

        case 1:
            Clientinfo.m_bSendMode = PTOPUDPMODE;
            break;

        case 2:
            Clientinfo.m_bSendMode = MULTIMODE;
            break;

        case 3:
            Clientinfo.m_bSendMode = ONLYAUDIOMODE;
            break;

        default:
            Clientinfo.m_bSendMode = PTOPUDPMODE;
            break;
    }

    /*
     * Clientinfo.m_bSendMode = PTOPTCPMODE;
     * *Clientinfo.m_bSendMode = PTOPUDPMODE;
     * *Clientinfo.m_bSendMode = MULTIMODE;
     */
    Clientinfo.m_sIPAddress = argv[1];
    Clientinfo.subshow_x = 0;
    Clientinfo.subshow_y = 0;
    Clientinfo.subshow_uWidth = 352;
    Clientinfo.subshow_uHeight = 288;

    /* yxq test at 2004.8.16 */
    if(argc >= 5)
    {
        strncpy(mrserverip, argv[4], 256);
        fprintf(stderr, "<demo_info> want to set the mr server %s!\n", mrserverip);
        MP4_ClientSetMR(mrserverip, argv[5], 8050);
    }

    /*
     * clienthandle = MP4_ClientStart(&Clientinfo, NULL);
     */
    clienthandle = MP4_ClientStart(&Clientinfo, ReadDataCallBack);

    if(clienthandle == -1)
    {
        fprintf(stderr, "clientstart error:%x\n", MP4_ClientGetLastErrorNum());
        MP4_ClientCleanup();
        return 0;
    }

    /*
     * MP4_ClientSetDecodeQuality(clienthandle, 1);
     * ;
     * yxq test at 8.11 to connect the window's server demo channel 0
     */
#if 0
    if(Clientinfo.m_bSendMode == MULTIMODE)
        MP4_ClientSetMulticast(clienthandle, "226.0.0.10", 6000);
#endif
    MP4_ClientAudioStart(clienthandle);
    MP4_ClientAudioVolume(clienthandle, 100);
#if 0
    if(MP4_ClientStartCaptureFile(clienthandle, "yxqtest.mp4") < 0)
        fprintf(stderr, "<demo_info> start capture file failed!0x%x\n", MP4_ClientGetLastErrorNum());
#endif
    printf("====================\n");
#if 0
    /* test the ClientShut() */
    sleep(5);
    MP4_ClientShut("192.0.0.128", 0);
    printf("shut ok!\n");
#endif
    do
    {
        usleep(1000);
    } while(getc(stdin) != 'q');

    MP4_ClientAudioStop();

    MP4_ClientStopCapture(clienthandle);
    printf("-----close\n");
    retval = MP4_ClientStop(clienthandle);
    if(retval == -1)
        fprintf(stderr, "clientstop error\n");

    MP4_ClientCleanup();

    return 1;
}

/*
 =======================================================================================================================
 *
 =======================================================================================================================
 */
void gmessage(int imark, char command, char* buf, int iLen)
{
    static int  num = 0;
    fprintf(stderr, "imark = %d\n", imark);
    if(imark == 1)
    {
        num++;
        fprintf(stderr, "The No %x data is coming!buf=%s\n", num, buf);
    }
    else
    {
        fprintf(stderr, "command = %d\n", command);
    }

    return;
}

/*
 =======================================================================================================================
 *
 =======================================================================================================================
 */
void ReadDataCallBack(int StockHandle, char* pPacketBuffer, int nPacketSize)
{
}

⌨️ 快捷键说明

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