diff mpegvideo.c @ 3245:c2c29be6282e libavcodec

remove mpegvideo.c img resample dependancy
author michael
date Fri, 31 Mar 2006 20:43:37 +0000
parents 4186eb8d29a1
children f7a9d8dd476b
line wrap: on
line diff
--- a/mpegvideo.c	Fri Mar 31 20:40:22 2006 +0000
+++ b/mpegvideo.c	Fri Mar 31 20:43:37 2006 +0000
@@ -2180,10 +2180,11 @@
     int i, j, out_size, p_lambda, b_lambda, lambda2;
     int outbuf_size= s->width * s->height; //FIXME
     uint8_t *outbuf= av_malloc(outbuf_size);
-    ImgReSampleContext *resample;
     int64_t best_rd= INT64_MAX;
     int best_b_count= -1;
 
+    assert(scale>=0 && scale <=3);
+
 //    emms_c();
     p_lambda= s->last_lambda_for[P_TYPE]; //s->next_picture_ptr->quality;
     b_lambda= s->last_lambda_for[B_TYPE]; //p_lambda *ABS(s->avctx->b_quant_factor) + s->avctx->b_quant_offset;
@@ -2205,8 +2206,6 @@
     if (avcodec_open(c, codec) < 0)
         return -1;
 
-    resample= img_resample_init(c->width, c->height, s->width, s->height); //FIXME use sws
-
     for(i=0; i<s->max_b_frames+2; i++){
         int ysize= c->width*c->height;
         int csize= (c->width/2)*(c->height/2);
@@ -2229,9 +2228,11 @@
         input[i].linesize[1]=
         input[i].linesize[2]= c->width/2;
 
-        if(!i || s->input_picture[i-1])
-            img_resample(resample, (AVPicture*)&input[i],
-                         (AVPicture*)&pre_input);
+        if(!i || s->input_picture[i-1]){
+            s->dsp.shrink[scale](input[i].data[0], input[i].linesize[0], pre_input.data[0], pre_input.linesize[0], c->width, c->height);
+            s->dsp.shrink[scale](input[i].data[1], input[i].linesize[1], pre_input.data[1], pre_input.linesize[1], c->width>>1, c->height>>1);
+            s->dsp.shrink[scale](input[i].data[2], input[i].linesize[2], pre_input.data[2], pre_input.linesize[2], c->width>>1, c->height>>1);
+        }
     }
 
     for(j=0; j<s->max_b_frames+1; j++){
@@ -2273,7 +2274,6 @@
     av_freep(&outbuf);
     avcodec_close(c);
     av_freep(&c);
-    img_resample_close(resample);
 
     for(i=0; i<s->max_b_frames+2; i++){
         av_freep(&input[i].data[0]);