print frame decoding time support (x86 only)
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 16 May 2002 22:01:30 +0000 (22:01 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 16 May 2002 22:01:30 +0000 (22:01 +0000)
Originally committed as revision 504 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/h263dec.c

index b18753b0da44ef5db21ccb8b721e2ff4b50e696a..ac882a06a44dae50bfaa1a2e55acdc1626203fde 100644 (file)
 #include "mpegvideo.h"
 
 //#define DEBUG
+//#define PRINT_FRAME_TIME
+#ifdef PRINT_FRAME_TIME
+static inline long long rdtsc()
+{
+       long long l;
+       asm volatile(   "rdtsc\n\t"
+               : "=A" (l)
+       );
+//     printf("%d\n", int(l/1000));
+       return l;
+}
+#endif
 
 static int h263_decode_init(AVCodecContext *avctx)
 {
@@ -103,7 +115,9 @@ static int h263_decode_frame(AVCodecContext *avctx,
     MpegEncContext *s = avctx->priv_data;
     int ret;
     AVPicture *pict = data; 
-
+#ifdef PRINT_FRAME_TIME
+uint64_t time= rdtsc();
+#endif
 #ifdef DEBUG
     printf("*****frame %d size=%d\n", avctx->frame_number, buf_size);
     printf("bytes=%x %x %x %x\n", buf[0], buf[1], buf[2], buf[3]);
@@ -317,7 +331,9 @@ static int h263_decode_frame(AVCodecContext *avctx,
        note we allready added +1 for the current pix in MPV_frame_end(s) */
     if(s->num_available_buffers>=2 || (!s->has_b_frames))
         *data_size = sizeof(AVPicture);
-
+#ifdef PRINT_FRAME_TIME
+printf("%Ld\n", rdtsc()-time);
+#endif
     return buf_size;
 }