From 616171f31e7ae8125122ce8eee84db8e6c49e4b4 Mon Sep 17 00:00:00 2001 From: James Stembridge Date: Wed, 16 Apr 2003 21:02:22 +0000 Subject: disable direct rendering when the frame size output by ffmpeg is different from the one found in the header CVS patchset: 4624 CVS date: 2003/04/16 21:02:22 --- src/libffmpeg/xine_decoder.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/libffmpeg/xine_decoder.c b/src/libffmpeg/xine_decoder.c index a9446e951..6411674a7 100644 --- a/src/libffmpeg/xine_decoder.c +++ b/src/libffmpeg/xine_decoder.c @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xine_decoder.c,v 1.109 2003/04/16 18:25:58 miguelfreitas Exp $ + * $Id: xine_decoder.c,v 1.110 2003/04/16 21:02:22 jstembridge Exp $ * * xine decoder plugin using ffmpeg * @@ -144,9 +144,20 @@ static pthread_once_t once_control = PTHREAD_ONCE_INIT; static int get_buffer(AVCodecContext *context, AVFrame *av_frame){ ff_video_decoder_t * this = (ff_video_decoder_t *)context->opaque; vo_frame_t *img; + int disable = 0; if( this->context->pix_fmt != PIX_FMT_YUV420P ) { printf("ffmpeg: unsupported frame format, DR1 disabled.\n"); + disable = 1; + } + + if( this->bih.biWidth != context->width || + this->bih.biHeight != context->height ) { + printf("ffmpeg: decoded and output frame size are not equal, DR1 disabled.\n"); + disable = 1; + } + + if (disable) { this->context->get_buffer = avcodec_default_get_buffer; this->context->release_buffer = avcodec_default_release_buffer; return avcodec_default_get_buffer(context, av_frame); -- cgit v1.2.3