[ R A V E N @ 10.01.2010. 17:25 ] @
Interesuje me kako isprogramirati aplikaciju, preciznije engine, koja bi barem bila u stanju obaviti funkciju "otvori .mp3 datoteku i pošalji zvuk na zvučnike", da se tako izrazim. Kako takvo nešto napraviti from the scratch? Valjda bi trebalo posjedovati neku dokumentaciju koja opisuje .mp3 format.

Ne pitam za već gotove biblioteke, kojih ima na Internetu sa njihovim sourceom. Koliko sam vidio, pisanje nečega takvog nije nimalo naivna stvar.

Ne mora to biti .mp3, može biti .ogg, .flac, .wav...

Sad, uzmimo za primjer da dva različita programera pišu taj engine. Da li je moguće da jedan od njih stvori engine koji je brži, manji i kvalitetniji od ovog drugog ili postoji neki standard prema kojem se oba moraju povinovati?
[ BinaryRuler @ 10.01.2010. 18:40 ] @
Nije to bas tako jednostavno. Mp3 je kompresovan format, sto znaci da bi bilo sta mogao da uradis sa njim moras prvo da ga dekompresuje. Bez neke biblioteke malo je cupavo da se uradi. Evo ti jednog primera http://www.ucancode.net/Visual_C_Control/Play-MP3-File-VC-Sample-Player.htm
[ R A V E N @ 10.01.2010. 18:49 ] @
Da, da, možda sam zakomplikovao u prvoj poruci, ali suština onoga što tražim je: "evo ti pjesma.mp3 datoteka, napravi mi program from the scratch da je mogu preko njega čuti".
[ Goran Rakić @ 10.01.2010. 19:03 ] @
Programa koji odgovaraju jednoj funkciji ima neprebrojivo mnogo dokazivo Kantorovom dijagonalizacijom i samim tim postoje manje i više zahtevni i po prostoru i po vremenu. Nemoguće je dokazati da je program X najbrži/najsporiji.
[ R A V E N @ 11.01.2010. 16:14 ] @
Prema tome, uvijek ima mjesta za poboljšanje/unaprijeđenje programa/biblioteke.
[ R A V E N @ 11.01.2010. 19:56 ] @
Da preformulišem pitanje: recimo da relativno dobro znam i C i C++ i želim da u neki program za slušanje muzike dodam podršku za MPEG-1 Layer III (što je službeni naziv za tzv. "MP3-ce") bez da koristim već napisani kôd, već da ga sam napišem.

Odakle da krenem?
[ BinaryRuler @ 11.01.2010. 20:48 ] @
Recimo odavde
[ BinaryRuler @ 11.01.2010. 20:53 ] @
eventualno da krenes odavde ili odavde

Ja sam nasao ovo za par minuta googlanja.
[ w3bl0rd @ 12.01.2010. 06:53 ] @
ti imaš stvarno previše vremena kad ideš izmišljat toplu vodu :))
[ R A V E N @ 12.01.2010. 12:54 ] @
Pogrešna ti je ta izjava.
[ Ivan Dimkovic @ 12.01.2010. 13:12 ] @
Ako hoces da implementiras MP3 dekoder "from the scratch", onda te zanimaju sledeci ISO standardi: ISO/IEC 11172-3 za MPEG-1 Layer III

Ili ISO/IEC 13818-3 za MPEG-2 Layer III

Tj. moraces implementirati i MPEG-1 i MPEG-2 Layer III ako zelis da budes skroz kompatibilan.

Sam standard (standarde) mozes naruciti sa www.iso.org (mada postoje kopije koje mozes naci i na nekim sajtovima, koristi google).

Standard je u PDF formi, i sadrzi sve sto je potrebno za implementiranje dekodera - ali tu ima prilicno puno stvari koje su potrebne, pogotovu ako nisi nikad radio tako nesto.

Postoji i ISO referentni ANSI-C kod, koji implementira kompatibilan MP3 dekoder, koji mozes koristiti kao referencu. Sve pise u standardu ;-)
[ w3bl0rd @ 12.01.2010. 13:13 ] @
da nisam stavio na kraj ":))" bi možda i bila, na kraju krajeva ne znam zašto to tebi treba, možda želiš shvatiti na koji način mp3 radi, kako se producira zvuk ko zna što, to si možda i trebao navesti, jer ići raditi podršku za mp3 u samom programu od nule je jako glupa stvar
[ Ivan Dimkovic @ 12.01.2010. 13:17 ] @
Nije glupa stvar uopste, i uopste nije bas korisno davati ocene o necemu za sta nema dovoljno informacija o razlogu, kao u ovom konkretnom slucaju.

Evo par primera:

- moze da bude diplomski rad / studentski projekat na kursevima digitalne obrade signala
- moze da bude komercijalna narudzbina ako neka firma zeli "cistu" implementaciju sa jasnom IP situacijom

Itd...

Dakle, svakako ima razumnih razloga zasto bi neko raspisao MP3 dekoder od nule.

[ BinaryRuler @ 13.01.2010. 16:51 ] @
Mislim da ovoj temi nije mesto u sekciji za pocetnike :)
[ R A V E N @ 14.01.2010. 02:45 ] @
Odgovoriću nešto kasnije detaljnije na ovu temu, ali za sada...

Zašto je nemoguće na Internetu (lagano) doći do službenog dokumenta koji opisuje MPEG-1 Layer III format? Kako su nastale sadašnje implementacije softverskih dekodera ovog formata? Reverse engineeringom običnih .mp3 datoteka "na divlje"?