RM文集格式分析之元数据单元。

在RM文件的元数据单元包括一个标签、一个描述媒体文件元数据属性的集合等信息。

元数据单元的头(Metadata Section Header)

标识元数据单元的开始。一个RM文件中由一个元数据单元。预计是在文件的最后。

MetadataSectionHeader
{
  u_int32        object_id;
  u_int32        size;
} 
object_id:元数据单元头的唯一标识符(RMMD)

size: 整个元数据的字节数。


元数据标签(Metadata Tag)

RM文件的元数据标签包含了一系列的属性。

MetadataTag
{
  u_int32        object_id;
  u_int32        object_version;
  u_int8[]        properties;
} 
object_id: 元数据标签的唯一标签(“RJMD”)

object_version: 元数据标签的版本号。

properties[ ]: 组成元数据标签的元数据属性。


元数据属性(Metadata Property Structure)

MetadataProperty
{
  u_int32        size;
  u_int32        type;
  u_int32        flags;
  u_int32        value_offset;
  u_int32        subproperties_offset;
  u_int32        num_subproperties;
  u_int32        name_length;
  u_int8[name_length]    name;
  u_int32        value_length;
  u_int8[value_length]    value;
  PropListEntry[num_subproperties]    subproperties_list;
  MetadataProperty[num_subproperties]    subproperties;
}
size: 元数据属性的字节数。

type: 数据值的类型。

flags: 描述属性。可以是只读(MPT_READONLY)、私有(MPT_PRIVATE)、描述符(MPT_TYPE_DESCRIPTOR)。


你可能感兴趣的:(StageFright,object,properties,descriptor,structure,header,list)