| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -139,6 +139,7 @@ typedef struct Vp3DecodeContext { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    AVFrame last_frame; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    AVFrame current_frame; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int keyframe; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    uint8_t idct_permutation[64]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    DSPContext dsp; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    VideoDSPContext vdsp; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    VP3DSPContext vp3dsp; | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -384,7 +385,7 @@ static void init_dequantizer(Vp3DecodeContext *s, int qpi) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                int qmin= 8<<(inter + !i); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                int qscale= i ? ac_scale_factor : dc_scale_factor; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                s->qmat[qpi][inter][plane][s->dsp.idct_permutation[i]]= av_clip((qscale * coeff)/100 * 4, qmin, 4096); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                s->qmat[qpi][inter][plane][s->idct_permutation[i]]= av_clip((qscale * coeff)/100 * 4, qmin, 4096); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            // all DC coefficients use the same quant so as not to interfere with DC prediction | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            s->qmat[qpi][inter][plane][0] = s->qmat[0][inter][plane][0]; | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -1680,8 +1681,8 @@ static av_cold int vp3_decode_init(AVCodecContext *avctx) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ff_videodsp_init(&s->vdsp, 8); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ff_vp3dsp_init(&s->vp3dsp, avctx->flags); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ff_init_scantable_permutation(s->dsp.idct_permutation, s->vp3dsp.idct_perm); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ff_init_scantable(s->dsp.idct_permutation, &s->scantable, ff_zigzag_direct); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ff_init_scantable_permutation(s->idct_permutation, s->vp3dsp.idct_perm); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ff_init_scantable(s->idct_permutation, &s->scantable, ff_zigzag_direct); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /* initialize to an impossible value which will force a recalculation | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * in the first frame decode */ | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -1886,7 +1887,7 @@ static int vp3_update_thread_context(AVCodecContext *dst, const AVCodecContext * | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        // copy previous frame data | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        copy_fields(s, s1, golden_frame, dsp); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        copy_fields(s, s1, golden_frame, idct_permutation); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        // copy qscale data if necessary | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        for (i = 0; i < 3; i++) { | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |