summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec/codecs')
-rw-r--r--lib/rbcodec/codecs/libmad/libmad.make25
-rw-r--r--lib/rbcodec/codecs/libmad/mad_iram.h7
-rw-r--r--lib/rbcodec/codecs/mpa.c2
3 files changed, 30 insertions, 4 deletions
diff --git a/lib/rbcodec/codecs/libmad/libmad.make b/lib/rbcodec/codecs/libmad/libmad.make
index 479dd54773..6c50e1d201 100644
--- a/lib/rbcodec/codecs/libmad/libmad.make
+++ b/lib/rbcodec/codecs/libmad/libmad.make
@@ -7,9 +7,16 @@
7# $Id$ 7# $Id$
8# 8#
9 9
10# we need to build two different mad libraries
11# (one for codec, one for mpegplayer)
12# so a little trickery is necessary
13
10MADFLAGS = $(CODECFLAGS) -I$(RBCODECLIB_DIR)/codecs/libmad 14MADFLAGS = $(CODECFLAGS) -I$(RBCODECLIB_DIR)/codecs/libmad
11MADFLAGS += -UDEBUG -DNDEBUG -DHAVE_LIMITS_H -DHAVE_ASSERT_H 15MADFLAGS += -UDEBUG -DNDEBUG -DHAVE_LIMITS_H -DHAVE_ASSERT_H
12 16
17# MPEGplayer
18MPEGMADFLAGS = $(MADFLAGS) -DMPEGPLAYER
19
13# libmad 20# libmad
14MADLIB := $(CODECDIR)/libmad.a 21MADLIB := $(CODECDIR)/libmad.a
15MADLIB_SRC := $(call preprocess, $(RBCODECLIB_DIR)/codecs/libmad/SOURCES) 22MADLIB_SRC := $(call preprocess, $(RBCODECLIB_DIR)/codecs/libmad/SOURCES)
@@ -20,8 +27,26 @@ $(MADLIB): $(MADLIB_OBJ)
20 $(SILENT)$(shell rm -f $@) 27 $(SILENT)$(shell rm -f $@)
21 $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null 28 $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
22 29
30# libmad-mpeg
31MPEGMADLIB := $(CODECDIR)/libmad-mpeg.a
32MPEGMADLIB_SRC := $(call preprocess, $(RBCODECLIB_DIR)/codecs/libmad/SOURCES)
33MPEGMADLIB_OBJ := $(addsuffix .o,$(basename $(subst $(RBCODECLIB_DIR)/codecs/libmad,$(RBCODEC_BLD)/codecs/libmad-mpeg,$(MPEGMADLIB_SRC))))
34
35$(MPEGMADLIB): $(MPEGMADLIB_OBJ)
36 $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
37
23# pattern rules 38# pattern rules
24 39
40$(CODECDIR)/libmad-mpeg/%.o : $(RBCODECLIB_DIR)/codecs/libmad/%.c
41 $(SILENT)mkdir -p $(dir $@)
42 $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<)) \
43 $(CC) $(MPEGMADFLAGS) -c $< -o $@
44
45$(CODECDIR)/libmad-mpeg/%.o : $(RBCODECLIB_DIR)/codecs/libmad/%.S
46 $(SILENT)mkdir -p $(dir $@)
47 $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<)) \
48 $(CC) $(MPEGMADFLAGS) -c $< -o $@
49
25$(CODECDIR)/libmad/%.o: $(RBCODECLIB_DIR)/codecs/libmad/%.c 50$(CODECDIR)/libmad/%.o: $(RBCODECLIB_DIR)/codecs/libmad/%.c
26 $(SILENT)mkdir -p $(dir $@) 51 $(SILENT)mkdir -p $(dir $@)
27 $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<)) \ 52 $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<)) \
diff --git a/lib/rbcodec/codecs/libmad/mad_iram.h b/lib/rbcodec/codecs/libmad/mad_iram.h
index 5a315c0381..ac0b64cca9 100644
--- a/lib/rbcodec/codecs/libmad/mad_iram.h
+++ b/lib/rbcodec/codecs/libmad/mad_iram.h
@@ -35,9 +35,10 @@
35#define ICODE_ATTR_MPA_SYNTH 35#define ICODE_ATTR_MPA_SYNTH
36#define ICONST_ATTR_MPA_HUFFMAN 36#define ICONST_ATTR_MPA_HUFFMAN
37#else 37#else
38/* Code performs slower in IRAM on PP502x 38/* Code performs slower in IRAM on PP502x and there is no space in
39 S3C2440 doesn't have any IRAM available for codecs */ 39 mpegplayer on the PP5002. S3C2440 doesn't have any IRAM available for
40#if defined(CPU_PP502x) 40 codecs */
41#if defined(CPU_PP502x) || (CONFIG_CPU == PP5002 && defined(MPEGPLAYER))
41#define ICODE_SECTION_MPA_ARM .text 42#define ICODE_SECTION_MPA_ARM .text
42#define ICODE_ATTR_MPA_SYNTH 43#define ICODE_ATTR_MPA_SYNTH
43#else 44#else
diff --git a/lib/rbcodec/codecs/mpa.c b/lib/rbcodec/codecs/mpa.c
index db33f17c3b..d6bcc04910 100644
--- a/lib/rbcodec/codecs/mpa.c
+++ b/lib/rbcodec/codecs/mpa.c
@@ -26,7 +26,7 @@
26 26
27CODEC_HEADER 27CODEC_HEADER
28 28
29#if NUM_CORES > 1 29#if NUM_CORES > 1 && !defined(MPEGPLAYER)
30#define MPA_SYNTH_ON_COP 30#define MPA_SYNTH_ON_COP
31#endif 31#endif
32 32