mp4container.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:3k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  * The contents of this file are subject to the Mozilla Public
  3.  * License Version 1.1 (the "License"); you may not use this file
  4.  * except in compliance with the License. You may obtain a copy of
  5.  * the License at http://www.mozilla.org/MPL/
  6.  * 
  7.  * Software distributed under the License is distributed on an "AS
  8.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9.  * implied. See the License for the specific language governing
  10.  * rights and limitations under the License.
  11.  * 
  12.  * The Original Code is MPEG4IP.
  13.  * 
  14.  * The Initial Developer of the Original Code is Cisco Systems Inc.
  15.  * Portions created by Cisco Systems Inc. are
  16.  * Copyright (C) Cisco Systems Inc. 2001.  All Rights Reserved.
  17.  * 
  18.  * Contributor(s): 
  19.  * Dave Mackie dmackie@cisco.com
  20.  */
  21. #ifndef __MP4_CONTAINER_INCLUDED__
  22. #define __MP4_CONTAINER_INCLUDED__
  23. // base class - container of mp4 properties
  24. class MP4Container {
  25. public:
  26. MP4Container() { }
  27. virtual ~MP4Container();
  28. void AddProperty(MP4Property* pProperty);
  29. virtual void Read(MP4File* pFile);
  30. virtual void Write(MP4File* pFile);
  31. virtual void Dump(FILE* pFile, u_int8_t indent, bool dumpImplicits);
  32. MP4Property* GetProperty(u_int32_t index) {
  33. return m_pProperties[index];
  34. }
  35. // LATER MP4Property* GetProperty(const char* name); throw on error
  36. // LATER MP4Property* FindProperty(const char* name, u_int32_t* pIndex = NULL); returns NULL on error
  37. bool FindProperty(const char* name, 
  38.   MP4Property** ppProperty, u_int32_t* pIndex = NULL);
  39. void FindIntegerProperty(const char* name, 
  40. MP4Property** ppProperty, u_int32_t* pIndex = NULL);
  41. u_int64_t GetIntegerProperty(const char* name);
  42. void SetIntegerProperty(const char* name, u_int64_t value);
  43. void FindFloatProperty(const char* name, 
  44. MP4Property** ppProperty, u_int32_t* pIndex = NULL);
  45. float GetFloatProperty(const char* name);
  46. void SetFloatProperty(const char* name, float value);
  47. void FindStringProperty(const char* name, 
  48. MP4Property** ppProperty, u_int32_t* pIndex = NULL);
  49. const char* GetStringProperty(const char* name);
  50. void SetStringProperty(const char* name, const char* value);
  51. void FindBytesProperty(const char* name, 
  52. MP4Property** ppProperty, u_int32_t* pIndex = NULL);
  53. void GetBytesProperty(const char* name,
  54. u_int8_t** ppValue, u_int32_t* pValueSize);
  55. void SetBytesProperty(const char* name, 
  56. const u_int8_t* pValue, u_int32_t valueSize);
  57. protected:
  58. MP4PropertyArray m_pProperties;
  59. };
  60. #endif /* __MP4_CONTAINER_INCLUDED__ */