[MPlayer-dev-eng] [PATCH] fix mpeg bitrate

Eric Lammerts eric at lammerts.org
Mon Mar 3 16:29:51 CET 2003


Hi,
This patch corrects the calculation of the MPEG bitrate from the
sequence header. The bitrate contained in the sequence header is in
units of 400 bits/s, not 500.

Another problem with MPEG bitrate detection is that the value in the
sequence header can be significantly larger than the real bitrate. For
instance, some satellite streams with an average bitrate of 3 to 4
Mbits/s have sequence headers that say 7.5 or 15Mbits/s.

Eric
-------------- next part --------------
Index: video.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpdemux/video.c,v
retrieving revision 1.35
diff -u -r1.35 video.c
--- video.c	18 Feb 2003 22:33:44 -0000	1.35
+++ video.c	3 Mar 2003 15:41:52 -0000
@@ -224,7 +224,7 @@
    sh_video->disp_h=picture.display_picture_height;
    // bitrate:
    if(picture.bitrate!=0x3FFFF) // unspecified/VBR ?
-       sh_video->i_bps=1000*picture.bitrate/16;
+       sh_video->i_bps=picture.bitrate * 400 / 8;
    // info:
    mp_dbg(MSGT_DECVIDEO,MSGL_DBG2,"mpeg bitrate: %d (%X)\n",picture.bitrate,picture.bitrate);
    mp_msg(MSGT_DECVIDEO,MSGL_INFO,"VIDEO:  %s  %dx%d  (aspect %d)  %4.2f fps  %5.1f kbps (%4.1f kbyte/s)\n",
@@ -232,8 +232,8 @@
     sh_video->disp_w,sh_video->disp_h,
     picture.aspect_ratio_information,
     sh_video->fps,
-    picture.bitrate*0.5f,
-    picture.bitrate/16.0f );
+    sh_video->i_bps * 8 / 1000.0,
+    sh_video->i_bps / 1000.0 );
   break;
  }
 } // switch(file_format)


More information about the MPlayer-dev-eng mailing list