注: 这个是我在工作开发中的 只言片语, 只作为自己的临时记忆.
void av_register_all(void)
>>> avcodec_register_all();
/* hardware accelerators */
>>>> REGISTER_HWACCEL (H263_VAAPI, h263_vaapi);
......
/* video codecs */
REGISTER_ENCODER (A64MULTI, a64multi);
#define REGISTER_ENCODER(X,x) { \
extern AVCodec ff_##x##_encoder; \
if(CONFIG_##X##_ENCODER) avcodec_register(&ff_##x##_encoder); }
void avcodec_register(AVCodec *codec)
{
AVCodec **p;
avcodec_init();
p = &first_avcodec; <-------------放到first_avcodec这个链表中.
while (*p != NULL) p = &(*p)->next;
*p = codec;
codec->next = NULL;
if (codec->init_static_data)
codec->init_static_data(codec);
}
===========================================
ggcode_dhplayer 中的 pcm decode
构造函数:
DhAudioDecoder::DhAudioDecoder()
{
audio_decode_init(&adpcm); >>>>
{
avcodec_init();
avcodec_register_all();
codec = avcodec_find_decoder(CODEC_ID_ADPCM_IMA_WAV);
if (!codec) {
printf( "codec not found\n");
return 0;
}
*c= avcodec_alloc_context();
if (avcodec_open(*c, codec) < 0) {
printf( "could not open codec\n");
return 0;
}
}
}
干活的:
len = avcodec_decode_audio(c, (short *)outbuf, &out_size,
inbuf_ptr, size);
析构函数:
if (adpcm != NULL)
{
avcodec_close(adpcm);
adpcm = NULL;
}
==============================================================================================
============================================================================================================================================================================================
============================================================================================================================================================================================
==============================================================================================
============================================================================================================================================================================================
==============================================================================================
==============================================================================================
============================================================================================================================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
============================================================================================================================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
============================================================================================================================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
============================================================================================================================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
============================================================================================================================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
============================================================================================================================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
============================================================================================================================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================
==============================================================================================