Mercurial > audlegacy
view Plugins/Input/mpg123/dxhead.h @ 1458:f12d7e208b43 trunk
[svn] Update FSF address in copyright notices. Update autotools templates.
author | chainsaw |
---|---|
date | Wed, 02 Aug 2006 15:44:07 -0700 |
parents | b5ae09a6c2f1 |
children |
line wrap: on
line source
/* * A Xing header may be present in the ancillary * data field of the first frame of an mp3 bitstream * The Xing header (optionally) contains * frames total number of audio frames in the bitstream * bytes total number of bytes in the bitstream * toc table of contents * * toc (table of contents) gives seek points * for random access * the ith entry determines the seek point for * i-percent duration * seek point in bytes = (toc[i]/256.0) * total_bitstream_bytes * e.g. half duration seek point = (toc[50]/256.0) * total_bitstream_bytes */ #define FRAMES_FLAG 0x0001 #define BYTES_FLAG 0x0002 #define TOC_FLAG 0x0004 #define VBR_SCALE_FLAG 0x0008 /* * structure to receive extracted header */ typedef struct { int frames; /* total bit stream frames from Xing header data */ int bytes; /* total bit stream bytes from Xing header data */ unsigned char toc[100]; /* "table of contents" */ } xing_header_t; /* * Returns zero on fail, non-zero on success * xing structure to receive header data (output) * buf bitstream input */ int mpgdec_get_xing_header(xing_header_t * xing, unsigned char *buf); /* * Returns seekpoint in bytes (may be at eof if percent=100.0) * percent: play time percentage of total playtime. May be fractional. */ int mpgdec_seek_point(xing_header_t * xing, float percent);