|  |  | @@ -57,6 +57,11 @@ static int decode_frame(AVCodecContext *avctx, | 
		
	
		
			
			|  |  |  | return AVERROR_INVALIDDATA; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (buf_size < avctx->width * avctx->height) { | 
		
	
		
			
			|  |  |  | av_log(avctx, AV_LOG_ERROR, "Packet is too small\n"); | 
		
	
		
			
			|  |  |  | return AVERROR_INVALIDDATA; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if(p->data[0]) | 
		
	
		
			
			|  |  |  | avctx->release_buffer(avctx, p); | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -74,11 +79,6 @@ static int decode_frame(AVCodecContext *avctx, | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | stride = avctx->width - 4; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if (buf_size < avctx->width * avctx->height) { | 
		
	
		
			
			|  |  |  | av_log(avctx, AV_LOG_ERROR, "Packet is too small\n"); | 
		
	
		
			
			|  |  |  | return AVERROR_INVALIDDATA; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | for (i = 0; i < avctx->height; i++) { | 
		
	
		
			
			|  |  |  | /* lines are stored in reversed order */ | 
		
	
		
			
			|  |  |  | buf += stride; | 
		
	
	
		
			
				|  |  | 
 |