ivideo/videodecode.h
Go to the documentation of this file.00001 /* 00002 Copyright (C) 2011 by Alin Baciu 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License as published by the Free Software Foundation; either 00007 version 2 of the License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public 00015 License along with this library; if not, write to the Free 00016 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00017 */ 00018 #ifndef __CS_VIDEO_VIDEODECODE_H__ 00019 #define __CS_VIDEO_VIDEODECODE_H__ 00020 00029 #include "csutil/ref.h" 00030 #include "csutil/scf.h" 00031 #include "csutil/threadmanager.h" 00032 00033 struct iTextureHandle; 00034 struct iSndSysStream; 00035 00036 namespace CS { 00037 namespace Media { 00038 00042 struct MediaLanguage 00043 { 00047 csString name; 00048 00052 csString path; 00053 00055 MediaLanguage (const char* name, const char* path) 00056 : name (name), path (path) 00057 {} 00058 }; 00059 00063 struct iMedia : public virtual iBase 00064 { 00065 SCF_INTERFACE (iMedia,0,1,0); 00066 00070 virtual const char* GetName () const = 0; 00071 00075 virtual const char* GetType () const = 0; 00076 00080 virtual float GetDuration () const = 0; 00081 }; 00082 00086 struct iVideoMedia : public iMedia 00087 { 00088 SCF_INTERFACE (iVideoMedia,0,1,0); 00089 00093 virtual float GetAspectRatio () const = 0; 00094 00098 virtual double GetTargetFPS () const = 0; 00099 }; 00100 00106 struct iMediaContainer : public virtual iBase 00107 { 00108 SCF_INTERFACE (iMediaContainer,0,1,0); 00109 00116 virtual size_t GetMediaCount () const = 0; 00117 00122 virtual iMedia* GetMedia (size_t index) = 0; 00123 00127 virtual const char* GetDescription () const = 0; 00128 00132 virtual size_t GetLanguageCount () const = 0; 00133 00139 virtual const MediaLanguage& GetLanguage (size_t index) const = 0; 00140 00144 virtual void AddLanguage (const MediaLanguage& language) = 0; 00145 00156 virtual void SetActiveStream (size_t index) = 0; 00157 00162 virtual bool RemoveActiveStream (size_t index) = 0; 00163 00168 virtual void AutoActivateStreams () = 0; 00169 00174 virtual iTextureHandle* GetTargetTexture () = 0; 00175 00180 virtual iSndSysStream* GetTargetAudio () = 0; 00181 00185 virtual void Update () = 0; 00186 00190 virtual bool Eof () const = 0; 00191 00195 virtual void SetPosition (float time) = 0; 00196 00200 virtual float GetPosition () const = 0; 00201 00205 virtual float GetDuration () const = 0; 00206 00211 virtual void SwapBuffers () = 0; 00212 00216 virtual void WriteData () = 0; 00217 00221 virtual void SetCacheSize (size_t size) = 0; 00222 00226 virtual float GetAspectRatio () = 0; 00227 00231 virtual void DropFrame () = 0; 00232 00237 virtual void SetCurrentLanguage (const char* identifier) = 0; 00238 00242 virtual void OnPause () = 0; 00243 00247 virtual void OnPlay () = 0; 00248 00252 virtual void OnStop () = 0; 00253 00255 }; 00256 00260 struct iMediaLoader : public virtual iBase 00261 { 00262 SCF_INTERFACE (iMediaLoader,0,1,0); 00263 00274 virtual csPtr<iMediaContainer> LoadMedia (const char* pFileName, 00275 const char* pDescription = 0) = 0; 00276 }; 00277 00282 struct iMediaPlayer : public virtual iBase 00283 { 00284 SCF_INTERFACE (iMediaPlayer,0,1,0); 00285 00291 virtual void InitializePlayer (iMediaContainer* media) = 0; 00292 00297 virtual void SetCacheSize (size_t size) = 0; 00298 00303 virtual void SetActiveStream (int index) = 0; 00304 00309 virtual void RemoveActiveStream (int index) = 0; 00310 00315 virtual iTextureHandle* GetTargetTexture () = 0; 00316 00321 virtual iSndSysStream* GetTargetAudio () = 0; 00322 00326 virtual void UpdatePlayer () = 0; 00327 00331 virtual void Play () = 0; 00332 00336 virtual void Pause () = 0; 00337 00341 virtual void Stop () = 0; 00342 00346 virtual bool IsPlaying () = 0; 00347 00351 virtual void SetPosition (float time) = 0; 00352 00356 virtual float GetPosition () const = 0; 00357 00361 virtual float GetDuration () const = 0; 00362 00364 virtual void SetCyclic (bool cyclic) = 0; 00365 00367 virtual bool GetCyclic () const = 0; 00368 00372 virtual float GetAspectRatio () = 0; 00373 00377 virtual void SetCurrentLanguage (const char* identifier) = 0; 00378 }; 00379 00380 } // namespace Media 00381 } // namespace CS 00382 00385 #endif // __CS_VIDEO_VIDEODECODE_H__
Generated for Crystal Space 2.1 by doxygen 1.6.1
