- MP4文件表示数据结构:BoxTree
- 所有操作函数或算法:
- 创建box多叉树:BoxTree* mm_alloc_boxtree()
- 创建一个Box:Box* mm_alloc_box();
- 解析和获取所有box信息:int mm_find_stream_info(BoxTree* box_tree, const char* file_path);
- 仅仅解析size和type:int mm_find_stream_info_simple(BoxTree* box_tree, const char* file_path);
- 查找box,根据box的类型返回box,如果有多个,则只返回匹配的第一个box:Box* mm_get_first_box_by_name(BoxTree* box_tree, char* box_name);
- 遍历box树的所有box:void mm_traverse_box(BoxTree* box_tree);
- 释放所有内容:void mm_free_boxtree(BoxTree* box_tree);
- 注意:目前除了ftype box有较为详细的解析外,其它box仅作粗略解析,如果想较为完整的解析MP4文件,请自行扩展。
- PNG文件表示数据结构:PNG
- 所有操作函数或算法:
- 创建一个PNG结构体:PNG* png_alloc();
- 创建一个Chunk数据块结构体:Chunk* png_alloc_chunk();
- 创建一个IHDRChunk:IHDRChunk* png_alloc_ihdr_chunk();
- 创建一个PLTEChunk:PLTEChunk* png_alloc_plte_chunk();
- 解析所有Chunk:int png_find_chunk_info(PNG* png, const char* file_path);
- 遍历chunk:void png_traverse_chunk(PNG* png);
- 释放所有内容:void png_free_png(PNG* png);
- 注意:目前仅仅简单解析数据块的基本内容,如需更详细的解析,可参考PNG文件规范自行重构代码。