00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _AP4_HDLR_ATOM_H_
00030 #define _AP4_HDLR_ATOM_H_
00031
00032
00033
00034
00035 #include "Ap4Atom.h"
00036 #include "Ap4String.h"
00037
00038
00039
00040
00041 class AP4_ByteStream;
00042
00043
00044
00045
00046 const AP4_UI32 AP4_HANDLER_TYPE_SOUN = AP4_ATOM_TYPE('s','o','u','n');
00047 const AP4_UI32 AP4_HANDLER_TYPE_VIDE = AP4_ATOM_TYPE('v','i','d','e');
00048 const AP4_UI32 AP4_HANDLER_TYPE_HINT = AP4_ATOM_TYPE('h','i','n','t');
00049 const AP4_UI32 AP4_HANDLER_TYPE_MDIR = AP4_ATOM_TYPE('m','d','i','r');
00050 const AP4_UI32 AP4_HANDLER_TYPE_TEXT = AP4_ATOM_TYPE('t','e','x','t');
00051 const AP4_UI32 AP4_HANDLER_TYPE_TX3G = AP4_ATOM_TYPE('t','x','3','g');
00052 const AP4_UI32 AP4_HANDLER_TYPE_JPEG = AP4_ATOM_TYPE('j','p','e','g');
00053 const AP4_UI32 AP4_HANDLER_TYPE_ODSM = AP4_ATOM_TYPE('o','d','s','m');
00054 const AP4_UI32 AP4_HANDLER_TYPE_SDSM = AP4_ATOM_TYPE('s','d','s','m');
00055
00056
00057
00058
00059 class AP4_HdlrAtom : public AP4_Atom
00060 {
00061 public:
00062
00063 static AP4_HdlrAtom* Create(AP4_Size size, AP4_ByteStream& stream);
00064
00065
00066 AP4_HdlrAtom(AP4_UI32 hdlr_type, const char* hdlr_name);
00067 virtual AP4_Result InspectFields(AP4_AtomInspector& inspector);
00068 virtual AP4_Result WriteFields(AP4_ByteStream& stream);
00069
00070 AP4_UI32 GetHandlerType() { return m_HandlerType; }
00071 AP4_String GetHandlerName() { return m_HandlerName; }
00072
00073 private:
00074
00075 AP4_HdlrAtom(AP4_UI32 size,
00076 AP4_UI32 version,
00077 AP4_UI32 flags,
00078 AP4_ByteStream& stream);
00079
00080
00081 AP4_UI32 m_HandlerType;
00082 AP4_String m_HandlerName;
00083 };
00084
00085 #endif // _AP4_HDLR_ATOM_H_