본문

libavutil/avconfig.h을 찾을 수 없을때, av_parser_parse() 교체하기

libavutil/avconfig.h 을 찾을 수 없다고 한다면 아래 내용으로 avconfig.h를 만들어주면 된다.
/* Generated by ffconf */
#ifndef AVUTIL_AVCONFIG_H
#define AVUTIL_AVCONFIG_H
#define AV_HAVE_BIGENDIAN 0
#define AV_HAVE_FAST_UNALIGNED 1
#endif /* AVUTIL_AVCONFIG_H */

출처 : svn - Revision 92824: /trunk/deps/third_party/ffmpeg/source/config/libavutil


아래 코드들은 다음의 deprecated API를 교체하는 과정을 보여준다.
av_parser_parse() -> av_parser_parse2()
avcodec_decode_audio2() -> avcodec_decode_audio3()
avcodec_decode_video() -> avcodec_decode_video2()

* av_parser_parse() -> av_parser_parse2()
len = av_parser_parse( pv->parser, pv->context, &parser_output_buffer, &parser_output_buffer_len, in->data + pos, in->size - pos, cur, cur );
->
len = av_parser_parse2( pv->parser, pv->context, &parser_output_buffer, &parser_output_buffer_len, in->data + pos, in->size - pos, cur, cur, AV_NOPTS_VALUE );

* avcodec_decode_audio2() -> avcodec_decode_audio3()

uncompressed_len = avcodec_decode_audio2( pv->context, bufaligned, &out_size, parser_output_buffer, parser_output_buffer_len );
->
AVPacket avp;
av_init_packet( &avp );
avp.data = parser_output_buffer; 
avp.size = parser_output_buffer_len;
uncompressed_len = avcodec_decode_audio3( pv->context, bufaligned, &out_size, &avp );

* avcodec_decode_video() -> avcodec_decode_video2()

if ( avcodec_decode_video( pv->context, &frame, &got_picture, data, size ) < 0 )
->
av_init_packet( &avp );
avp.data = data;
avp.size = size; 
if ( avcodec_decode_video2( pv->context, &frame, &got_picture, &avp ) < 0 )

출처 : Changeset 2613 – HandBrake

댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.