⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imftimecode.h

📁 image converter source code
💻 H
字号:
/////////////////////////////////////////////////////////////////////////////// Copyright (c) 2004, Industrial Light & Magic, a division of Lucas// Digital Ltd. LLC// // All rights reserved.// // Redistribution and use in source and binary forms, with or without// modification, are permitted provided that the following conditions are// met:// *       Redistributions of source code must retain the above copyright// notice, this list of conditions and the following disclaimer.// *       Redistributions in binary form must reproduce the above// copyright notice, this list of conditions and the following disclaimer// in the documentation and/or other materials provided with the// distribution.// *       Neither the name of Industrial Light & Magic nor the names of// its contributors may be used to endorse or promote products derived// from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE./////////////////////////////////////////////////////////////////////////////#ifndef INCLUDED_IMF_TIME_CODE_H#define INCLUDED_IMF_TIME_CODE_H//-----------------------------------------------------------------------------////	class TimeCode// 	// 	A TimeCode object stores time and control codes as described// 	in SMPTE standard 12M-1999.  A TimeCode object contains the// 	following fields://// 	    Time Address:////		hours			integer, range 0 - 23//		minutes			integer, range 0 - 59//		seconds			integer, range 0 - 59//		frame 			integer, range 0 - 29//// 	    Flags://// 		drop frame flag		boolean//		color frame flag	boolean//		field/phase flag	boolean//		bgf0			boolean//		bgf1			boolean//		bgf2			boolean//// 	    Binary groups for user-defined data and control codes:////		binary group 1		integer, range 0 - 15//		binary group 2		integer, range 0 - 15//		...//		binary group 8		integer, range 0 - 15////	Class TimeCode contains methods to convert between the fields//	listed above and a more compact representation where the fields//	are packed into two unsigned 32-bit integers.  In the packed//	integer representations, bit 0 is the least significant bit,//	and bit 31 is the most significant bit of the integer value.////	The time address and flags fields can be packed in three//	different ways:////	      bits	packing for	  packing for	    packing for//	    		24-frame 	  60-field 	    50-field//	    		film		  television	    television////	     0 -  3	frame units	  frame units	    frame units//	     4 -  5	frame tens	  frame tens	    frame tens//	     6		unused, set to 0  drop frame flag   unused, set to 0//	     7		unused, set to 0  color frame flag  color frame flag//	     8 - 11	seconds units	  seconds units	    seconds units//	    12 - 14	seconds tens	  seconds tens	    seconds tens//	    15		phase flag	  field/phase flag  bgf0//	    16 - 19	minutes units	  minutes units	    minutes units//	    20 - 22	minutes tens	  minutes tens	    minutes tens//	    23		bgf0		  bgf0		    bgf2//	    24 - 27	hours units	  hours units	    hours units//	    28 - 29	hours tens	  hours tens	    hours tens//	    30		bgf1		  bgf1		    bgf1//	    31		bgf2		  bgf2		    field/phase flag////	User-defined data and control codes are packed as follows:////	      bits	field////	     0 -  3	binary group 1//	     4 -  7	binary group 2//	     8 - 11	binary group 3//	    12 - 15	binary group 4//	    16 - 19	binary group 5//	    20 - 23	binary group 6//	    24 - 27	binary group 7//	    28 - 31	binary group 8////-----------------------------------------------------------------------------namespace Imf {   class TimeCode{  public:    //---------------------    // Bit packing variants    //---------------------    enum Packing    {	TV60_PACKING,		// packing for 60-field television	TV50_PACKING,		// packing for 50-field television	FILM24_PACKING		// packing for 24-frame film    };    //-------------------------------------    // Constructors and assignment operator    //-------------------------------------    TimeCode ();  // all fields set to 0 or false    TimeCode (int hours,	      int minutes,	      int seconds,	      int frame,	      bool dropFrame = false,	      bool colorFrame = false,	      bool fieldPhase = false,	      bool bgf0 = false,	      bool bgf1 = false,	      bool bgf2 = false,	      int binaryGroup1 = 0,	      int binaryGroup2 = 0,	      int binaryGroup3 = 0,	      int binaryGroup4 = 0,	      int binaryGroup5 = 0,	      int binaryGroup6 = 0,	      int binaryGroup7 = 0,	      int binaryGroup8 = 0);    TimeCode (unsigned int timeAndFlags,	      unsigned int userData = 0,	      Packing packing = TV60_PACKING);    TimeCode (const TimeCode &other);    TimeCode & operator = (const TimeCode &other);    //----------------------------    // Access to individual fields    //----------------------------    int		hours () const;    void	setHours (int value);    int		minutes () const;    void	setMinutes (int value);    int		seconds () const;    void	setSeconds (int value);    int		frame () const;    void	setFrame (int value);    bool	dropFrame () const;    void	setDropFrame (bool value);    bool	colorFrame () const;    void	setColorFrame (bool value);    bool	fieldPhase () const;    void	setFieldPhase (bool value);    bool	bgf0 () const;    void	setBgf0 (bool value);    bool	bgf1 () const;    void	setBgf1 (bool value);    bool	bgf2 () const;    void	setBgf2 (bool value);    int		binaryGroup (int group) const; // group must be between 1 and 8    void	setBinaryGroup (int group, int value);        //---------------------------------    // Access to packed representations    //---------------------------------    unsigned int	timeAndFlags (Packing packing = TV60_PACKING) const;    void		setTimeAndFlags (unsigned int value,					 Packing packing = TV60_PACKING);    unsigned int	userData () const;    void		setUserData (unsigned int value);  private:    unsigned int	_time;    unsigned int	_user;};} // namespace Imf#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -