diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /mp/src/public/avi/iquicktime.h | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/public/avi/iquicktime.h')
| -rw-r--r-- | mp/src/public/avi/iquicktime.h | 348 |
1 files changed, 174 insertions, 174 deletions
diff --git a/mp/src/public/avi/iquicktime.h b/mp/src/public/avi/iquicktime.h index 06ab5803..83867e74 100644 --- a/mp/src/public/avi/iquicktime.h +++ b/mp/src/public/avi/iquicktime.h @@ -1,174 +1,174 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// The copyright to the contents herein is the property of Valve, L.L.C.
-// The contents may be used and/or copied only with the written permission of
-// Valve, L.L.C., or in accordance with the terms and conditions stipulated in
-// the agreement/contract under which the contents have been supplied.
-//
-//=============================================================================
-
-#ifndef IQUICKTIME_H
-#define IQUICKTIME_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-
-#include "appframework/IAppSystem.h"
-
-//-----------------------------------------------------------------------------
-// Forward declarations
-//-----------------------------------------------------------------------------
-struct BGR888_t;
-class IMaterial;
-
-
-//-----------------------------------------------------------------------------
-// Handle to a QUICKTIME
-//-----------------------------------------------------------------------------
-typedef unsigned short QUICKTIMEHandle_t;
-enum
-{
- QUICKTIMEHANDLE_INVALID = (QUICKTIMEHandle_t)~0
-};
-
-
-//-----------------------------------------------------------------------------
-// Handle to an QUICKTIME material
-//-----------------------------------------------------------------------------
-typedef unsigned short QUICKTIMEMaterial_t;
-enum
-{
- QUICKTIMEMATERIAL_INVALID = (QUICKTIMEMaterial_t)~0
-};
-
-typedef unsigned int MovieHandle_t;
-const MovieHandle_t cInvalidMovieHandle = (MovieHandle_t) ~0;
-
-enum eVideoSystemStatus
-{
- cVideoSystem_OK = 0,
- cVideoSystem_NotInstalled,
- cVideoSystem_NotCurrentVersion,
- cVideoSystem_InitializationError,
-
- cVideoSystem_ForceInt32 = 0x7FFFFFFF // Make sure eNum is (at least) an int32
-};
-
-
-enum eVideoSystemFeatures
-{
- cVideoSystem_NoFeatures = 0x00000000,
- cVideoSystem_PlayMoviesFromFile = 0x00000001,
- cVideoSystem_RenderVideoFrameToMaterial = 0x00000002,
- cVideoSystem_EncodeVideoToFile = 0x00000010,
- cVideoSystem_EncodeAudioToFile = 0x00000020,
-
- cVideoSystem_ForceInt32a = 0x7FFFFFFF
-};
-
-DEFINE_ENUM_BITWISE_OPERATORS( eVideoSystemFeatures );
-
-enum eVideoEncodeQuality
-{
- cVEQuality_Min = 0,
- cVEQuality_Low = 25,
- cVEQuality_Normal = 50,
- cVEQuality_High = 75,
- cVEQuality_Max = 100
-};
-
-// -----------------------------------------------------------------------
-// eVideoFrameFormat_t - bit format for quicktime video frames
-// -----------------------------------------------------------------------
-enum eVideoFrameFormat_t
-{
- cVFF_Undefined = 0,
- cVFF_R8G8B8A8_32Bit,
- cVFF_R8G8B8_24Bit,
-
- cVFF_Count, // Auto list counter
- cVFF_ForceInt32 = 0x7FFFFFFF // Make sure eNum is (at least) an int32
-};
-
-// -----------------------------------------------------------------------
-// eAudioSourceFormat_t - Audio encoding source options
-// -----------------------------------------------------------------------
-enum eAudioSourceFormat_t
-{
- cASF_Undefined = 0,
- cASF_None,
- cASF_16BitPCMStereo,
-
- cASF_Count, // Auto list counter
- cASF_ForceInt32 = 0x7FFFFFFF // Make sure eNum is (at least) an int32
-};
-
-
-
-//-----------------------------------------------------------------------------
-// IQuickTimeMovieMaker interface
-//-----------------------------------------------------------------------------
-class IQuickTimeMovieMaker : public IBaseInterface
-{
-public:
- virtual bool CreateNewMovieFile( MovieHandle_t &theMovie, const char *pFilename, int nWidth, int nHeight, int nFps, eVideoEncodeQuality quality, eAudioSourceFormat_t srcAudioFormat = cASF_None, int audioSampleRate = 0 ) = 0;
- virtual bool AppendVideoFrame( MovieHandle_t theMovie, unsigned char *pFrame ) = 0;
- virtual bool AppendAudioSamples( MovieHandle_t theMovie, void *sampleBuffer, size_t sampleSize ) = 0;
- virtual bool FinishMovie( MovieHandle_t theMovie, bool success = true ) = 0;
-};
-
-//-----------------------------------------------------------------------------
-// Main QUICKTIME interface
-//-----------------------------------------------------------------------------
-#define QUICKTIME_INTERFACE_VERSION "IQuickTime002"
-
-class IQuickTime : public IAppSystem
-{
-public:
- virtual bool IsVideoSystemAvailable() = 0;
- virtual eVideoSystemStatus GetVideoSystemStatus() = 0;
- virtual eVideoSystemFeatures GetVideoSystemFeatures() = 0;
-
- // Create/destroy a QUICKTIME material (a materialsystem IMaterial)
- virtual QUICKTIMEMaterial_t CreateMaterial( const char *pMaterialName, const char *pFileName, const char *pPathID ) = 0;
- virtual void DestroyMaterial( QUICKTIMEMaterial_t hMaterial ) = 0;
-
- // Create/destroy a quicktime movie maker, which will encode audio/video
- virtual IQuickTimeMovieMaker *CreateMovieMaker() = 0;
- virtual void DestroyMovieMaker( IQuickTimeMovieMaker *&pMovieMaker ) = 0;
-
- // Update the frame (if necessary)
- virtual bool Update( QUICKTIMEMaterial_t hMaterial ) = 0;
-
- // Gets the IMaterial associated with an BINK material
- virtual IMaterial* GetMaterial( QUICKTIMEMaterial_t hMaterial ) = 0;
-
- // Returns the max texture coordinate of the BINK
- virtual void GetTexCoordRange( QUICKTIMEMaterial_t hMaterial, float *pMaxU, float *pMaxV ) = 0;
-
- // Returns the frame size of the QUICKTIME Image Frame (stored in a subrect of the material itself)
- virtual void GetFrameSize( QUICKTIMEMaterial_t hMaterial, int *pWidth, int *pHeight ) = 0;
-
- // Returns the frame rate of the QUICKTIME
- virtual int GetFrameRate( QUICKTIMEMaterial_t hMaterial ) = 0;
-
- // Sets the frame for an BINK material (use instead of SetTime)
- virtual void SetFrame( QUICKTIMEMaterial_t hMaterial, float flFrame ) = 0;
-
- // Returns the total frame count of the BINK
- virtual int GetFrameCount( QUICKTIMEMaterial_t hMaterial ) = 0;
-
- virtual bool SetSoundDevice( void *pDevice ) = 0;
-
- // Plays a given MOV file until it completes or the user presses ESC, SPACE, or ENTER
- virtual void PlayQuicktimeVideo( const char *filename, void *mainWindow, int windowWidth, int windowHeight, int desktopWidth, int desktopHeight, bool windowed, float forcedMinTime ) = 0;
-
- // Estimates the size of a recorded movie
- virtual bool EstimateMovieSize( unsigned long &EstSize, int nWidth, int nHeight, int nFps, float duration, eVideoEncodeQuality quality, eAudioSourceFormat_t srcAudioFormat = cASF_None, int audioSampleRate = 0 ) = 0;
-
-};
-
-
-#endif // IQUICKTIME_H
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// The copyright to the contents herein is the property of Valve, L.L.C. +// The contents may be used and/or copied only with the written permission of +// Valve, L.L.C., or in accordance with the terms and conditions stipulated in +// the agreement/contract under which the contents have been supplied. +// +//============================================================================= + +#ifndef IQUICKTIME_H +#define IQUICKTIME_H + +#ifdef _WIN32 +#pragma once +#endif + + +#include "appframework/IAppSystem.h" + +//----------------------------------------------------------------------------- +// Forward declarations +//----------------------------------------------------------------------------- +struct BGR888_t; +class IMaterial; + + +//----------------------------------------------------------------------------- +// Handle to a QUICKTIME +//----------------------------------------------------------------------------- +typedef unsigned short QUICKTIMEHandle_t; +enum +{ + QUICKTIMEHANDLE_INVALID = (QUICKTIMEHandle_t)~0 +}; + + +//----------------------------------------------------------------------------- +// Handle to an QUICKTIME material +//----------------------------------------------------------------------------- +typedef unsigned short QUICKTIMEMaterial_t; +enum +{ + QUICKTIMEMATERIAL_INVALID = (QUICKTIMEMaterial_t)~0 +}; + +typedef unsigned int MovieHandle_t; +const MovieHandle_t cInvalidMovieHandle = (MovieHandle_t) ~0; + +enum eVideoSystemStatus +{ + cVideoSystem_OK = 0, + cVideoSystem_NotInstalled, + cVideoSystem_NotCurrentVersion, + cVideoSystem_InitializationError, + + cVideoSystem_ForceInt32 = 0x7FFFFFFF // Make sure eNum is (at least) an int32 +}; + + +enum eVideoSystemFeatures +{ + cVideoSystem_NoFeatures = 0x00000000, + cVideoSystem_PlayMoviesFromFile = 0x00000001, + cVideoSystem_RenderVideoFrameToMaterial = 0x00000002, + cVideoSystem_EncodeVideoToFile = 0x00000010, + cVideoSystem_EncodeAudioToFile = 0x00000020, + + cVideoSystem_ForceInt32a = 0x7FFFFFFF +}; + +DEFINE_ENUM_BITWISE_OPERATORS( eVideoSystemFeatures ); + +enum eVideoEncodeQuality +{ + cVEQuality_Min = 0, + cVEQuality_Low = 25, + cVEQuality_Normal = 50, + cVEQuality_High = 75, + cVEQuality_Max = 100 +}; + +// ----------------------------------------------------------------------- +// eVideoFrameFormat_t - bit format for quicktime video frames +// ----------------------------------------------------------------------- +enum eVideoFrameFormat_t +{ + cVFF_Undefined = 0, + cVFF_R8G8B8A8_32Bit, + cVFF_R8G8B8_24Bit, + + cVFF_Count, // Auto list counter + cVFF_ForceInt32 = 0x7FFFFFFF // Make sure eNum is (at least) an int32 +}; + +// ----------------------------------------------------------------------- +// eAudioSourceFormat_t - Audio encoding source options +// ----------------------------------------------------------------------- +enum eAudioSourceFormat_t +{ + cASF_Undefined = 0, + cASF_None, + cASF_16BitPCMStereo, + + cASF_Count, // Auto list counter + cASF_ForceInt32 = 0x7FFFFFFF // Make sure eNum is (at least) an int32 +}; + + + +//----------------------------------------------------------------------------- +// IQuickTimeMovieMaker interface +//----------------------------------------------------------------------------- +class IQuickTimeMovieMaker : public IBaseInterface +{ +public: + virtual bool CreateNewMovieFile( MovieHandle_t &theMovie, const char *pFilename, int nWidth, int nHeight, int nFps, eVideoEncodeQuality quality, eAudioSourceFormat_t srcAudioFormat = cASF_None, int audioSampleRate = 0 ) = 0; + virtual bool AppendVideoFrame( MovieHandle_t theMovie, unsigned char *pFrame ) = 0; + virtual bool AppendAudioSamples( MovieHandle_t theMovie, void *sampleBuffer, size_t sampleSize ) = 0; + virtual bool FinishMovie( MovieHandle_t theMovie, bool success = true ) = 0; +}; + +//----------------------------------------------------------------------------- +// Main QUICKTIME interface +//----------------------------------------------------------------------------- +#define QUICKTIME_INTERFACE_VERSION "IQuickTime002" + +class IQuickTime : public IAppSystem +{ +public: + virtual bool IsVideoSystemAvailable() = 0; + virtual eVideoSystemStatus GetVideoSystemStatus() = 0; + virtual eVideoSystemFeatures GetVideoSystemFeatures() = 0; + + // Create/destroy a QUICKTIME material (a materialsystem IMaterial) + virtual QUICKTIMEMaterial_t CreateMaterial( const char *pMaterialName, const char *pFileName, const char *pPathID ) = 0; + virtual void DestroyMaterial( QUICKTIMEMaterial_t hMaterial ) = 0; + + // Create/destroy a quicktime movie maker, which will encode audio/video + virtual IQuickTimeMovieMaker *CreateMovieMaker() = 0; + virtual void DestroyMovieMaker( IQuickTimeMovieMaker *&pMovieMaker ) = 0; + + // Update the frame (if necessary) + virtual bool Update( QUICKTIMEMaterial_t hMaterial ) = 0; + + // Gets the IMaterial associated with an BINK material + virtual IMaterial* GetMaterial( QUICKTIMEMaterial_t hMaterial ) = 0; + + // Returns the max texture coordinate of the BINK + virtual void GetTexCoordRange( QUICKTIMEMaterial_t hMaterial, float *pMaxU, float *pMaxV ) = 0; + + // Returns the frame size of the QUICKTIME Image Frame (stored in a subrect of the material itself) + virtual void GetFrameSize( QUICKTIMEMaterial_t hMaterial, int *pWidth, int *pHeight ) = 0; + + // Returns the frame rate of the QUICKTIME + virtual int GetFrameRate( QUICKTIMEMaterial_t hMaterial ) = 0; + + // Sets the frame for an BINK material (use instead of SetTime) + virtual void SetFrame( QUICKTIMEMaterial_t hMaterial, float flFrame ) = 0; + + // Returns the total frame count of the BINK + virtual int GetFrameCount( QUICKTIMEMaterial_t hMaterial ) = 0; + + virtual bool SetSoundDevice( void *pDevice ) = 0; + + // Plays a given MOV file until it completes or the user presses ESC, SPACE, or ENTER + virtual void PlayQuicktimeVideo( const char *filename, void *mainWindow, int windowWidth, int windowHeight, int desktopWidth, int desktopHeight, bool windowed, float forcedMinTime ) = 0; + + // Estimates the size of a recorded movie + virtual bool EstimateMovieSize( unsigned long &EstSize, int nWidth, int nHeight, int nFps, float duration, eVideoEncodeQuality quality, eAudioSourceFormat_t srcAudioFormat = cASF_None, int audioSampleRate = 0 ) = 0; + +}; + + +#endif // IQUICKTIME_H |