Hi, On Wed, Jul 13, 2011 at 7:35 AM, wecing <[email protected]> wrote: > Hello, > > I have a function, get_vp(), which works like this: > if end of video file: > return NULL; > AVFrame *ret = avcodec_alloc_frame(); > fill ret with a new frame; > return ret; > > When I use it in this way, everything is ok: > AVFrame *vp = get_vp(); > while(vp != NULL) { show vp; free vp; vp = get_vp(); } > > But when I rewrote my program like this... the output is a mess: > frames I got were not in the correct order. > AVFrame *vp_a = get_vp(); AVFrame *vp_b = get_vp(); > while(vp_a != NULL) { show vp_a; free vp_a; vp_a = vp_b; vp_b = get_vp(); } > (For some formats, this works ok.)
OK, let's start with the simple test case. This should work. It sounds to me like your program is a little more complex than this and does something else wrong. Can you minimize the testcase or debug the differences between this sample code and your program? Ronald _______________________________________________ libav-api mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-api
