diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2022-10-13 11:04:12 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2022-10-13 11:08:11 -0400 |
commit | 9d3d925295112a0080bc1d70fad170db9e1af2a9 (patch) | |
tree | f6fb6244519a9430aa97b303e417fba53799b2f0 /lib/rbcodec/codecs | |
parent | 418169aff8faf2cf90124cd95dba0af821cea73d (diff) | |
download | rockbox-9d3d925295112a0080bc1d70fad170db9e1af2a9.tar.gz rockbox-9d3d925295112a0080bc1d70fad170db9e1af2a9.zip |
Revert "RFC: Get rid of mpegplayer plugin"
This reverts commit d25d24812e8120c0eb133a412287ac030eb185c9.
Change-Id: I1563223e343fb1e2eda72a45823b38350025ff93
Diffstat (limited to 'lib/rbcodec/codecs')
-rw-r--r-- | lib/rbcodec/codecs/libmad/libmad.make | 25 | ||||
-rw-r--r-- | lib/rbcodec/codecs/libmad/mad_iram.h | 7 | ||||
-rw-r--r-- | lib/rbcodec/codecs/mpa.c | 2 |
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 @@ # $Id$ # +# we need to build two different mad libraries +# (one for codec, one for mpegplayer) +# so a little trickery is necessary + MADFLAGS = $(CODECFLAGS) -I$(RBCODECLIB_DIR)/codecs/libmad MADFLAGS += -UDEBUG -DNDEBUG -DHAVE_LIMITS_H -DHAVE_ASSERT_H +# MPEGplayer +MPEGMADFLAGS = $(MADFLAGS) -DMPEGPLAYER + # libmad MADLIB := $(CODECDIR)/libmad.a MADLIB_SRC := $(call preprocess, $(RBCODECLIB_DIR)/codecs/libmad/SOURCES) @@ -20,8 +27,26 @@ $(MADLIB): $(MADLIB_OBJ) $(SILENT)$(shell rm -f $@) $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null +# libmad-mpeg +MPEGMADLIB := $(CODECDIR)/libmad-mpeg.a +MPEGMADLIB_SRC := $(call preprocess, $(RBCODECLIB_DIR)/codecs/libmad/SOURCES) +MPEGMADLIB_OBJ := $(addsuffix .o,$(basename $(subst $(RBCODECLIB_DIR)/codecs/libmad,$(RBCODEC_BLD)/codecs/libmad-mpeg,$(MPEGMADLIB_SRC)))) + +$(MPEGMADLIB): $(MPEGMADLIB_OBJ) + $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null + # pattern rules +$(CODECDIR)/libmad-mpeg/%.o : $(RBCODECLIB_DIR)/codecs/libmad/%.c + $(SILENT)mkdir -p $(dir $@) + $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<)) \ + $(CC) $(MPEGMADFLAGS) -c $< -o $@ + +$(CODECDIR)/libmad-mpeg/%.o : $(RBCODECLIB_DIR)/codecs/libmad/%.S + $(SILENT)mkdir -p $(dir $@) + $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<)) \ + $(CC) $(MPEGMADFLAGS) -c $< -o $@ + $(CODECDIR)/libmad/%.o: $(RBCODECLIB_DIR)/codecs/libmad/%.c $(SILENT)mkdir -p $(dir $@) $(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 @@ #define ICODE_ATTR_MPA_SYNTH #define ICONST_ATTR_MPA_HUFFMAN #else -/* Code performs slower in IRAM on PP502x - S3C2440 doesn't have any IRAM available for codecs */ -#if defined(CPU_PP502x) +/* Code performs slower in IRAM on PP502x and there is no space in + mpegplayer on the PP5002. S3C2440 doesn't have any IRAM available for + codecs */ +#if defined(CPU_PP502x) || (CONFIG_CPU == PP5002 && defined(MPEGPLAYER)) #define ICODE_SECTION_MPA_ARM .text #define ICODE_ATTR_MPA_SYNTH #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 @@ CODEC_HEADER -#if NUM_CORES > 1 +#if NUM_CORES > 1 && !defined(MPEGPLAYER) #define MPA_SYNTH_ON_COP #endif |