文档章节

ffmpeg-avutil-fifo

shengjuntu
 shengjuntu
发布于 2016/07/03 22:21
字数 180
阅读 30
收藏 0

/* src must NOT be const as it can be a context for func that may need
 * updating (like a pointer or byte counter) */
int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size,
                          int (*func)(void *, void *, int))
{
    int total = size;
    uint32_t wndx= f->wndx;
    uint8_t *wptr= f->wptr;

    do {
        int len = FFMIN(f->end - wptr, size);
        if (func) {
            len = func(src, wptr, len);
            if (len <= 0)
                break;
        } else {
            memcpy(wptr, src, len);
            src = (uint8_t *)src + len;
        }
// Write memory barrier needed for SMP here in theory
        wptr += len;
        if (wptr >= f->end)
            wptr = f->buffer;
        wndx    += len;
        size    -= len;
    } while (size > 0);
    f->wndx= wndx;
    f->wptr= wptr;
    return total - size;
}

先看看快乐路径,就是把数据库复制到缓冲区。更新wptr指针。

memcpy(wptr, src, len);

有写爆的可能。

C:\project\bin>test_ffmpeg.exe turbojpeg.dll
adler32_code is:ef270018
space is :1024
write 556032 data to fifo
space is :-555008

 

© 著作权归作者所有

共有 人打赏支持
上一篇: ffmpeg avformat
下一篇: ffmpeg-learning-1
shengjuntu
粉丝 14
博文 85
码字总数 16753
作品 0
上海
程序员
私信 提问
关于ffmpeg的动态链接库问题

本人最近在搞FMJ播放器的东西,其中要用到ffmpeg的动态链接库,本人之前在网上通过下载ffmpeg的源码,已经成功编译过一系列的dll文件,如下:avformat-52.dll,avcodec-52.dll,avdevice-52...

linlintwl
2011/04/17
3.1K
2
最简单的基于FFmpeg的AVUtil例子 (AVLog, AVOption等)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/leixiaohua1020/article/details/46890739 本文的示例程序记录了FFmpeg的libavutil中几种工具函数的使用方法:...

雷霄骅
2015/07/18
0
0
暴风影音被加入到 FFmpeg 耻辱名单

FFmpeg是一个跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。 今年2月韩国播放软件KMPlayer被加入到FFmpeg耻辱名单中,随后网友yegle向FFmpeg举报, 指...

红薯
2009/05/29
3.3K
2
在Android NDK中使用libffmpeg.so

前面一篇文章介绍了如何在Android NDK中编译FFmpeg,发现感兴趣的朋友很是多吗,而且大家似乎总不成功。 于是我把编译好的so文件发上来,请点击此处下载。注意,这个文件是针对NEON优化编译的...

无鸯
2011/09/13
6.5K
1
利用FFmpeg和管道(pipe),解决非URL和非文件的输入形式

利用FFmpeg和管道(pipe),解决非URL和非文件的输入形式 问题描述:利用FFmpeg来解码,但是输入方式不是URL,也不是文件系统中的文件,而是内存中的buffer。 解决此问题有两个思路,首先明确...

Michael_Yuan
2012/07/10
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
2
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
3
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部