1

Temat: ladowanie duzych plikow (streaming)

Na czym polega problem?

Pliki maja wielkosc ponad 1mb wiec o zadnym ladowaniu w calosci nie ma mowy
maksymalna wielkosc pliku ograniczona tylko przez file system
pliki zawieraja video (FLI/FLC) ktore ze swojej natury podzielone jest na tzw chunki - chunk ma dlugosc okreslona w jego naglowku, wiec nie ma zadnej pewnosci ze zaladuje sie caly do bufora
jesli to bylby msdos, to zaladowalbym jakas czesc pliku do bufora (np 64k) rozpakowal ile sie da (czyli ile mam calych chunkow) na ekran wyswietlajac animacje, policzyl roznice miedzy dlugoscia bufora a dlugoscia rozpakowanych chunkow, cofna o tyle pointer pliku i zaladowal ponownie bufor

jedynym znanym mi dosem, ktory ma w ogole fseek jest sparta (chociaz nie wiem jak z tego skozystac) - ktos moze zapronowac inne metody?

oczywiscie cala zabawa we fli/flc nie ma najmniejszego sensu bez twardego dysku, chociaz pewnie mozna cos osiagnac z irq loaderem

tak czy inaczej jestem dzwieczny za wszelkie porady i pomysly, jesli bedzie sdx only to mnie to zupelnie nie przeszkadza ;)

przechodze na tumiwisizm

2

Odp: ladowanie duzych plikow (streaming)

Bez sensu cofać pozycję. Wystarczy zawinąć bufor:
Po obsłużeniu ostatniego całego chunka zapamiętujesz gdzie zaczyna się ten, który nie wszedł w całości (nazwijmy to punktem X1), i kolejny fragment pliku ładujesz od początku bufora (nazwijmy go punktem Y1), aż do X1. Ten chunk jest teraz go teraz cały w pamięci, tylko zawinięty przez granice bufora.
Obsługujesz wszystkie chunki które są w całości, i teraz punkt, gdzie skończył się ostatni cały chunk staje się X2, a punkt Y2, czyli logiczny początek bufora, przesuwasz do X1, i ładujesz od Y2 do X2 (w rzeczywistości będziesz najpierw ładował od Y2 do końca fizycznego bufora, a potem od fizycznego początku do Y2).

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.