【发布时间】:2016-08-02 18:56:42
【问题描述】:
我目前正致力于从 FFmpeg 源代码到我的项目中实现 LZW 压缩和解压缩方法。我偶然发现的是输出缓冲区的大小(将存储压缩数据的地方)需要大于我们要压缩的输入缓冲区的大小。这与压缩本身不矛盾吗?
代码的下一部分位于ff_lzw_encode() 函数中,该函数是lzwenc.c 源文件的一部分。
if (insize * 3 > (s->bufsize - s->output_bytes) * 2)
{
printf("Size of output buffer is too small!\n");
return -1;
}
对于我的特定示例,我尝试在本地发送原始视频帧之前对其进行压缩。但是,如果我为大小为(insize * 3) / 2(将存储压缩数据)的缓冲区分配内存,那么使用send() 函数发送比发送大小为insize 的原始缓冲区不会花费更多时间吗?
【问题讨论】:
标签: ffmpeg compression libavcodec libav lzw