.[ ČeskéHry.cz ].
SDL_mixer :: distribuce dll :: vlastní komprese
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Hudba / Zvuk
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
mar



Založen: 16. 06. 2012
Příspěvky: 520

PříspěvekZaslal: 18. červen 2012, 15:27:14    Předmět: Odpovědět s citátem

Tím líp, pokud vím, OpenAL je nativní součástí Linuxu, OSXu a dokonce i iOSu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1692
Bydliště: Plzeň

PříspěvekZaslal: 18. červen 2012, 15:38:12    Předmět: Odpovědět s citátem

Našel jsem toto, snad to z toho vycucám...jen nevím, jak je na tom ten vorbis-balast...

Mě v podstatě stačí, abych mohl přehrávat ogg. Malé soubory nahraju celé do paměti, větší budu streamovat...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 520

PříspěvekZaslal: 18. červen 2012, 15:47:33    Předmět: Odpovědět s citátem

To je přesně ono. Jak jsem psal, zkusil bych tremor. To je osekané ogg/vorbis, optimalizované pro celočíselnou aritmetiku pokud se nepletu.
Pak by mělo stačit #include <tremor/ogg.h> nebo tak něco a hotovo. ov_xxx funkce by měly v pohodě fungovat. A klidně to linkovat staticky a hotovo.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
manutara



Založen: 02. 01. 2012
Příspěvky: 81
Bydliště: Kosice SVK

PříspěvekZaslal: 18. červen 2012, 15:56:35    Předmět: OpenAL Odpovědět s citátem

zdravim,

len pre zhrnutie.

ak je naistalovane OpenAL staci do adresara aplikacie dodavat ``alut.dll''
ak to v programe pouzivas.

ak nieje naistalovane OpenAL tak treba prilozit aj OpenAL32.dll, program
pobezi, ale bez zvukov. ak to ma korektne fungovat treba prilozit aj
``wrap_oal.dll'' potom to cele funguje ako ma.

co sa tyka samostatnej instalacie OpenAL, podla vsetkoho nieje nutna. staci
vedla ``.exe'' suboru nakopirovat ``OpenAL32.dll'', ``wrap_oal.dll'' a ak
pouzivas alut tak aj ``alut.dll''.

u mna to tak funguje Wink zatim...
_________________
hadam to OpenGL este par rokov prezije
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1403

PříspěvekZaslal: 18. červen 2012, 16:23:07    Předmět: Odpovědět s citátem

Pokud chceš minimalizovat počet dll, tak je dobré se alut vyhnout. Své k OpenAL32.dll vs wrap_oal.dll jsem už napsal.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VODA



Založen: 29. 07. 2007
Příspěvky: 1692
Bydliště: Plzeň

PříspěvekZaslal: 18. červen 2012, 20:44:55    Předmět: Odpovědět s citátem

Vypadá to, že si to budu muset naprogramovat sám. Ani jedna metoda se mi nelíbí...
Asi to udělám tak, že data ogg načtu do paměti. Dejme tomu, že minuta hudby bude přibližně 3MB, to není moc, paměti máme dost. A pak budu real-time dekódovat a přehrávat podobně jako zde.
Mám zkrátka rád, když mám nad kódem vyšší moc. Very Happy

Takže ve výsledku použiji jen OpenAL...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 520

PříspěvekZaslal: 18. červen 2012, 22:58:41    Předmět: Odpovědět s citátem

Dobrý nápad. A já se mordoval se streamováním oggu ze zipu. Zip reader co je k dispozici se zlibem totiž není thread safe Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1692
Bydliště: Plzeň

PříspěvekZaslal: 19. červen 2012, 09:00:30    Předmět: Odpovědět s citátem

No, to by jsi mi tedy mohl poradit s tím dekódováním. Nastudoval jsem si strukturu dat (kupa OggPage), ale jsem poměrně línej šťourat se ve zdrojácích vorbis-balastu...
I když, asi budu muset... Wink
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 520

PříspěvekZaslal: 19. červen 2012, 13:05:54    Předmět: Odpovědět s citátem

Tak to by snad nemusel být až takový problém.

Co koukám na svůj kód tak z tremoru includuji ogg.h a ivorbisfile.h.

