| | 275 | #if 0 |
|---|
| | 276 | static int |
|---|
| | 277 | auto_fishead (OGGZ * oggz, ogg_packet * op, long serialno, void * user_data) |
|---|
| | 278 | { |
|---|
| | 279 | unsigned char * header = op->packet; |
|---|
| | 280 | |
|---|
| | 281 | if (op->bytes < 8) return 0; |
|---|
| | 282 | |
|---|
| | 283 | if (strncmp ((char *)header, "fishead", 8)) return 0; |
|---|
| | 284 | if (!op->b_o_s) return 0; |
|---|
| | 285 | |
|---|
| | 286 | /* Yeah ... set it up with a "linear" metric with numerator 0 :) */ |
|---|
| | 287 | oggz_set_metric_linear (oggz, serialno, 0, 1); |
|---|
| | 288 | |
|---|
| | 289 | return 1; |
|---|
| | 290 | } |
|---|
| | 291 | #endif |
|---|
| | 292 | |
|---|
| | 293 | static int |
|---|
| | 294 | auto_fisbone (OGGZ * oggz, ogg_packet * op, long serialno, void * user_data) |
|---|
| | 295 | { |
|---|
| | 296 | unsigned char * header = op->packet; |
|---|
| | 297 | long fisbone_serialno; |
|---|
| | 298 | ogg_int64_t granule_rate_numerator = 0, granule_rate_denominator = 0; |
|---|
| | 299 | |
|---|
| | 300 | if (op->bytes < 48) return 0; |
|---|
| | 301 | |
|---|
| | 302 | if (strncmp ((char *)header, "fisbone", 7)) return 0; |
|---|
| | 303 | |
|---|
| | 304 | fisbone_serialno = (long) INT32_LE_AT(&header[12]); |
|---|
| | 305 | |
|---|
| | 306 | granule_rate_numerator = INT64_LE_AT(&header[20]); |
|---|
| | 307 | granule_rate_denominator = INT64_LE_AT(&header[28]); |
|---|
| | 308 | #ifdef DEBUG |
|---|
| | 309 | printf ("Got fisbone granulerate %lld/%lld for serialno %010ld\n", |
|---|
| | 310 | granule_rate_numerator, granule_rate_denominator, |
|---|
| | 311 | fisbone_serialno); |
|---|
| | 312 | #endif |
|---|
| | 313 | |
|---|
| | 314 | oggz_set_metric_linear (oggz, fisbone_serialno, |
|---|
| | 315 | granule_rate_numerator, |
|---|
| | 316 | OGGZ_AUTO_MULT * granule_rate_denominator); |
|---|
| | 317 | |
|---|
| | 318 | return 1; |
|---|
| | 319 | } |
|---|
| | 320 | |
|---|