[Ffmpeg-devel] Problem with returned AVCodecContext

Ahmad Zaidee bin Abu zaidee
Mon Oct 3 15:32:51 CEST 2005


Hi all,

I'm quite beginner with ffmpeg. I have some problems with AVCodecContext.

I'm using C++ .Net with libavcodec/libavformat CVS 09/29/05.

In main() i do

//FFMPEG Initialization

// Register all formats and codecs

av_register_all();

avcodec_init();

avcodec_register_all();

(have to do avcodec_init & avcodec_register_all, otherwise codec not found)

AVCodecContext *CodecContext; //=NULL;

AVFrame *Picture;

CreateH263Decoder(CodecContext, Picture);

...

I used 3 functions as below:

int CreateH263Decoder(AVCodecContext *c, AVFrame *picture)

{

AVCodec *codec; 

/* find the h263 video decoder */

codec = avcodec_find_decoder(CODEC_ID_H263); 

if (!codec) {

// Codec NOT Found

return H263_NOT_FOUND; //my own error / success detection macro

}

c = avcodec_alloc_context();

picture= avcodec_alloc_frame();

if (!picture)

{

return H263_NO_MEMORY_FOR_BUFFERS; //my own error / success detection macro

}

/* open it */

if (avcodec_open(c, codec) < 0) {

//Open Failed!

return H263_OPEN_FAIL; //my own error / success detection macro

}

return H263_OK; // return ok if successful.

}

int DecodeH263(AVCodecContext *c, AVFrame *picture, unsigned char *videobuffer, int buffsize)

{

int got_picture, len;

len = avcodec_decode_video(c, picture, &got_picture, videobuffer, buffsize);

if (got_picture)

{

return H263_OK;

}

else

{

return H263_FRAMEDECOMPRESS_FAIL;

}

}

void DestroyH263Decoder(AVCodecContext *c, AVFrame *picture) {

//Close & free context and free picture (frame)

avcodec_close(c);

av_free(c);

av_free(picture);

}

When I call CreateH263Decoder, AVCodecContext reurn NULL (0). When i trace inside the function,

the value of "c" before return H263_OK;  are as expected, but value of "CodecContext" in main are not as I expected.

What could be the problem? Did I miss anything.

Thank you.

 


The information contained in this Internet message is confidential 
and intended only for the use of the individual or entity 
identified. If the reader of this message is not the intended 
recipient, any dissemination, distribution or copying of the 
information contained in this Internet message is strictly 
prohibited. If you received this message in error, please notify 
the sender immediately. 




More information about the ffmpeg-devel mailing list