callbacky:

kód:

static ov_callbacks callbacks = {
    (size_t (*)(void *, size_t, size_t, void *))  cb_fread,
    (int (*)(void *, ogg_int64_t, int))              cb_seek,
    (int (*)(void *))                             cb_close,
    (long (*)(void *))                            cb_ftell
};


počítám, že to budeš mít v paměti, takže by to neměl být problém.
Místo FILE * bych dal asi rovnou pointer na ogg v paměti.

kód:

ov_open_callbacks((void *)file, &vf, NULL, 0, callbacks)


otevře ogg. vrací -1 při chybě.
file bude pointer na data a vf je

kód:

OggVorbis_File vf;


informace (pokud bude potřeba):

kód:

vorbis_info *vi = ov_info( &vf, -1 );


vi->rate je samplerate
vi->channels je počet kanálů

čtení:

kód:

int currentSection;
ov_read( &vf, dst, bytes, &currentSection )


vrací počet přečt. bytů nebo -1 při chybě
dst je dest. buffer
pozn. ov_read vrací už dekódovaná data

zavírání:
kód:

ov_clear( &vf );


snad to pomůže
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1692
Bydliště: Plzeň

PříspěvekZaslal: 19. červen 2012, 13:09:07    Předmět: Odpovědět s citátem

Díky, ale nakonec jsem se rozhodl, že si to celé nakódím sám, od píky.
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Ladis



Založen: 18. 09. 2007
Příspěvky: 1484
Bydliště: u Prahy

PříspěvekZaslal: 19. červen 2012, 13:23:30    Předmět: Odpovědět s citátem

Když máš tolik času Smile
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1692
Bydliště: Plzeň

PříspěvekZaslal: 19. červen 2012, 13:24:57    Předmět: Odpovědět s citátem

Mám. Very Happy
Když mi to nepůjde, tak holt šáhnu po nějakém hotovém řešení, ale mě se ani jedno nelíbí, mám vlastní vizi, jak by to mělo fungovat... Wink
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 520

PříspěvekZaslal: 19. červen 2012, 14:03:56    Předmět: Odpovědět s citátem

To je škoda, proč plýtvat časem. Navíc co se ti nelíbí na Ogg parseru/Vobis dekodéru přímo od Xiphu? Stejně to celé zabalíš do classu, takže to bude fungovat tak, jak budeš chtít ty. A to nemluvím o času, který strávíš jenom laděním.
Nebo si snad chceš psát i vlastní audio codec? A co takhle rovnou i vlastní C++ překladač a IDE a třeba i OS? Smile No ale je to tvůj boj...
Každopádně hodně štěstí s enginem i se Sollertií Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1692
Bydliště: Plzeň

PříspěvekZaslal: 19. červen 2012, 14:40:34    Předmět: Odpovědět s citátem

1) Nechci se hrabat v cizím kódu, musím říci, že co jsem tak koukal, tak jejich kód je pěkná prasečina.
2) Potřebuji, abych mohl "streamovat" z paměti a z několika míst (přehrávání stejného zvuku vícekrát)
3) Chci nad tím kódem mít absolutní moc...

Pokud jde o překladač, tak ten dělám (btw).
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 520

PříspěvekZaslal: 19. červen 2012, 15:03:43    Předmět: Odpovědět s citátem

VODA napsal:
1) Nechci se hrabat v cizím kódu, musím říci, že co jsem tak koukal, tak jejich kód je pěkná prasečina.
2) Potřebuji, abych mohl "streamovat" z paměti a z několika míst (přehrávání stejného zvuku vícekrát)
3) Chci nad tím kódem mít absolutní moc...

Pokud jde o překladač, tak ten dělám (btw).


No pořád mi uniká, na co se potřebuješ v jejich kódu hrabat, když z toho využiješ pár funkcí a jednu strukturu? Co s tím uděláš dál je tvoje věc.

(off topic: Super, stavíš to na LLVM nebo úplně komplet vlastní? A C++ nebo vlastní jazyk? Nebo skript?)

EDIT: A co si to do paměti rozbalit rovnou celé, jestli to potřebuješ jenom na samply?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Hudba / Zvuk Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5  Další
Strana 2 z 5

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna