luni, 6 februarie 2012

Delevopment status: TV-Maxe + Pymaxe

Well, aproape că au trecut două săptămâni în care nu am mai scris pe aici, aşa că cred că ar fi timpul să mai pun cititorii acestui blog la curent cu progresul făcut în proiectele mele.

O să încep cu Pymaxe deoarece este mai puţin de zis despre acesta. Am lansat o versiune de dezvoltare (deşi e mai mult un beta - nu conţine build-uri zilnice ale aplicaţiei) care poate fi descărcată de la acest link. Două chestii noi sunt implementate momentan în noua versiune (şi probabil nu vor mai fi implementate altele): posibilitatea de a descărca clipuri în format HD de pe YouTube şi download multi-segment. Ce e acesta din urmă? Ei bine, se pare că şi Trilulilu, şi YouTube au pus o limită la viteza de descărcare a stream-urilor (deajuns cât să nu rămâi fără buffer) ceea ce - evident - face ca descărcarea de muzică cu Pymaxe să dureze, şi să dureze, şi să dureze... Cu downloadul multi-segment (nu prea ştiu cum s-ar traduce asta în română), un fişier multimedia este descărcat de mai multe ori în acelaşi timp, de la poziţii diferite sau - cum s-ar zice - pe bucăţi. Limitarea de viteză pare a fi făcută pe conexiune şi nu pe IP sau sesiune, ceea ce înseamnă că descărcând un singur fişier cu mai multe conexiuni vom reuşi să mai "tăiem" din timpii de aşteptare impuşi de limitările de viteză.

Cu TV-Maxe am avansat foarte mult. Atât de mult încât sigur îmi va scăpa vreo noutate implementată în aceste două săptămâni. Dar să vedem ce e mai important:



  • Listele de canale au fost migrate pe SQLite3. Acest lucru l-am făcut ca să îmi pot lua de-o grijă în caz că va fi necesar vreodată să modific ceva prin formatul listelor de canale: dacă până acum accesarea informaţiilor din acestea se făcea pe bază de indecşi numerici (practic aveam un array), acum accesarea informaţiilor se face pe bază de key-uri (ceva gen lista['nume_cheie']) adică - pentru amatorii de PHP - folosind un array asociativ (sau un dicţionar - cum sunt acestea numite în Python). Iconurile sunt încorporate direct în baza de date, aşa că în acest fel avem toate informaţiile la un loc (iar programul nu va mai trebui să deschidă zeci de conexiuni către Imgur.com ca să îşi ia imaginile). Suportul pentru formatul vechi de liste a fost păstrat, aşa încât vechile liste încă funcţionează în viitoarea versiune de TV-Maxe.
  • Suport îmbunătăţit pentru protocoalele rtsp:// şi rtmp://. Aici a fost nevoie să folosesc un hack destul de murdar pentru a face ca toate cele trei backend-uri ale TV-Maxe (VLC, MPlayer şi GStreamer) să poată citi aceste protocoale: mă conectez la acestea folosind ffmpeg, deschid un server HTTP local la care conectez player-ul video. Am fost nevoit să fac acest lucru deoarece MPlayer nu ştie să se conecteze prin TCP la stream-uri rtps:// decât prin instalarea unei librării (care cam trebuie compilată, de cele mai multe ori), iar VLC nu poate deloc să facă acest lucru. FFMpeg, în schimb, este disponibil pe majoritatea distribuţiilor şi oricum de multe ori este instalat cu alte programe, aşa că adăugarea acestuia ca dependinţă la TV-Maxe nu ar trebui să fie o aşa mare problemă pentru utilizatori.
  • Canalele şterse pot fi acum restaurate. Dacă în versiunile de până acum, odată ce ai şters un canal îţi iei adio de la el (eventual modifici fişierele de configurare ca să apară din nou în listă), începând cu versiunea 0.07 acestea vor putea fi restaurate prin intermediul unei interfeţe grafice puse la dispoziţie de TV-Maxe.
  • Mesaje de eroare în cadrul ferestrei video. Iniţial făcusem nişte dialog-uri care se închideau automat atunci când apărea o eroare, dar acum erorile de conectare sunt afişate în cadrul ferestrei video. În felul acesta nu e nevoie să te mai ridici din pat ca să închizi ferestrele de eroare - doar schimbi canalul şi gata, eroarea dispare.
  • Suport pentru locaţii multiple ale stream-urilor. Dacă un canal este disponibil din mai multe surse, acestea pot fi adăugate în listele de canale iar TV-Maxe se va conecta la fiecare pe rând până va găsi un stream funcţionabil.
  • Filtrare a listelor de canale. După cum se vede în screenshot-ul din link-ul de mai sus, acum există posibilitatea de a filtra canalele în funcţie de listele din care provin. Acest lucru se face prin intermediul combobox-ului de deasupra listelor de canale.
  • Posibilitatea de a seta un icon canalelor personalizate.  Dacă până acum canalele adăugate de utilizator nu aveau niciun icon, acum poate fi setat unul prin intermediul dialogului de adăugare a canalelor.
  • TV-Maxe afişează numărul canalelor din listă. Neimportant, da' e fain de ştiut câte canale se "prind" cu TV-Maxe.
Momentan încă mai sunt bug-uri de fixat şi chestii ce aş vrea să le implementez (un progressbar care să arate cât a mai rămas din emisiunea curentă şi un meniu OSD pe care nu cred că voi reuşi să îl implementez la timp), dar noua versiune de TV-Maxe nu e chiar aşa departe cum anunţasem iniţial. Cu destul spor şi noroc, poate că pe parcursul acestei luni va veni versiunea 0.07 pe care probabil mulţi o aşteaptă.


8 comentarii :

Andrei spunea...

Abia astept noua versiune!

Lupin spunea...

Frumos! Spor la treaba :D

Mannius Tirman spunea...

Așteptăm cu interes noua versiune
TV-Maxe. Spor la muncă în continuare!

Lupin spunea...

pacat ca in camine au blocat porturile si sopecast-ul si tv-maxe-ul nu merg :(...

cristian spunea...

Sa faci pentru TV-MAXE si un fisier .deb

weekend04 spunea...

super tare programul
urmaresc indeaproape evolutia.
un M6 frantuzesc nu merge in lista?
as fi recunoscator...Stima weekend04

cristian spunea...

Ai putea face un plugin tv-maxe pentru xbmc?

Ovidiu Niţan spunea...

Probabil o să fac. Am tot zis că mă uit să văd cum s-ar face, dar am cam avut altele pe cap...