#ifndef _PL_RTSPCLIENT_H_ #define _PL_RTSPCLIENT_H_ #include "PipeLine.h" #include struct PL_RTSPClient_Config { std::string receivingInterfaceAddr; int desiredPortNum; bool requestStreamingOverTcp; std::string progName; std::string rtspURL; bool aux; // frame data start with 0x00000001 int verbosityLevel; int tunnelOverHTTPPortNum; // portNumBits void* args; PL_RTSPClient_Config() : receivingInterfaceAddr(), desiredPortNum(0), requestStreamingOverTcp(false), progName(), rtspURL() ,aux(true), verbosityLevel(1), tunnelOverHTTPPortNum(0), args(nullptr) { } }; struct RtspClientParam; class PL_RTSPClient : public PipeLineElem { friend void rtsp_client_frame_callback(void* arg, uint8_t* buffer, size_t buffSize, timeval presentationTime); friend void rtsp_client_continue_callback(void* arg); friend void rtsp_client_set_param_callback(void* arg, RtspClientParam& param); public: PL_RTSPClient(); virtual ~PL_RTSPClient(); virtual bool init(void* args); virtual void finit(); virtual bool pay(const PipeMaterial& pm); virtual bool gain(PipeMaterial& pm); // kill locks internal void kill(); private: void* internal; }; PipeLineElem* create_PL_RTSPClient(); #endif