diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/codecs/SOURCES | 1 | ||||
-rw-r--r-- | apps/codecs/codecs.make | 1 | ||||
-rw-r--r-- | apps/codecs/libasf/asf.h | 5 | ||||
-rw-r--r-- | apps/codecs/wmapro.c | 33 | ||||
-rw-r--r-- | apps/metadata.c | 3 | ||||
-rw-r--r-- | apps/metadata.h | 1 | ||||
-rw-r--r-- | apps/metadata/asf.c | 8 |
7 files changed, 49 insertions, 3 deletions
diff --git a/apps/codecs/SOURCES b/apps/codecs/SOURCES index 8970567b65..e2ee53e7ee 100644 --- a/apps/codecs/SOURCES +++ b/apps/codecs/SOURCES | |||
@@ -16,6 +16,7 @@ atrac3_rm.c | |||
16 | atrac3_oma.c | 16 | atrac3_oma.c |
17 | mpc.c | 17 | mpc.c |
18 | wma.c | 18 | wma.c |
19 | wmapro.c | ||
19 | sid.c | 20 | sid.c |
20 | ape.c | 21 | ape.c |
21 | nsf.c | 22 | nsf.c |
diff --git a/apps/codecs/codecs.make b/apps/codecs/codecs.make index fa5eae67c5..7a83e5d1da 100644 --- a/apps/codecs/codecs.make +++ b/apps/codecs/codecs.make | |||
@@ -82,6 +82,7 @@ $(CODECDIR)/shorten.codec : $(CODECDIR)/libffmpegFLAC.a | |||
82 | $(CODECDIR)/ape-pre.map : $(CODECDIR)/libdemac-pre.a | 82 | $(CODECDIR)/ape-pre.map : $(CODECDIR)/libdemac-pre.a |
83 | $(CODECDIR)/ape.codec : $(CODECDIR)/libdemac.a | 83 | $(CODECDIR)/ape.codec : $(CODECDIR)/libdemac.a |
84 | $(CODECDIR)/wma.codec : $(CODECDIR)/libwma.a $(CODECDIR)/libasf.a | 84 | $(CODECDIR)/wma.codec : $(CODECDIR)/libwma.a $(CODECDIR)/libasf.a |
85 | $(CODECDIR)/wmapro.codec : $(CODECDIR)/libwma.a $(CODECDIR)/libasf.a | ||
85 | $(CODECDIR)/wavpack_enc.codec: $(CODECDIR)/libwavpack.a | 86 | $(CODECDIR)/wavpack_enc.codec: $(CODECDIR)/libwavpack.a |
86 | $(CODECDIR)/asap.codec : $(CODECDIR)/libasap.a | 87 | $(CODECDIR)/asap.codec : $(CODECDIR)/libasap.a |
87 | $(CODECDIR)/cook.codec : $(CODECDIR)/libcook.a $(CODECDIR)/librm.a | 88 | $(CODECDIR)/cook.codec : $(CODECDIR)/libcook.a $(CODECDIR)/librm.a |
diff --git a/apps/codecs/libasf/asf.h b/apps/codecs/libasf/asf.h index 09767650a3..c15bf4edec 100644 --- a/apps/codecs/libasf/asf.h +++ b/apps/codecs/libasf/asf.h | |||
@@ -4,8 +4,9 @@ | |||
4 | #include <inttypes.h> | 4 | #include <inttypes.h> |
5 | 5 | ||
6 | /* ASF codec IDs */ | 6 | /* ASF codec IDs */ |
7 | #define ASF_CODEC_ID_WMAV1 0x160 | 7 | #define ASF_CODEC_ID_WMAV1 0x160 |
8 | #define ASF_CODEC_ID_WMAV2 0x161 | 8 | #define ASF_CODEC_ID_WMAV2 0x161 |
9 | #define ASF_CODEC_ID_WMAPRO 0x162 | ||
9 | 10 | ||
10 | enum asf_error_e { | 11 | enum asf_error_e { |
11 | ASF_ERROR_INTERNAL = -1, /* incorrect input to API calls */ | 12 | ASF_ERROR_INTERNAL = -1, /* incorrect input to API calls */ |
diff --git a/apps/codecs/wmapro.c b/apps/codecs/wmapro.c new file mode 100644 index 0000000000..e15a610679 --- /dev/null +++ b/apps/codecs/wmapro.c | |||
@@ -0,0 +1,33 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2010 Mohamed Tarek | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | |||
22 | #include "codeclib.h" | ||
23 | |||
24 | CODEC_HEADER | ||
25 | |||
26 | /* this is the codec entry point */ | ||
27 | enum codec_status codec_main(void) | ||
28 | { | ||
29 | DEBUGF("WMA: WMA Professional has not been implemented yet\n"); | ||
30 | |||
31 | return CODEC_ERROR; | ||
32 | } | ||
33 | |||
diff --git a/apps/metadata.c b/apps/metadata.c index 2a49392193..97f376035d 100644 --- a/apps/metadata.c +++ b/apps/metadata.c | |||
@@ -107,6 +107,9 @@ const struct afmt_entry audio_formats[AFMT_NUM_CODECS] = | |||
107 | /* WMA (WMAV1/V2 in ASF) */ | 107 | /* WMA (WMAV1/V2 in ASF) */ |
108 | [AFMT_WMA] = | 108 | [AFMT_WMA] = |
109 | AFMT_ENTRY("WMA", "wma", NULL, "wma\0wmv\0asf\0" ), | 109 | AFMT_ENTRY("WMA", "wma", NULL, "wma\0wmv\0asf\0" ), |
110 | /* WMA Professional in ASF */ | ||
111 | [AFMT_WMAPRO] = | ||
112 | AFMT_ENTRY("WMAPro", "wmapro", NULL, "wma\0wmv\0asf\0" ), | ||
110 | /* Amiga MOD File */ | 113 | /* Amiga MOD File */ |
111 | [AFMT_MOD] = | 114 | [AFMT_MOD] = |
112 | AFMT_ENTRY("MOD", "mod", NULL, "mod\0" ), | 115 | AFMT_ENTRY("MOD", "mod", NULL, "mod\0" ), |
diff --git a/apps/metadata.h b/apps/metadata.h index 0d0f6c5aac..aa59eac2dd 100644 --- a/apps/metadata.h +++ b/apps/metadata.h | |||
@@ -59,6 +59,7 @@ enum | |||
59 | AFMT_SPC, /* SPC700 save state */ | 59 | AFMT_SPC, /* SPC700 save state */ |
60 | AFMT_APE, /* Monkey's Audio (APE) */ | 60 | AFMT_APE, /* Monkey's Audio (APE) */ |
61 | AFMT_WMA, /* WMAV1/V2 in ASF */ | 61 | AFMT_WMA, /* WMAV1/V2 in ASF */ |
62 | AFMT_WMAPRO, /* WMA Professional in ASF */ | ||
62 | AFMT_MOD, /* Amiga MOD File Format */ | 63 | AFMT_MOD, /* Amiga MOD File Format */ |
63 | AFMT_SAP, /* Atari 8Bit SAP Format */ | 64 | AFMT_SAP, /* Atari 8Bit SAP Format */ |
64 | AFMT_RM_COOK, /* Cook in RM/RA */ | 65 | AFMT_RM_COOK, /* Cook in RM/RA */ |
diff --git a/apps/metadata/asf.c b/apps/metadata/asf.c index fac4092256..db806ea17f 100644 --- a/apps/metadata/asf.c +++ b/apps/metadata/asf.c | |||
@@ -345,8 +345,14 @@ static int asf_parse_header(int fd, struct mp3entry* id3, | |||
345 | read(fd, wfx->data, 6); | 345 | read(fd, wfx->data, 6); |
346 | lseek(fd,current.size - 24 - 72 - 6,SEEK_CUR); | 346 | lseek(fd,current.size - 24 - 72 - 6,SEEK_CUR); |
347 | wfx->audiostream = flags&0x7f; | 347 | wfx->audiostream = flags&0x7f; |
348 | } else if (wfx->codec_id == ASF_CODEC_ID_WMAPRO) { | ||
349 | read(fd, wfx->data, 10); | ||
350 | lseek(fd,current.size - 24 - 72 - 10,SEEK_CUR); | ||
351 | wfx->audiostream = flags&0x7f; | ||
352 | /* Correct codectype to redirect playback to the proper .codec */ | ||
353 | id3->codectype = AFMT_WMAPRO; | ||
348 | } else { | 354 | } else { |
349 | DEBUGF("Unsupported WMA codec (Pro, Lossless, Voice, etc)\n"); | 355 | DEBUGF("Unsupported WMA codec (Lossless, Voice, etc)\n"); |
350 | lseek(fd,current.size - 24 - 72,SEEK_CUR); | 356 | lseek(fd,current.size - 24 - 72,SEEK_CUR); |
351 | } | 357 | } |
352 | 358 | ||