From: Andreas H. <hei...@us...> - 2003-04-27 20:56:06
|
Update of /cvsroot/xine/xine-lib/src/libffmpeg In directory sc8-pr-cvs1:/tmp/cvs-serv7842/xine-lib/src/libffmpeg Modified Files: xine_decoder.c Log Message: fixed green flashing bug for divx & postprocessing Index: xine_decoder.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/libffmpeg/xine_decoder.c,v retrieving revision 1.114 retrieving revision 1.115 diff -u -r1.114 -r1.115 --- xine_decoder.c 23 Apr 2003 18:42:39 -0000 1.114 +++ xine_decoder.c 27 Apr 2003 20:56:02 -0000 1.115 @@ -172,7 +172,7 @@ * if false: free this frame after drawing it. */ img->drawn = av_frame->reference; - + av_frame->opaque = img; av_frame->data[0]= img->base[0]; @@ -759,7 +759,7 @@ if ( (buf->decoder_flags & (BUF_FLAG_FRAME_END|BUF_FLAG_FRAME_START)) || this->is_continous) { - vo_frame_t *img; + vo_frame_t *img, *tmp_img = NULL; int free_img; int got_picture, len; int offset; @@ -866,7 +866,7 @@ if(this->av_frame->type == FF_BUFFER_TYPE_USER) { if(free_img) - img->free(img); + tmp_img = img; img = this->stream->video_out->get_frame (this->stream->video_out, this->context->width, @@ -884,6 +884,11 @@ this->av_frame->qscale_table, this->av_frame->qstride, this->pp_mode, this->pp_context, this->av_frame->pict_type); + + if(tmp_img) { + tmp_img->free(tmp_img); + tmp_img = NULL; + } } else if(this->av_frame->type != FF_BUFFER_TYPE_USER) { ff_convert_frame(this, img); |