liveMedia/include/MPEG1or2VideoStreamFramer.hh

Go to the documentation of this file.
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-2012 Live Networks, Inc.  All rights reserved.
00018 // A filter that breaks up an MPEG 1 or 2 video elementary stream into
00019 //   frames for: Video_Sequence_Header, GOP_Header, Picture_Header
00020 // C++ header
00021 
00022 #ifndef _MPEG_1OR2_VIDEO_STREAM_FRAMER_HH
00023 #define _MPEG_1OR2_VIDEO_STREAM_FRAMER_HH
00024 
00025 #ifndef _MPEG_VIDEO_STREAM_FRAMER_HH
00026 #include "MPEGVideoStreamFramer.hh"
00027 #endif
00028 
00029 class MPEG1or2VideoStreamFramer: public MPEGVideoStreamFramer {
00030 public:
00031   static MPEG1or2VideoStreamFramer*
00032       createNew(UsageEnvironment& env, FramedSource* inputSource,
00033                 Boolean iFramesOnly = False,
00034                 double vshPeriod = 5.0
00035                 /* how often (in seconds) to inject a Video_Sequence_Header,
00036                    if one doesn't already appear in the stream */);
00037 
00038 protected:
00039   MPEG1or2VideoStreamFramer(UsageEnvironment& env,
00040                             FramedSource* inputSource,
00041                             Boolean iFramesOnly, double vshPeriod,
00042                             Boolean createParser = True);
00043       // called only by createNew(), or by subclass constructors
00044   virtual ~MPEG1or2VideoStreamFramer();
00045 
00046 private:
00047   // redefined virtual functions:
00048   virtual Boolean isMPEG1or2VideoStreamFramer() const;
00049 
00050 private:
00051   double getCurrentPTS() const;
00052 
00053   friend class MPEG1or2VideoStreamParser; // hack
00054 };
00055 
00056 #endif

Generated on Thu May 17 07:11:46 2012 for live by  doxygen 1.5.2