Open HR1025 opened 1 year ago
这个提交只是草案,不能运行;只适配了 mov write, mov read 、fmp4 write、 read 都还没有实现完整的替换, 而且其他替换部分逻辑没有严谨地检查,更多的是伪代码的方案设计.
使用 mov_sample_t
这种方式暴露内存分配的方式, 调用者如果使用双内存缓冲区作为 cache, 文件缓存作为 store; 应该是会比较好解决内存增长的问题.
我看了一下代码,
mov_sample_t
的空间连续性相当得高; 使用双内存缓冲区+文件缓存的方式应该是不会引起文件和内存的频繁交换的; 此外,mov_blocks_t
也可以使用realloc
这种现在 media-server 的方式进行实现.
https://github.com/ireader/media-server/issues/264
针对于
mov_sample_t
结构体积累导致的内存增长, 有一个特点即为单个mov_sample_t
所占用的内存空间是固定的;所以我想一下,可能使用std::vector
这种方式暴露内存分配的方式比new
的方式合适一点;所以定义了mov_blocks_t
:原型上参考的大致是 STL vector arrary.
然后再所有地方操作
mov_sample_t
的地方都使用libmov/source/mov-blocks-util.h
的接口进行操作.