zhangzengfei
2022-07-20 c90c3e794bdd95127d0c34ff1d9e8759d18a0445
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include "librtsp.h"
#include "RtspClient.h"
// ÕâÊǵ¼³ö±äÁ¿µÄÒ»¸öʾÀý
 
extern "C"{
 
////////////////////////////////////////////////////////////////////////////////
// º¯ÊýÃû£ºRTSPSTREAM_Open
// ÃèÊö£ºÉèÖûص÷º¯Êý¡£
// ²ÎÊý£ºrtspµØÖ·¡¢ ÂëÁ÷»Øµ÷º¯Êý¡¢Óû§Ö¸Õë
//
//
// ·µ»ØÖµ£º»á»°¾ä±ú
//  ¡£
// ËµÃ÷£º
//  ±£ÁôÔ­Ä£¿é½Ó¿Ú¡£
////////////////////////////////////////////////////////////////////////////////
long RTSPSTREAM_Open(const char *rtspurl, PlayCallBack2 streamcallback, long userdata)
{
    CRtspClient *pRtspClient = new CRtspClient();
    if (pRtspClient == NULL)
    {
        return -1;
    }
    int iret = pRtspClient->OpenRtspStream(rtspurl, streamcallback, userdata);
    if (iret < 0)
    {
        delete pRtspClient;
        pRtspClient = NULL;
        return iret;
    }
    return (long)pRtspClient;
}
 
////////////////////////////////////////////////////////////////////////////////
// º¯ÊýÃû£ºRTSPSTREAM_Contrl
// ÃèÊö£ºÉèÖûص÷º¯Êý¡£
// ²ÎÊý£º»á»°¾ä±ú£¬ ¿ØÖÆÀàÐÍ£¬ ¿ØÖƲÎÊý
//
//
// ·µ»ØÖµ£º
//  ¡£
// ËµÃ÷£º
//  ±£ÁôÔ­Ä£¿é½Ó¿Ú¡£
////////////////////////////////////////////////////////////////////////////////
long RTSPSTREAM_Contrl(long handle, int ctrltype, double ctrlparam)
{
    if(handle == 0 || handle == -1)
    {
        return RTSP_ERR_PARAM;
    }
    CRtspClient *pRtspClient = (CRtspClient *)handle;
    if (pRtspClient == NULL)
    {
        return RTSP_ERR_PARAM;
    }
    return pRtspClient->RtspContrl(ctrltype, ctrlparam);
}
 
////////////////////////////////////////////////////////////////////////////////
// º¯ÊýÃû£ºRTSPSTREAM_Close
// ÃèÊö£ºÉèÖûص÷º¯Êý¡£
// ²ÎÊý£º»á»°¾ä±ú
//
//
// ·µ»ØÖµ£º
//  ¡£
// ËµÃ÷£º
//  ±£ÁôÔ­Ä£¿é½Ó¿Ú¡£
////////////////////////////////////////////////////////////////////////////////
long RTSPSTREAM_Close(long handle)
{
    if(handle == 0 || handle == -1)
    {
        return RTSP_ERR_PARAM;
    }
    CRtspClient *pRtspClient = (CRtspClient *)handle;
    if (pRtspClient == NULL)
    {
        return RTSP_ERR_PARAM;
    }
    pRtspClient->StopRtspStream();
    
    delete pRtspClient;
    pRtspClient = NULL;
    return RTSP_ERR_OK;
}
 
}