📄 media.hh
字号:
/**********This library is free software; you can redistribute it and/or modify it underthe terms of the GNU Lesser General Public License as published by theFree Software Foundation; either version 2.1 of the License, or (at youroption) any later version. (See <http://www.gnu.org/copyleft/lesser.html>.)This library is distributed in the hope that it will be useful, but WITHOUTANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESSFOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License formore details.You should have received a copy of the GNU Lesser General Public Licensealong with this library; if not, write to the Free Software Foundation, Inc.,59 Temple Place, Suite 330, Boston, MA 02111-1307 USA**********/// "liveMedia"// Copyright (c) 1996-2004 Live Networks, Inc. All rights reserved.// Medium// C++ header#ifndef _MEDIA_HH#define _MEDIA_HH#ifndef _LIVEMEDIA_VERSION_HH#include "liveMedia_version.hh"#endif#ifndef _BOOLEAN_HH#include "Boolean.hh"#endif#ifndef _USAGE_ENVIRONMENT_HH#include "UsageEnvironment.hh"#endif// Lots of files end up needing the following, so just #include them here:#ifndef _NET_COMMON_H#include "NetCommon.h"#endif#include <stdio.h>// The following makes the Borland compiler happy:#ifdef __BORLANDC__#define _strnicmp strnicmp#define fabsf(x) fabs(x)#endif#define mediumNameMaxLen 30class Medium {public: static Boolean lookupByName(UsageEnvironment& env, char const* mediumName, Medium*& resultMedium); static void close(UsageEnvironment& env, char const* mediumName); static void close(Medium* medium); // alternative close() method using ptrs // (has no effect if medium == NULL) UsageEnvironment& envir() const {return fEnviron;} char const* name() const {return fMediumName;} // Test for specific types of media: virtual Boolean isSource() const; virtual Boolean isSink() const; virtual Boolean isRTCPInstance() const; virtual Boolean isRTSPClient() const; virtual Boolean isRTSPServer() const; virtual Boolean isMediaSession() const; virtual Boolean isServerMediaSession() const; virtual Boolean isDarwinInjector() const;protected: Medium(UsageEnvironment& env); // abstract base class virtual ~Medium(); // instances are deleted using close() only TaskToken& nextTask() { return fNextTask; }private: friend class MediaLookupTable; UsageEnvironment& fEnviron; char fMediumName[mediumNameMaxLen]; TaskToken fNextTask;};// The structure pointed to by the "liveMediaPriv" UsageEnvironment field:class _Tables {public: static _Tables* getOurTables(UsageEnvironment& env); // returns a pointer to an "ourTables" structure (creating it if necessary) void reclaimIfPossible(); // used to delete ourselves when we're no longer used void* mediaTable; void* socketTable;protected: _Tables(UsageEnvironment& env); virtual ~_Tables();private: UsageEnvironment& fEnv;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -