我是靠谱客的博主 可靠微笑,最近开发中收集的这篇文章主要介绍FFmpeg avcodec_copy_context deprecated替换方案,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

新版本中FFmpeg的avcodec_copy_context被avcodec_parameters_to_context和avcodec_parameters_from_context所替代,因此需要将原本的写法修改一下。
旧API版本如下

ret = avcodec_copy_context(out_stream->codec, in_stream->codec);
if (ret < 0){
    printf("Failed to copy context from input to output stream codec contextn");
    goto end;
}
 
out_stream->codec->codec_tag = 0;
if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)
    out_stream->codec->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;

替换新API版本如下

AVCodecContext *codec_ctx = avcodec_alloc_context3(in_codec);
ret = avcodec_parameters_to_context(codec_ctx, in_stream->codecpar);
if (ret < 0){
    printf("Failed to copy in_stream codecpar to codec contextn");
	goto end;
}
 
codec_ctx->codec_tag = 0;
if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)
    codec_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
 
ret = avcodec_parameters_from_context(out_stream->codecpar, codec_ctx);
if (ret < 0){
	printf("Failed to copy codec context to out_stream codecpar contextn");
	goto end;
}

最后

以上就是可靠微笑为你收集整理的FFmpeg avcodec_copy_context deprecated替换方案的全部内容,希望文章能够帮你解决FFmpeg avcodec_copy_context deprecated替换方案所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部