Commit 6bb925f4 authored by Michael Niedermayer's avatar Michael Niedermayer

dont call emms_c() for each MB

Originally committed as revision 1127 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 0aa7875a
...@@ -1819,7 +1819,7 @@ void MPV_decode_mb(MpegEncContext *s, DCTELEM block[6][64]) ...@@ -1819,7 +1819,7 @@ void MPV_decode_mb(MpegEncContext *s, DCTELEM block[6][64])
/* if previous was skipped too, then nothing to do ! /* if previous was skipped too, then nothing to do !
skip only during decoding as we might trash the buffers during encoding a bit */ skip only during decoding as we might trash the buffers during encoding a bit */
if (*mbskip_ptr >= s->ip_buffer_count && !s->encoding) if (*mbskip_ptr >= s->ip_buffer_count && !s->encoding)
goto the_end; return;
} else { } else {
*mbskip_ptr = 0; /* not skipped */ *mbskip_ptr = 0; /* not skipped */
} }
...@@ -1866,7 +1866,7 @@ void MPV_decode_mb(MpegEncContext *s, DCTELEM block[6][64]) ...@@ -1866,7 +1866,7 @@ void MPV_decode_mb(MpegEncContext *s, DCTELEM block[6][64])
} }
/* skip dequant / idct if we are really late ;) */ /* skip dequant / idct if we are really late ;) */
if(s->hurry_up>1) goto the_end; if(s->hurry_up>1) return;
/* add dct residue */ /* add dct residue */
if(s->encoding || !( s->mpeg2 || s->h263_msmpeg4 || s->codec_id==CODEC_ID_MPEG1VIDEO if(s->encoding || !( s->mpeg2 || s->h263_msmpeg4 || s->codec_id==CODEC_ID_MPEG1VIDEO
...@@ -1916,8 +1916,6 @@ void MPV_decode_mb(MpegEncContext *s, DCTELEM block[6][64]) ...@@ -1916,8 +1916,6 @@ void MPV_decode_mb(MpegEncContext *s, DCTELEM block[6][64])
} }
} }
} }
the_end:
emms_c(); //FIXME remove
} }
static inline void dct_single_coeff_elimination(MpegEncContext *s, int n, int threshold) static inline void dct_single_coeff_elimination(MpegEncContext *s, int n, int threshold)
...@@ -2574,7 +2572,6 @@ static void encode_picture(MpegEncContext *s, int picture_number) ...@@ -2574,7 +2572,6 @@ static void encode_picture(MpegEncContext *s, int picture_number)
// s->mb_type[mb_y*s->mb_width + mb_x]=MB_TYPE_INTER; // s->mb_type[mb_y*s->mb_width + mb_x]=MB_TYPE_INTER;
} }
} }
emms_c();
}else /* if(s->pict_type == I_TYPE) */{ }else /* if(s->pict_type == I_TYPE) */{
/* I-Frame */ /* I-Frame */
//FIXME do we need to zero them? //FIXME do we need to zero them?
...@@ -2601,6 +2598,8 @@ static void encode_picture(MpegEncContext *s, int picture_number) ...@@ -2601,6 +2598,8 @@ static void encode_picture(MpegEncContext *s, int picture_number)
} }
} }
} }
emms_c();
if(s->scene_change_score > 0 && s->pict_type == P_TYPE){ if(s->scene_change_score > 0 && s->pict_type == P_TYPE){
s->pict_type= I_TYPE; s->pict_type= I_TYPE;
memset(s->mb_type , MB_TYPE_INTRA, sizeof(UINT8)*s->mb_width*s->mb_height); memset(s->mb_type , MB_TYPE_INTRA, sizeof(UINT8)*s->mb_width*s->mb_height);
......
...@@ -120,6 +120,9 @@ int avcodec_encode_video(AVCodecContext *avctx, UINT8 *buf, int buf_size, ...@@ -120,6 +120,9 @@ int avcodec_encode_video(AVCodecContext *avctx, UINT8 *buf, int buf_size,
int ret; int ret;
ret = avctx->codec->encode(avctx, buf, buf_size, (void *)pict); ret = avctx->codec->encode(avctx, buf, buf_size, (void *)pict);
emms_c(); //needed to avoid a emms_c() call before every return;
avctx->frame_number++; avctx->frame_number++;
return ret; return ret;
} }
...@@ -135,6 +138,9 @@ int avcodec_decode_video(AVCodecContext *avctx, AVPicture *picture, ...@@ -135,6 +138,9 @@ int avcodec_decode_video(AVCodecContext *avctx, AVPicture *picture,
ret = avctx->codec->decode(avctx, picture, got_picture_ptr, ret = avctx->codec->decode(avctx, picture, got_picture_ptr,
buf, buf_size); buf, buf_size);
emms_c(); //needed to avoid a emms_c() call before every return;
if (*got_picture_ptr) if (*got_picture_ptr)
avctx->frame_number++; avctx->frame_number++;
return ret; return ret;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment