Movieplayer stürzt ab bei multiselect mit mehr als 30 Files

zonie
Interessierter
Interessierter
Beiträge: 26
Registriert: Donnerstag 1. März 2007, 02:19

Movieplayer stürzt ab bei multiselect mit mehr als 30 Files

Beitrag von zonie »

Hi.

(Ich hatte dies hier schonmal an anderer Stelle gepostet, aber von dort wieder entfernt da sich keiner drum kuemmert.)

Die Multi_Select option im MoviePlayer macht mir Probleme, wenn ich über Kontextmenü (Blaue Taste) und "TS Abspielen" einen Film auswählen möchte.

Meine Box stirbt nach der Auswahl des Verzeichnisses.

Die Ursache liegt in einer maximal eingestellten Anzahl an Dateien, die über Multi_Select abgespielt werden können.

30 *.ts Files in einem Verzeichnis funktionieren noch.
Bei 31 gibts den segfault.

Wer das programmiert hat, sollte sich folgende Dinge anschauen:

neutrino/src/gui/movieplayer.cpp: (Rev: 1.142)

Zeile 1329:

Code: Alles auswählen

#define PF_LST_ITEMS 30
Zeile 1412:

Code: Alles auswählen

	MP_LST_ITEM lst[PF_LST_ITEMS];
und ab Zeile 2681:

Code: Alles auswählen

         	for (unsigned int i = 0; i < filelist.size(); i++) {
             	ctx->lst[ctx->lst_cnt].pname = filelist[ctx->lst_cnt].Name.c_str();
             	ctx->lst_cnt++;

Der Filebrowser gibt einfach alle Dateien zurueck, die er findet.
Der PlayerThread achtet jedoch nicht auf die fixe Größe des
ctx->list Arrays. ist eh bisschen doof so 'ne statische Beschränkung.
Wozu gibt es 'echte' Listen?

Vielleicht mag sich das wer ansehen, der da seine Finger drin hat.

Danke
Papst
Developer
Beiträge: 279
Registriert: Mittwoch 26. Juni 2002, 22:19

Beitrag von Papst »

Ich nehme an du willst nicht jedes mal alle Dateien in deinem Fimverzeichnis auswählen oder? Bei aktiviertem Multiselect geht der Verzeichniswechsel über die Taste Rechts.
Habs auf jeden Fall mal gefixed. Maximale 30 Dateien können nun ausgewählt werden. Denke das sollte reichen.
Gruß

Der Papst
zonie
Interessierter
Interessierter
Beiträge: 26
Registriert: Donnerstag 1. März 2007, 02:19

Beitrag von zonie »

Cool. Hier gibts ja wahnsinnig schnelle Hilfe ... :D

Vielleicht sollte der fix aber eher lauten:

Code: Alles auswählen

for (unsigned int i = 0; (i < PF_LST_ITEMS) && (i < filelist.size()); i++) {
oder

Code: Alles auswählen

for (unsigned int i = 0; i < MIN(PF_LST_ITEMS,filelist.size()); i++) {
Trotzdem Danke ... ;)
Papst
Developer
Beiträge: 279
Registriert: Mittwoch 26. Juni 2002, 22:19

Beitrag von Papst »

Ich hab den fix gefixed. Sorry. Mit eingeschaltetem Gehirn geht sowas viel besser
Gruß

Der Papst