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
/******************************************************************************
* FILE:    MediaRelay.h
* Description:
*    Thread receive packet interface class.
*
* Modified Code History
* Mark    Date        By            Modification Reason
*******************************************************************************
* 01    2013-5-2    Lichun    Initial creation.
******************************************************************************/
#if !defined(__UDP_STREAM_TREANS_H__)
#define __UDP_STREAM_TREANS_H__
 
#include "TypeDef.h"
#include "RtpApp.h"
#include "RtpApp2.h"
#include "librtsp.h"
#include "str.h"
#include "tool.h"
#include "StreamParse.h"
 
//#define _WRITE_FILE_
 
using namespace std;
 
class CUdpStreamTrans: public CRtpApp, public CRtpApp2
{
public:
    CUdpStreamTrans();
    ~CUdpStreamTrans();
 
    bool SetStreamTransParam(StreamTransType_E streamtype, const char *sendip, int sendport, const char *recvip, int recvport);
    void SetStreamCallBackParam(PlayCallBack2 callback, long userdata)
    {
        MediaCBFunc = callback;
        UserData = userdata;
    }
    int InitRtp(void);
private:
    //Call back function of receiving rtp
    void CBRtpRecv();    
    int HandleRecvStream(UINT8* pAFrame, UINT32 FrameSize, int PayLoadType, bool bMark);
private:
    char m_StreamSendIp[IPSTR_MAX_LEN+1];
    int m_StreamSendPort;
    char m_StreamRecvIp[IPSTR_MAX_LEN+1];
    int m_StreamRecvPort;    
 
    long UserData;        //Óû§Êý¾Ý£¬¿ÉÒÔÊǾä±ú»òÕ߯äËüÓ¦ÓÃÖ¸ÕëµØÖ·
    PlayCallBack2 MediaCBFunc;  //ýÌåÁ÷»Øµ÷º¯ÊýÖ¸Õë
 
    long m_StreamParseHandle1;
    long m_StreamParseHandle2;
    long m_StreamParseHandle3;
    int m_RecvStreamType;
    VideoStreamType_E m_eVideoStreamType;
};
 
#endif