Frame packing (now it compiles)

This commit is contained in:
Jean-Marc Valin 2010-09-08 18:01:02 -04:00
parent 265b40c258
commit 682d2900f6

View file

@ -71,15 +71,18 @@ int count_frames(unsigned char *packet, int len)
return count; return count;
else else
return -1; return -1;
} else if (sz == 6) } else /* if (sz == 6 || sz == 7) */
{ {
/* Many packets, different sizes */ /* Many packets, different sizes */
int count = 0; int count = 0;
int pos = 1; int pos = 1;
int bytes = 1; int bytes = 1;
int extra = 0;
if (sz==7)
extra = 1;
while (bytes < len) while (bytes < len)
{ {
int tmp=1; int tmp=extra+1;
int flen = decode_length(packet+pos, len-bytes); int flen = decode_length(packet+pos, len-bytes);
if (flen==-1) if (flen==-1)
return -1; return -1;
@ -93,16 +96,24 @@ int count_frames(unsigned char *packet, int len)
return -1; return -1;
else else
return count; return count;
} else {
} }
} }
#define MAX_FRAMES 256 #define MAX_FRAMES 256
int hybrid_merge_packets(unsigned char **packets, int *len, unsigned *output, int maxlen) int hybrid_merge_packets(unsigned char **packets, int *plen, int nb_packets,
unsigned *output, int maxlen)
{ {
int i;
unsigned char cfg[MAX_FRAMES]; unsigned char cfg[MAX_FRAMES];
unsigned char len[MAX_FRAMES]; unsigned char flen[MAX_FRAMES];
int nb_frames=0; int nb_frames=0;
for (i=0;i<nb_packets;i++)
{
int tmp = count_frames(packets[i], plen[i]);
if (tmp<=0)
return -1;
nb_frames += tmp;
}
return nb_frames;
} }