summaryrefslogtreecommitdiff
path: root/components/music/dxhead.c
diff options
context:
space:
mode:
Diffstat (limited to 'components/music/dxhead.c')
-rw-r--r--components/music/dxhead.c233
1 files changed, 0 insertions, 233 deletions
diff --git a/components/music/dxhead.c b/components/music/dxhead.c
deleted file mode 100644
index e6e9269bf..000000000
--- a/components/music/dxhead.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/*---- DXhead.c --------------------------------------------
-
-
-decoder MPEG Layer III
-
-handle Xing header
-
-mod 12/7/98 add vbr scale
-
-Copyright 1998 Xing Technology Corp.
------------------------------------------------------------*/
-#include <stdlib.h>
-#include <stdio.h>
-#include <float.h>
-#include <math.h>
-#include "dxhead.h"
-
-/* 4 Xing
- * 4 flags
- * 4 frames
- * 4 bytes
- * 100 toc
- */
-
-/*-------------------------------------------------------------*/
-static int ExtractI4(unsigned char *buf)
-{
-
- int x;
-
-/* big endian extract */
-
- x = buf[0];
-
- x <<= 8;
-
- x |= buf[1];
-
- x <<= 8;
-
- x |= buf[2];
-
- x <<= 8;
-
- x |= buf[3];
-
-
- return x;
-
-}
-
-/*-------------------------------------------------------------*/
-int mpg123_get_xing_header(XHEADDATA * X, unsigned char *buf)
-{
-
- int i, head_flags;
-
- int h_id, h_mode, h_sr_index;
-
- static int sr_table[4] =
- {44100, 48000, 32000, 99999};
-
-
-/* get Xing header data */
-
-
- X->flags = 0; /* clear to null incase fail */
-
-
-
-/* get selected MPEG header data */
- h_id = (buf[1] >> 3) & 1;
-
- h_sr_index = (buf[2] >> 2) & 3;
-
- h_mode = (buf[3] >> 6) & 3;
-
-
-
-/* determine offset of header */
- if (h_id)
- { /* mpeg1 */
-
- if (h_mode != 3)
- buf += (32 + 4);
-
- else
- buf += (17 + 4);
-
- }
-
- else
- { /* mpeg2 */
-
- if (h_mode != 3)
- buf += (17 + 4);
-
- else
- buf += (9 + 4);
-
- }
-
-
- if (buf[0] != 'X')
- return 0; /* fail */
-
- if (buf[1] != 'i')
- return 0; /* header not found */
-
- if (buf[2] != 'n')
- return 0;
-
- if (buf[3] != 'g')
- return 0;
-
- buf += 4;
-
-
- X->h_id = h_id;
-
- X->samprate = sr_table[h_sr_index];
-
- if (h_id == 0)
- X->samprate >>= 1;
-
-
- head_flags = X->flags = ExtractI4(buf);
- buf += 4; /* get flags */
-
-
- if (head_flags & FRAMES_FLAG)
- {
- X->frames = ExtractI4(buf);
- buf += 4;
- }
-
- if (head_flags & BYTES_FLAG)
- {
- X->bytes = ExtractI4(buf);
- buf += 4;
- }
-
-
- if (head_flags & TOC_FLAG)
- {
-
- if (X->toc != NULL)
- {
-
- for (i = 0; i < 100; i++)
- X->toc[i] = buf[i];
-
- }
-
- buf += 100;
-
- }
-
-
- X->vbr_scale = -1;
-
- if (head_flags & VBR_SCALE_FLAG)
- {
- X->vbr_scale = ExtractI4(buf);
- buf += 4;
- }
-
-
-/*if( X->toc != NULL ) {
- *for(i=0;i<100;i++) {
- * if( (i%10) == 0 ) printf("\n");
- * printf(" %3d", (int)(X->toc[i]));
- *}
- *}
- */
-
- return 1; /* success */
-
-}
-
-/*-------------------------------------------------------------*/
-int mpg123_seek_point(unsigned char TOC[100], int file_bytes, float percent)
-{
-
-/* interpolate in TOC to get file seek point in bytes */
- int a, seekpoint;
-
- float fa, fb, fx;
-
-
-
- if (percent < 0.0f)
- percent = 0.0f;
-
- if (percent > 100.0f)
- percent = 100.0f;
-
-
- a = (int) percent;
-
- if (a > 99)
- a = 99;
-
- fa = TOC[a];
-
- if (a < 99)
- {
-
- fb = TOC[a + 1];
-
- }
-
- else
- {
-
- fb = 256.0f;
-
- }
-
-
-
- fx = fa + (fb - fa) * (percent - a);
-
-
- seekpoint = (int) ((1.0f / 256.0f) * fx * file_bytes);
-
-
-
- return seekpoint;
-
-}
-
-/*-------------------------------------------------------------*/