FLAC-Unterstützung

mulder77
Neugieriger
Neugieriger
Beiträge: 18
Registriert: Dienstag 7. Februar 2006, 23:50

FLAC-Unterstützung

Beitrag von mulder77 »

Hallo,

habe heute mal die libFLAC im CDK kompiliert. Nach ein paar Anpassungen lief der Compilerlauf auch durch.
Ich habe die lib dann per Softlink über NFS auf die dbox gebracht - die lib ist ~1 MB groß und passt nicht mehr ins Image.
Mit dem flac-Programm bin ich genauso verfahren.

Ich habe dann mit

Code: Alles auswählen

./flac -c -d test.flac >/dev/sound/dsp
die Wiedergabe gestartet und bekam auch was zu hören (freu!).
Aber die Ausgabe stotterte und war zu schnell.

Ich will damit erstmal grundsätzlich feststellen, ob die CPU schnell genug ist. Ist sie. Ich habe ein 3:14 min. Lied folgendermaßen wiedergegeben:

Code: Alles auswählen

time ./flac -f -c -d 05.flac >/dev/null

flac 1.2.0, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007  Josh Coalson
flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are
welcome to redistribute it under certain conditions.  Type `flac' for details.

05.flac: done         
real    1m 52.86s
user    1m 11.95s
sys     0m 19.36s
Das bedeutet doch, dass die CPU durchschnittlich zu ~58% mit dem Decodieren beschäftigt war, oder (112/194=0,577)?

Ich würde mich über Hilfe freuen, wenn mir jemand eine kurze Einleitung zeigt/verweist, wie eine weitere lib im audioplayer einzubinden ist.
Ich habe zwar grundsätzliche Programmierkenntnisse, aber bin nicht sehr tief in C/C++ drin.
Vorher muss ich aber noch schauen, ob die Library statisch gelinkt ist. 1 MB kommt mir ein bisschen groß vor.


Danke
mulder77
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Hallo mulder77,

poste doch mal deine cdk/Makefile Änderungen und Patches wenn vorhanden dann kann man das nachvollziehen
mulder77
Neugieriger
Neugieriger
Beiträge: 18
Registriert: Dienstag 7. Februar 2006, 23:50

Beitrag von mulder77 »

Hier mal, was ich angepasst habe:
rules-archive:

Code: Alles auswählen

flac-1.2.0.tar.gz;http://kent.dl.sourceforge.net/sourceforge/flac
rules-make:

Code: Alles auswählen

libFLAC;1.2.0;flac-1.2.0;flac-1.2.0.tar.gz;extract:flac-1.2.0.tar.gz
rules-install:

Code: Alles auswählen

libFLAC;make:install:DESTDIR=TARGET
configure.ac:

Code: Alles auswählen

TUXBOX_RULES_MAKE(libFLAC)
Makefile.am:

Code: Alles auswählen

$(DEPDIR)/libFLAC: bootstrap @DEPENDS_libFLAC@
        @PREPARE_libFLAC@
        cd @DIR_libFLAC@ && \
                $(BUILDENV) \
                ./configure \
                        --host=$(target) \
                        --build=$(build) \
                        --prefix= \
                        --disable-ogg \
                        --disable-altivec \
                $(MAKE) && \
                @INSTALL_libFLAC@
        @CLEANUP_libFLAC@
        touch $@
Desweiteren habe ich am FLAC-Quelltext Anpassungen vornehmen müssen, da es mit "--disable-ogg" ein Problem gibt.
Hier der Link, der mir weitergeholfen hat:
http://lists.xiph.org/pipermail/flac-de ... 02280.html

Daraus habe ich folgenden Patch gebraucht:

Code: Alles auswählen

--- flac-1.2.0/src/flac/encode.c.old    Tue Jul 10 03:10:44 2007
+++ flac-1.2.0/src/flac/encode.c        Thu Aug  9 13:27:20 2007
@@ -2178,10 +2178,15 @@
 
        if(num_requested_seek_points < 0) {
                /*@@@@@@ workaround ogg bug: too many seekpoints makes
table not fit in one page */
-               if(e->use_ogg && e->total_samples_to_encode > 0 &&
e->total_samples_to_encode / e->sample_rate / 10 > 230)
+#if FLAC__HAS_OGG
+               if(e->use_ogg && e->total_samples_to_encode > 0 &&
e->total_samples_to_encode / e->sample_rate / 10 > 230) {
                        requested_seek_points = "230x;";
+               }
                else
+#endif
+               {
                        requested_seek_points = "10s;";
+               }
                num_requested_seek_points = 1;
        }
Ich habe zunächst ohne FLAC das cdk kompilieren lassen (make all), da FLAC einige header aus dem Kernel benötigt. Beim ersten Versuch, ohne vorherigen Compilerlauf, FLAC zu kompilieren, fehlte ihm das.
Danach habe ich mit make libFLAC bauen lassen und die Library libFLAC.so.8.1.0 sowie das Programm flac in die dbox eingebunden (unter /lib symbolischer Link auf die Lib im NFS).


Reicht, oder?
mulder77
Zwen
Developer
Beiträge: 867
Registriert: Mittwoch 14. August 2002, 18:50

Beitrag von Zwen »

@mulder77:
Der Audioplayer ist modular programmiert, d.h. ich habe das damals versucht so zu kapseln, dass man relativ leicht neue Audioformate hinzufügen kann.

Dazu musst du unter tuxbox/apps/tuxbox/neutrino/src/driver/audiodec
einen neuen audiodecoder programmieren. zB analog zu oggdec.cpp/h.
Dieser bildet quasi die Schnittstelle zwischen den genormten audioplayer Aufrufen und der verwendeten bibliothek zum dekodieren (libfaad).
Die Schnittstellen sind die Methoden Decoder(...) zum Dekodieren der Audiodaten und GetMetaData(...) zum auslesen der Meta-Daten (Titel,Künstler,etc, was bei mp3 zB als id3 tags gespeichert werden).
Diese Methoden musst du in deiner neuen Decoder-Klasse implementieren.

Einklinken musst du den neuen Codec dann in basedec.cpp/h (Suche nach zB OggDec).

Wie du ja schon getestet hast, reicht die Gesamtperformance der Box zum dekodieren zwar aus, aber sicherlich nicht für einige Spitzen. Deswegen muss man einen Buffer implementieren. Das geht dann nur mit 2 parallelen Threads (Einer Dekodiert, der andere schreibt die Daten ans Audiodevice). Das kannst du auch aus dem oggdec abschauen.

Musst dich wohl leider etwas durch den bestehenden Code kämpfen, da kommt man bei neutrino nicht drumrum. Bei Fragen einfach nochmal melden.

Zwen
mulder77
Neugieriger
Neugieriger
Beiträge: 18
Registriert: Dienstag 7. Februar 2006, 23:50

Beitrag von mulder77 »

Super, das ist ja mal schon ein Ansatz, wo ich weiterlesen muss.
Schwierig wird (für mich zumindest) noch, die API der Library zu durchschauen. Naja, und den entsprechenden Neutrino-Quelltext. Aber ich will ja was lernen damit...

Desweiteren bleibt das Problem, dass die Lib viel zu groß ist (1 MB).
Unter einem x86_64 zeigt ldd an, dass es sich nicht um ein "dynamic executable" handelt (also ein ldd auf die ppc-library). Für mich ein klarer Hinweis, dass die Lib statisch gelinkt ist.
Kann das jemand bestätigen?
(Die gleiche lib über yum gezogen auf dem x86_64 ist deutlich kleiner und ldd zeigt auch 3 libs an, die sie einbindet).
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Hallo mulder77,
keine Angst vor der Größe der lib.
nach strippen der Debug Infos bleiben noch ca. 316k übrig.

Code: Alles auswählen

-rwxr-xr-x 1 harald harald 324197 2007-08-29 22:11 libFLAC.so.8.1.0
Hagan
Einsteiger
Einsteiger
Beiträge: 198
Registriert: Sonntag 15. Februar 2004, 20:33

Beitrag von Hagan »

Brauchst Du eigentlich die encoder-Methoden?
Vielleicht kannst Du die auch noch weglassen.
Nokia Kabel-DBox2 ohne Premiere.
JtG Snap vom 10.08.2005.
udrec 0.12o unter SuSE-Linux 10.0.
PII-233, 256 MB.
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

@mulder77
willst du da noch weiter machen (Audioplayer)?
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

ALso ich bin jetzt dabei, die flac Unterstützung in den Audioplayer einzubauen.
jmittelst
Tuxboxer
Tuxboxer
Beiträge: 6044
Registriert: Montag 17. November 2003, 06:48

Beitrag von jmittelst »

Coole Sache, halt uns auf dem Laufenden.
THX!

cu
Jens
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

so, bis auf das Auslesen der Tags und das Hin- und Herspulen funktioniert es :D.
Performancemässig sollte es keine Probleme geben. Einen extra Ausgabethread hab ich auch nicht gebraucht.
wenn das cvs mal wieder da ist mache ich ein diff zum Testen.

Houdini
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Houdini,

wird das dann mit dem Audioplayer abgespielt ?
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Naja, Datei auswählen (Endung .flac) und abspielen :-)
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

so unten der diff:
den libFLAC Makekram diff gibts ja schon oben
flacdec.cpp/h ist schon im cvs

Code: Alles auswählen

Index: Makefile.am
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/Makefile.am,v
retrieving revision 1.35
diff -u -r1.35 Makefile.am
--- Makefile.am	2 Sep 2007 19:05:51 -0000	1.35
+++ Makefile.am	19 Sep 2007 19:58:53 -0000
@@ -51,6 +51,7 @@
 	@TUXTXT_LIBS@ \
 	@XMLTREE_LIBS@ \
 	@UPNPCLIENT_LIBS@ \
+	-lFLAC \
 	-lresolv \
 	-ljpeg \
 	-lpthread \
Index: driver/audiometadata.h
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/driver/audiometadata.h,v
retrieving revision 1.5
diff -u -r1.5 audiometadata.h
--- driver/audiometadata.h	14 Sep 2004 15:22:21 -0000	1.5
+++ driver/audiometadata.h	19 Sep 2007 19:58:54 -0000
@@ -56,7 +56,8 @@
 		CDR,
 		MP3,
 		OGG,
-		WAV
+		WAV,
+		FLAC
 	};
 	AudioType type;
 	std::string type_info;
Index: driver/audioplay.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/driver/audioplay.cpp,v
retrieving revision 1.16
diff -u -r1.16 audioplay.cpp
--- driver/audioplay.cpp	9 Sep 2006 21:26:35 -0000	1.16
+++ driver/audioplay.cpp	19 Sep 2007 19:58:56 -0000
@@ -29,7 +29,7 @@
 #define DBOX
 
 /****************************************************************************
- * Includes																	*
+  Includes
  ****************************************************************************/
 #ifdef HAVE_CONFIG_H
 #include <config.h>
Index: driver/file.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/driver/file.cpp,v
retrieving revision 1.2
diff -u -r1.2 file.cpp
--- driver/file.cpp	15 Sep 2004 21:02:55 -0000	1.2
+++ driver/file.cpp	19 Sep 2007 19:58:57 -0000
@@ -41,19 +41,19 @@
 /* ATTENTION: the array file_extension_list MUST BE SORTED ASCENDING (cf. sort, man bsearch) - otherwise bsearch will not work correctly! */
 const char * const file_extension_list[] =
 {
-	"bmp"                , "cdr"                , "crw"                , "gif"                , "imu"                ,
+	"bmp"                , "cdr"                , "crw"                , "flac"               , "gif"                , "imu"                ,
 	"jpeg"               , "jpg"                , "m2a"                , "m3u"                , "mp2"                ,
 	"mp3"                , "mpa"                , "ogg"                , "png"                , "sh"                 ,
-	"txt"                , "url"                , "wav"                ,
+	"txt"                , "url"                , "wav"                , 
 };
 /* ATTENTION: the array file_extension_list MUST BE SORTED ASCENDING (cf. sort, man bsearch) - otherwise bsearch will not work correctly! */
 
 const CFile::FileType file_type_list[] =
 {
-	CFile::FILE_PICTURE  , CFile::FILE_CDR      , CFile::FILE_PICTURE  , CFile::FILE_PICTURE  , CFile::STREAM_PICTURE,
+	CFile::FILE_PICTURE  , CFile::FILE_CDR      , CFile::FILE_PICTURE  , CFile::FILE_FLAC     , CFile::FILE_PICTURE  , CFile::STREAM_PICTURE,
 	CFile::FILE_PICTURE  , CFile::FILE_PICTURE  , CFile::FILE_MP3      , CFile::FILE_PLAYLIST , CFile::FILE_MP3      ,
 	CFile::FILE_MP3      , CFile::FILE_MP3      , CFile::FILE_OGG      , CFile::FILE_PICTURE  , CFile::FILE_TEXT     ,
-	CFile::FILE_TEXT     , CFile::STREAM_AUDIO    , CFile::FILE_WAV      ,
+	CFile::FILE_TEXT     , CFile::STREAM_AUDIO  , CFile::FILE_WAV      , 
 };
 
 int mycasecmp(const void * a, const void * b)
Index: driver/file.h
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/driver/file.h,v
retrieving revision 1.3
diff -u -r1.3 file.h
--- driver/file.h	28 Jan 2005 16:15:50 -0000	1.3
+++ driver/file.h	19 Sep 2007 19:58:58 -0000
@@ -58,6 +58,7 @@
 		FILE_MP3,
 		FILE_OGG,
 		FILE_WAV,
+		FILE_FLAC,
 		FILE_PLAYLIST,
 		STREAM_AUDIO,
 		FILE_PICTURE,
Index: driver/audiodec/Makefile.am
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/driver/audiodec/Makefile.am,v
retrieving revision 1.6
diff -u -r1.6 Makefile.am
--- driver/audiodec/Makefile.am	16 Sep 2004 10:43:20 -0000	1.6
+++ driver/audiodec/Makefile.am	19 Sep 2007 19:58:58 -0000
@@ -13,5 +13,6 @@
 	mp3dec.cpp \
 	oggdec.cpp \
 	wavdec.cpp \
+	flacdec.cpp \
 	tag.c \
 	crc.c
Index: driver/audiodec/basedec.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/driver/audiodec/basedec.cpp,v
retrieving revision 1.15
diff -u -r1.15 basedec.cpp
--- driver/audiodec/basedec.cpp	24 Jun 2007 11:51:03 -0000	1.15
+++ driver/audiodec/basedec.cpp	19 Sep 2007 19:59:01 -0000
@@ -35,6 +35,7 @@
 #include <mp3dec.h>
 #include <oggdec.h>
 #include <wavdec.h>
+#include <flacdec.h>
 #include <linux/soundcard.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
@@ -129,6 +130,12 @@
 													  &in->MetaData, t,
 													  secondsToSkip );
 		}
+		else if( in->FileType == CFile::FILE_FLAC )
+		{
+			Status = CFlacDec::getInstance()->Decoder( fp, OutputFd, state,
+													  &in->MetaData, t,
+													  secondsToSkip );
+		}
 		else
 		{
 			fprintf( stderr, "DecoderBase: Supplied filetype is not " );
@@ -151,7 +158,8 @@
 	bool Status = true;
 
 	if ( in->FileType == CFile::FILE_MP3 || in->FileType == CFile::FILE_OGG ||
-		 in->FileType == CFile::FILE_WAV || in->FileType == CFile::FILE_CDR )
+		 in->FileType == CFile::FILE_WAV || in->FileType == CFile::FILE_CDR ||
+		 in->FileType == CFile::FILE_FLAC )
 	{
 		FILE* fp = fopen( in->Filename.c_str(), "r" );
 		if ( fp == NULL )
@@ -182,6 +190,11 @@
 				Status = CCdrDec::getInstance()->GetMetaData(fp, nice,
 															 &in->MetaData);
 			}
+			else if(in->FileType == CFile::FILE_FLAC)
+			{
+				Status = CFlacDec::getInstance()->GetMetaData(fp, nice,
+															 &in->MetaData);
+			}
 
 			if ( fclose( fp ) == EOF )
 			{
Index: driver/audiodec/mp3dec.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/driver/audiodec/mp3dec.cpp,v
retrieving revision 1.14
diff -u -r1.14 mp3dec.cpp
--- driver/audiodec/mp3dec.cpp	29 Mar 2006 17:02:02 -0000	1.14
+++ driver/audiodec/mp3dec.cpp	19 Sep 2007 19:59:11 -0000
@@ -430,7 +430,7 @@
 		 * the end of the buffer if those bytes forms an incomplete
 		 * frame. Before refilling, the remainign bytes must be moved
 		 * to the begining of the buffer and used for input for the
-q		 * next mad_frame_decode() invocation. (See the comments marked
+		 * next mad_frame_decode() invocation. (See the comments marked
 		 * {1} earlier for more details.)
 		 *
 		 * Recoverable errors are caused by malformed bit-streams, in
Index: gui/audioplayer.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/audioplayer.cpp,v
retrieving revision 1.44
diff -u -r1.44 audioplayer.cpp
--- gui/audioplayer.cpp	24 Jun 2007 11:51:04 -0000	1.44
+++ gui/audioplayer.cpp	19 Sep 2007 19:59:32 -0000
@@ -149,6 +149,7 @@
 	audiofilefilter.addFilter("ogg");
 	audiofilefilter.addFilter("url");
 	audiofilefilter.addFilter("wav");
+	audiofilefilter.addFilter("flac");
 	m_SMSKeyInput.setTimeout(AUDIOPLAYERGUI_SMSKEY_TIMEOUT);
 }
 
@@ -553,7 +554,8 @@
 						if ((files->getType() == CFile::FILE_CDR) ||
 						    (files->getType() == CFile::FILE_OGG) ||
 						    (files->getType() == CFile::FILE_MP3) ||
-						    (files->getType() == CFile::FILE_WAV))
+						    (files->getType() == CFile::FILE_WAV) ||
+						    (files->getType() == CFile::FILE_FLAC))
 						{
 							CAudiofileExt audiofile(files->Name,
 												  files->getType());
@@ -620,9 +622,10 @@
 											playlistItem.Name = filename;											
 											CFile::FileType fileType = playlistItem.getType();
 											if (fileType == CFile::FILE_CDR
-												|| fileType == CFile::FILE_MP3 
+												|| fileType == CFile::FILE_MP3
 												|| fileType == CFile::FILE_OGG
-												|| fileType == CFile::FILE_WAV) 
+												|| fileType == CFile::FILE_WAV
+												|| fileType == CFile::FILE_FLAC) 
 											{
 												CAudiofileExt audioFile(filename,fileType);
 												addToPlaylist(audioFile);
Index: gui/filebrowser.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/filebrowser.cpp,v
retrieving revision 1.114
diff -u -r1.114 filebrowser.cpp
--- gui/filebrowser.cpp	24 May 2007 19:12:33 -0000	1.114
+++ gui/filebrowser.cpp	19 Sep 2007 19:59:44 -0000
@@ -1023,6 +1023,7 @@
 			case CFile::FILE_MP3:
 			case CFile::FILE_OGG:
 			case CFile::FILE_WAV:
+			case CFile::FILE_FLAC:
 				fileicon = "mp3.raw";
 //				color = COL_MENUCONTENT;
 				break;
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

hier noch die libFLAC Änderungen als diff (und noch wget, hmm):

Code: Alles auswählen

Index: Makefile.am
===================================================================
RCS file: /cvs/tuxbox/cdk/Makefile.am,v
retrieving revision 1.527
diff -u -r1.527 Makefile.am
--- Makefile.am	9 Jul 2007 21:03:04 -0000	1.527
+++ Makefile.am	19 Sep 2007 20:45:33 -0000
@@ -520,7 +520,7 @@
 libs: \
 	$(OPTIONAL_LIBCRYPTO) libcurl libdvbpsi \
 	libfreetype libjpeg libmad libid3tag libncurses libpng \
-	libreadline libsdl libsigc libz libdvb
+	libreadline libsdl libsigc libz libdvb libFLAC
 
 libsdirectfb: \
 	libdirectfb libdirectfbpp libppdirectfb
@@ -993,6 +993,21 @@
 	@CLEANUP_libiconv@
 	touch $@
 
+$(DEPDIR)/libFLAC: bootstrap @DEPENDS_libFLAC@
+	@PREPARE_libFLAC@
+	cd @DIR_libFLAC@ && \
+		$(BUILDENV) \
+		./configure \
+			--host=$(target) \
+			--build=$(build) \
+			--prefix= \
+			--disable-ogg \
+			--disable-altivec \
+		$(MAKE) && \
+		@INSTALL_libFLAC@
+	@CLEANUP_libFLAC@
+	touch $@
+
 #######################
 #
 #   contrib apps
@@ -1213,6 +1228,19 @@
 	@CLEANUP_kermit@
 	touch $@
 
+$(DEPDIR)/wget: bootstrap @DEPENDS_wget@
+	@PREPARE_wget@
+	cd @DIR_wget@ && \
+		$(BUILDENV) \
+		./configure \
+			--build=$(build) \
+			--host=$(target) \
+			--prefix=$(targetprefix) && \
+		$(MAKE) all && \
+		@INSTALL_wget@
+	@CLEANUP_wget@
+	touch $@
+
 #######################
 #
 #   ide apps
@@ -2068,7 +2096,7 @@
 
 # tuxbox/neutrino
 
-$(appsdir)/tuxbox/neutrino/config.status: bootstrap libboost libcurl libfreetype libjpeg libmad libid3tag libvorbisidec libpng libtuxbox misc_libs plugins tuxbox_libs zapit misc_tools lufs
+$(appsdir)/tuxbox/neutrino/config.status: bootstrap libboost libcurl libfreetype libjpeg libmad libid3tag libvorbisidec libpng libtuxbox misc_libs plugins tuxbox_libs zapit misc_tools lufs libFLAC
 	cd $(appsdir)/tuxbox/neutrino && $(CONFIGURE)
 
 $(DEPDIR)/neutrino: $(appsdir)/tuxbox/neutrino/config.status
Index: configure.ac
===================================================================
RCS file: /cvs/tuxbox/cdk/configure.ac,v
retrieving revision 1.169
diff -u -r1.169 configure.ac
--- configure.ac	10 Jun 2007 19:55:44 -0000	1.169
+++ configure.ac	19 Sep 2007 20:45:43 -0000
@@ -367,6 +367,7 @@
 TUXBOX_RULES_MAKE(libz)
 TUXBOX_RULES_MAKE(libglib)
 TUXBOX_RULES_MAKE(libiconv)
+TUXBOX_RULES_MAKE(libFLAC)
 
 #
 # contrib apps
@@ -399,6 +400,7 @@
 fi
 TUXBOX_RULES_MAKE(fuse)
 TUXBOX_RULES_MAKE(djmount)
+TUXBOX_RULES_MAKE(wget)
 
 #
 # msttf
Index: rules-archive
===================================================================
RCS file: /cvs/tuxbox/cdk/rules-archive,v
retrieving revision 1.356
diff -u -r1.356 rules-archive
--- rules-archive	18 Sep 2007 18:54:43 -0000	1.356
+++ rules-archive	19 Sep 2007 20:45:43 -0000
@@ -78,6 +78,7 @@
 glib-2.8.3.tar.gz;http://ftp.acc.umu.se/pub/GNOME/sources/glib/2.8
 libungif-4.1.3.tar.bz2;http://heanet.dl.sourceforge.net/sourceforge/libungif;http://www.dbox2world.de/Archive/
 libiconv-1.9.1.tar.gz;http://ftp.gnu.org/pub/gnu/libiconv
+flac-1.2.0.tar.gz;http://kent.dl.sourceforge.net/sourceforge/flac
 
 #
 # contrib apps
@@ -102,10 +103,11 @@
 cku211.tar.gz;ftp://kermit.columbia.edu/kermit/archives
 hdparm-7.6.tar.gz;http://heanet.dl.sourceforge.net/sourceforge/hdparm
 parted-1.7.1.tar.gz;http://ftp.gnu.org/pub/gnu/parted
-xfsprogs_2.8.18-1.tar.gz;http://www.tuxbox.org/src/files
+xfsprogs_2.8.18-1.tar.gz;ftp://oss.sgi.com/projects/xfs/cmd_tars
 libtool-1.5.22.tar.gz;ftp://ftp.gnu.org/gnu/libtool
 smartmontools-5.36.tar.gz;http://heanet.dl.sourceforge.net/sourceforge/smartmontools
 samba-1.9.18p8.tar.gz;http://mirrors.xmission.com/samba/ftp/stable/
+wget-1.10.2.tar.gz;http://ftp.gnu.org/pub/gnu/wget
 
 #
 # development tools
Index: rules-install
===================================================================
RCS file: /cvs/tuxbox/cdk/rules-install,v
retrieving revision 1.148
diff -u -r1.148 rules-install
--- rules-install	27 May 2007 18:33:46 -0000	1.148
+++ rules-install	19 Sep 2007 20:45:43 -0000
@@ -68,6 +68,7 @@
 libglib;make:install
 libungif;make:install:DESTDIR=TARGET
 libiconv;make:install:DESTDIR=TARGET
+libFLAC;make:install:DESTDIR=TARGET
 
 #
 # contrib apps
@@ -93,6 +94,7 @@
 parted;make:install
 xfsprogs;make:install:DESTDIR=TARGET
 smartmontools;make:install:DESTDIR=TARGET
+wget;make:install:DESTDIR=TARGET
 
 #
 # msttf
Index: rules-make
===================================================================
RCS file: /cvs/tuxbox/cdk/rules-make,v
retrieving revision 1.372
diff -u -r1.372 rules-make
--- rules-make	9 Jul 2007 21:03:04 -0000	1.372
+++ rules-make	19 Sep 2007 20:45:43 -0000
@@ -76,6 +76,7 @@
 libglib;2.8.3;glib-2.8.3;glib-2.8.3.tar.gz;extract:glib-2.8.3.tar.gz
 libungif;4.1.3;libungif-4.1.3;libungif-4.1.3.tar.bz2;extract:libungif-4.1.3.tar.bz2
 libiconv;1.9.1;libiconv-1.9.1;libiconv-1.9.1.tar.gz;extract:libiconv-1.9.1.tar.gz
+libFLAC;1.2.0;flac-1.2.0;flac-1.2.0.tar.gz;extract:flac-1.2.0.tar.gz;patch:flac.diff
 
 #
 # contrib apps
@@ -104,6 +105,7 @@
 libtool;1.5.22;libtool-1.5.22;libtool-1.5.22.tar.gz;extract:libtool-1.5.22.tar.gz
 smartmontools;5.36;smartmontools-5.36;smartmontools-5.36.tar.gz:smartmontools.diff;extract:smartmontools-5.36.tar.gz;patch:smartmontools.diff
 samba;1.9.18p8;samba-1.9.18p8;samba-1.9.18p8.tar.gz:samba_ppc.diff;extract:samba-1.9.18p8.tar.gz;patch:samba_ppc.diff
+wget;1.10.2;wget-1.10.2;wget-1.10.2.tar.gz;extract:wget-1.10.2.tar.gz
 
 #
 # msttf
jmittelst
Tuxboxer
Tuxboxer
Beiträge: 6044
Registriert: Montag 17. November 2003, 06:48

Beitrag von jmittelst »

Thx! Wird am Wochenende getestet!

cu
Jens
jmittelst
Tuxboxer
Tuxboxer
Beiträge: 6044
Registriert: Montag 17. November 2003, 06:48

Beitrag von jmittelst »

Also DietmarWs neutrino-jffs2.img2x mit dem Datum von heute weigert sich, Flac zu zeigen und zur Playliste zu übernehmen (nachdem die durch "blau" sichtbar gemacht wurden. Schade, hätte gern getestet.

cu
Jens
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

dietmar w images sind ja auch cvs Stand. Im cvs ist aber momentan nur die Neutrino flacdecoder Abtraktion.
Die FLAClibrary selber und der Rest sind noch nicht im cvs - daher noch die diffs
mulder77
Neugieriger
Neugieriger
Beiträge: 18
Registriert: Dienstag 7. Februar 2006, 23:50

Beitrag von mulder77 »

Oh, sauber. Da ging ja doch noch was.
Leider habe ich dermaßen selten Zeit (Beruf, Familie), dass ich einfach nicht dazu gekommen bin, mich darin einzuarbeiten.

Läuft es denn jetzt? Werde aus euren Meldungen nicht so recht schlau.
Werde mal die Sourcen in Ruhe anschauen, etwas Lerneffekt mitnehmen.


mulder77
PS: Wenn meine Spielerei dazu geführt hat, dass Neutrino nun FLAC kann, ist das ja auch schon was...
jmittelst
Tuxboxer
Tuxboxer
Beiträge: 6044
Registriert: Montag 17. November 2003, 06:48

Beitrag von jmittelst »

Houdini hat geschrieben:dietmar w images sind ja auch cvs Stand. Im cvs ist aber momentan nur die Neutrino flacdecoder Abtraktion.
Die FLAClibrary selber und der Rest sind noch nicht im cvs - daher noch die diffs
Ah, OK, dann kapiere ich das. Ich war da dann irriger Annahme...
Muß ich also warten, bis mal jemand ein Testimage damit baut.

cu
Jens
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 18:18

Beitrag von dbt »

Da fehlen noch irgendwie die FLAC-includes in ~/tuxbox-cvs/driver/include/FLAC
Ich habe bei mir die Includes manuell reinkopiert, dann läufts sauber durch, sollte man noch regeln. :wink:
Make steigt hier aus:

Code: Alles auswählen

Making all in audiodec
make[5]: Entering directory `/home/dbt/tuxbox-cvs/apps/tuxbox/neutrino/src/driver/audiodec'
if powerpc-tuxbox-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I../../../src -I../../../lib -I/home/dbt/dbox2/cdkroot/include/freetype2 -I/home/dbt/dbox2/cdkroot/include -I/home/dbt/dbox2/cdkroot/include/tuxbox     -I/home/dbt/tuxbox-cvs/driver/dvb/include -I/home/dbt/tuxbox-cvs/driver/include  -Wall -mcpu=823 -pipe -Os -MT basedec.o -MD -MP -MF ".deps/basedec.Tpo" -c -o basedec.o basedec.cpp; \
        then mv -f ".deps/basedec.Tpo" ".deps/basedec.Po"; else rm -f ".deps/basedec.Tpo"; exit 1; fi
