[MPlayer-cvslog] CVS: main/libmpdemux demux_ts.c,1.41,1.42
Nico Sabbi CVS
syncmail at mplayerhq.hu
Sat Jan 28 00:07:18 CET 2006
CVS change done by Nico Sabbi CVS
Update of /cvsroot/mplayer/main/libmpdemux
In directory mail:/var2/tmp/cvs-serv12680
Modified Files:
demux_ts.c
Log Message:
export custom mp_a52_framesize(), needed to parse ac3 frames when liba52 is not present; will be moved in a more appropriate place sometimes in the future
Index: demux_ts.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpdemux/demux_ts.c,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -r1.41 -r1.42
--- demux_ts.c 13 Jan 2006 00:23:31 -0000 1.41
+++ demux_ts.c 27 Jan 2006 23:07:16 -0000 1.42
@@ -464,7 +464,7 @@
//stripped down version of a52_syncinfo() from liba52
//copyright belongs to Michel Lespinasse <walken at zoy.org> and Aaron Holtzman <aholtzma at ess.engr.uvic.ca>
-static int a52_framesize(uint8_t * buf)
+int mp_a52_framesize(uint8_t * buf, int *srate)
{
int rate[] = { 32, 40, 48, 56, 64, 80, 96, 112,
128, 160, 192, 224, 256, 320, 384, 448,
@@ -490,10 +490,13 @@
switch(buf[4] & 0xc0)
{
case 0: /* 48 KHz */
+ *srate = 48000 >> half;
return 4 * bitrate;
case 0x40: /* 44.1 KHz */
+ *srate = 44100 >> half;
return 2 * (320 * bitrate / 147 + (frmsizecod & 1));
case 0x80: /* 32 KHz */
+ *srate = 32000 >> half;
return 6 * bitrate;
}
@@ -503,7 +506,7 @@
//second stage: returns the count of A52 syncwords found
static int a52_check(char *buf, int len)
{
- int cnt, frame_length, ok;
+ int cnt, frame_length, ok, srate;
cnt = ok = 0;
if(len < 8)
@@ -513,7 +516,7 @@
{
if(buf[cnt] == 0x0B && buf[cnt+1] == 0x77)
{
- frame_length = a52_framesize(&buf[cnt]);
+ frame_length = mp_a52_framesize(&buf[cnt], &srate);
if(frame_length>=7 && frame_length<=3840)
{
cnt += frame_length;
More information about the MPlayer-cvslog
mailing list