00001 /********** 00002 This library is free software; you can redistribute it and/or modify it under 00003 the terms of the GNU Lesser General Public License as published by the 00004 Free Software Foundation; either version 2.1 of the License, or (at your 00005 option) any later version. (See <http://www.gnu.org/copyleft/lesser.html>.) 00006 00007 This library is distributed in the hope that it will be useful, but WITHOUT 00008 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00009 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for 00010 more details. 00011 00012 You should have received a copy of the GNU Lesser General Public License 00013 along with this library; if not, write to the Free Software Foundation, Inc., 00014 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00015 **********/ 00016 // "liveMedia" 00017 // Copyright (c) 1996-2008 Live Networks, Inc. All rights reserved. 00018 // Any source that feeds into a "H264VideoRTPSink" must be of this class. 00019 // This is a virtual base class; subclasses must implement the 00020 // "currentNALUnitEndsAccessUnit()" virtual function. 00021 // C++ header 00022 00023 #ifndef _H264_VIDEO_STREAM_FRAMER_HH 00024 #define _H264_VIDEO_STREAM_FRAMER_HH 00025 00026 #ifndef _FRAMED_FILTER_HH 00027 #include "FramedFilter.hh" 00028 #endif 00029 00030 class H264VideoStreamFramer: public FramedFilter { 00031 public: 00032 virtual Boolean currentNALUnitEndsAccessUnit() = 0; 00033 // subclasses must define this function. It returns True iff the 00034 // most recently received NAL unit ends a video 'access unit' (i.e., 'frame') 00035 00036 protected: 00037 H264VideoStreamFramer(UsageEnvironment& env, FramedSource* inputSource); 00038 virtual ~H264VideoStreamFramer(); 00039 00040 private: 00041 // redefined virtual functions: 00042 virtual Boolean isH264VideoStreamFramer() const; 00043 }; 00044 00045 #endif
1.5.2