In file included from basedec.cpp:39:
./flacdec.h:40:22: FLAC/all.h: No such file or directory
In file included from basedec.cpp:39:
./flacdec.h:65: error: ISO C++ forbids declaration of `FLAC__StreamDecoder' with no type
./flacdec.h:65: error: expected `;' before '*' token
./flacdec.h:68: error: `FLAC__uint64' does not name a type
./flacdec.h:71: error: ISO C++ forbids declaration of `FLAC__StreamMetadata' with no type
./flacdec.h:71: error: expected `;' before '*' token
./flacdec.h:74: error: `FLAC__StreamMetadata_VorbisComment' has not been declared
./flacdec.h:74: error: ISO C++ forbids declaration of `parameter' with no type
./flacdec.h:75: error: `FLAC__StreamDecoder' has not been declared
./flacdec.h:75: error: ISO C++ forbids declaration of `parameter' with no type
./flacdec.h:76: error: `FLAC__StreamMetadata' has not been declared
./flacdec.h:76: error: ISO C++ forbids declaration of `parameter' with no type
./flacdec.h: In constructor `CFlacDec::CFlacDec()':
./flacdec.h:51: error: `mMetadata' undeclared (first use this function)
./flacdec.h:51: error: (Each undeclared identifier is reported only once for each function it appears in.)
make[5]: *** [basedec.o] Fehler 1
make[5]: Leaving directory `/home/dbt/tuxbox-cvs/apps/tuxbox/neutrino/src/driver/audiodec'
make[4]: *** [all-recursive] Fehler 1
make[4]: Leaving directory `/home/dbt/tuxbox-cvs/apps/tuxbox/neutrino/src/driver'
make[3]: *** [all-recursive] Fehler 1
make[3]: Leaving directory `/home/dbt/tuxbox-cvs/apps/tuxbox/neutrino/src'
make[2]: *** [all-recursive] Fehler 1
make[2]: Leaving directory `/home/dbt/tuxbox-cvs/apps/tuxbox/neutrino'
make[1]: *** [all] Fehler 2
make[1]: Leaving directory `/home/dbt/tuxbox-cvs/apps/tuxbox/neutrino'
make: *** [neutrino] Fehler 2
dbt@linux:~/tuxbox-cvs/cdk> 
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

die FLAC header sollten von der library ins cdkroot installiert werden.
Wahrscheinlich fehlt da noch ein target beim make der libFLAC