Libav
|
00001 00024 #ifndef AVFORMAT_FLV_H 00025 #define AVFORMAT_FLV_H 00026 00027 /* offsets for packed values */ 00028 #define FLV_AUDIO_SAMPLESSIZE_OFFSET 1 00029 #define FLV_AUDIO_SAMPLERATE_OFFSET 2 00030 #define FLV_AUDIO_CODECID_OFFSET 4 00031 00032 #define FLV_VIDEO_FRAMETYPE_OFFSET 4 00033 00034 /* bitmasks to isolate specific values */ 00035 #define FLV_AUDIO_CHANNEL_MASK 0x01 00036 #define FLV_AUDIO_SAMPLESIZE_MASK 0x02 00037 #define FLV_AUDIO_SAMPLERATE_MASK 0x0c 00038 #define FLV_AUDIO_CODECID_MASK 0xf0 00039 00040 #define FLV_VIDEO_CODECID_MASK 0x0f 00041 #define FLV_VIDEO_FRAMETYPE_MASK 0xf0 00042 00043 #define AMF_END_OF_OBJECT 0x09 00044 00045 enum { 00046 FLV_HEADER_FLAG_HASVIDEO = 1, 00047 FLV_HEADER_FLAG_HASAUDIO = 4, 00048 }; 00049 00050 enum { 00051 FLV_TAG_TYPE_AUDIO = 0x08, 00052 FLV_TAG_TYPE_VIDEO = 0x09, 00053 FLV_TAG_TYPE_META = 0x12, 00054 }; 00055 00056 enum { 00057 FLV_MONO = 0, 00058 FLV_STEREO = 1, 00059 }; 00060 00061 enum { 00062 FLV_SAMPLESSIZE_8BIT = 0, 00063 FLV_SAMPLESSIZE_16BIT = 1 << FLV_AUDIO_SAMPLESSIZE_OFFSET, 00064 }; 00065 00066 enum { 00067 FLV_SAMPLERATE_SPECIAL = 0, 00068 FLV_SAMPLERATE_11025HZ = 1 << FLV_AUDIO_SAMPLERATE_OFFSET, 00069 FLV_SAMPLERATE_22050HZ = 2 << FLV_AUDIO_SAMPLERATE_OFFSET, 00070 FLV_SAMPLERATE_44100HZ = 3 << FLV_AUDIO_SAMPLERATE_OFFSET, 00071 }; 00072 00073 enum { 00074 FLV_CODECID_PCM = 0, 00075 FLV_CODECID_ADPCM = 1 << FLV_AUDIO_CODECID_OFFSET, 00076 FLV_CODECID_MP3 = 2 << FLV_AUDIO_CODECID_OFFSET, 00077 FLV_CODECID_PCM_LE = 3 << FLV_AUDIO_CODECID_OFFSET, 00078 FLV_CODECID_NELLYMOSER_8KHZ_MONO = 5 << FLV_AUDIO_CODECID_OFFSET, 00079 FLV_CODECID_NELLYMOSER = 6 << FLV_AUDIO_CODECID_OFFSET, 00080 FLV_CODECID_AAC = 10<< FLV_AUDIO_CODECID_OFFSET, 00081 FLV_CODECID_SPEEX = 11<< FLV_AUDIO_CODECID_OFFSET, 00082 }; 00083 00084 enum { 00085 FLV_CODECID_H263 = 2, 00086 FLV_CODECID_SCREEN = 3, 00087 FLV_CODECID_VP6 = 4, 00088 FLV_CODECID_VP6A = 5, 00089 FLV_CODECID_SCREEN2 = 6, 00090 FLV_CODECID_H264 = 7, 00091 }; 00092 00093 enum { 00094 FLV_FRAME_KEY = 1 << FLV_VIDEO_FRAMETYPE_OFFSET, 00095 FLV_FRAME_INTER = 2 << FLV_VIDEO_FRAMETYPE_OFFSET, 00096 FLV_FRAME_DISP_INTER = 3 << FLV_VIDEO_FRAMETYPE_OFFSET, 00097 }; 00098 00099 typedef enum { 00100 AMF_DATA_TYPE_NUMBER = 0x00, 00101 AMF_DATA_TYPE_BOOL = 0x01, 00102 AMF_DATA_TYPE_STRING = 0x02, 00103 AMF_DATA_TYPE_OBJECT = 0x03, 00104 AMF_DATA_TYPE_NULL = 0x05, 00105 AMF_DATA_TYPE_UNDEFINED = 0x06, 00106 AMF_DATA_TYPE_REFERENCE = 0x07, 00107 AMF_DATA_TYPE_MIXEDARRAY = 0x08, 00108 AMF_DATA_TYPE_OBJECT_END = 0x09, 00109 AMF_DATA_TYPE_ARRAY = 0x0a, 00110 AMF_DATA_TYPE_DATE = 0x0b, 00111 AMF_DATA_TYPE_LONG_STRING = 0x0c, 00112 AMF_DATA_TYPE_UNSUPPORTED = 0x0d, 00113 } AMFDataType; 00114 00115 #endif /* AVFORMAT_FLV_H */