ffmpeg: make a copy from a decoded frame (AVFrame)

家住魔仙堡 提交于 2019-12-10 10:28:33

问题


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;

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?


回答1:


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



来源:https://stackoverflow.com/questions/32083278/ffmpeg-make-a-copy-from-a-decoded-frame-avframe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!