ffmpeg:从解码的帧(AVFrame)中创建一个副本 [英] ffmpeg: make a copy from a decoded frame (AVFrame)

查看:2298
本文介绍了ffmpeg:从解码的帧(AVFrame)中创建一个副本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从一个特殊框架制作一个备份框架(AVFrame)(让我们来说说 pic )。所以,我写了

I want to make a backup frame (AVFrame) from a special frame(let's say pic). So, I have written

 AVFrame* bkf = avcodec_alloc_frame();
 memcpy(bkf,pic,sizeof(AVFrame));
 bkf->extended_data = pic->extended_data;
 bkf->linesize[0]   = pic->linesize[0];
 memcpy(bkf->data, pic->data, sizeof(pic->data));
 bkf->reordered_opaque = pic->reordered_opaque;
 bkf->sample_rate    = pic->sample_rate;
 bkf->channel_layout = pic->channel_layout;
 bkf->pkt_pts = pic->pkt_pts;
 bkf->pkt_pos = pic->pkt_pos;
 bkf->width = pic->width;
 bkf->format =  pic ->format;

pic 复制到 bkf 。但跑步后,我看到很多失真。任何想法如何从解码的框架中做出正确的复制?

to copy pic to bkf. But after running, I saw a lot of distortion. any idea how to make a correct copy from a decoded frame?

推荐答案

使用 av_frame_copy (bkf,pic)* bkf = av_frame_alloc ()。

Use av_frame_copy(bkf, pic) after allocating bkf with AVFrame *bkf = av_frame_alloc().

这篇关于ffmpeg:从解码的帧(AVFrame)中创建一个副本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