# HG changeset patch # User bcoudurier # Date 1163671114 0 # Node ID be94e97ecb6e6566b98d6821a7d36b540e67c9b2 # Parent 8c28f03cfdd521331ff4d5bd3977e351e5ddf047 throw error if unsupported resolution is used with h261 diff -r 8c28f03cfdd5 -r be94e97ecb6e h261.c --- a/h261.c Wed Nov 15 17:58:35 2006 +0000 +++ b/h261.c Thu Nov 16 09:58:34 2006 +0000 @@ -77,7 +77,7 @@ s->dsp.h261_loop_filter(dest_cr, uvlinesize); } -static int ff_h261_get_picture_format(int width, int height){ +int ff_h261_get_picture_format(int width, int height){ // QCIF if (width == 176 && height == 144) return 0; diff -r 8c28f03cfdd5 -r be94e97ecb6e mpegvideo.c --- a/mpegvideo.c Wed Nov 15 17:58:35 2006 +0000 +++ b/mpegvideo.c Thu Nov 16 09:58:34 2006 +0000 @@ -1208,6 +1208,10 @@ s->low_delay=1; break; case CODEC_ID_H261: + if (ff_h261_get_picture_format(s->width, s->height) < 0) { + av_log(avctx, AV_LOG_ERROR, "The specified picture size of %dx%d is not valid for the H.261 codec.\nValid sizes are 176x144, 352x288\n", s->width, s->height); + return -1; + } s->out_format = FMT_H261; avctx->delay=0; s->low_delay=1; diff -r 8c28f03cfdd5 -r be94e97ecb6e mpegvideo.h --- a/mpegvideo.h Wed Nov 15 17:58:35 2006 +0000 +++ b/mpegvideo.h Thu Nov 16 09:58:34 2006 +0000 @@ -824,6 +824,7 @@ int motion_x, int motion_y); void ff_h261_encode_picture_header(MpegEncContext * s, int picture_number); void ff_h261_encode_init(MpegEncContext *s); +int ff_h261_get_picture_format(int width, int height); /* h263.c, h263dec.c */