--- multiplexer/splitps.c 2001/04/03 21:14:33 1.3 +++ multiplexer/splitps.c 2001/04/09 15:26:03 1.4 @@ -290,14 +290,20 @@ static boolean ps_stream_map (file_descr return (TRUE); } +/* Parse a 45 bit stream directory offset value in 3 parts a 15 bit. + * Precondition: f!=NULL, result!=NULL. + * Postcontition: *result = offset. + * Return: Index increased by 6. + */ static int ps_stream_dir_get45 (file_descr *f, int i, - long long *r) + long long *result) { byte a; int b, n; + long long r; n = 2; - *r = 0; + r = 0; do { list_incr (i,f->data,1); b = f->data.ptr[i]; @@ -305,8 +311,9 @@ static int ps_stream_dir_get45 (file_des a = f->data.ptr[i]; marker_bit (a,0); b = (b << 7) | (a >> 1); - *r = (*r << 15) | b; + r = (r << 15) | b; } while (--n >= 0); + *result = r; return (i); } @@ -431,6 +438,10 @@ static boolean ps_data_stream (file_desc return (TRUE); } +/* Split data from a PS stream. + * Precondition: f!=NULL + * Return: TRUE, if something was processed, FALSE if no data/space available + */ boolean split_ps (file_descr *f) { int l, p;