UPDATE 25.05.2006 !! Movieplayer Patch from CDH555

PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

UPDATE 25.05.2006 !! Movieplayer Patch from CDH555

Beitrag von PT-1 »

Hi,

a UK user already provided an update for the movieplayer to prevent it from crashing when working together with VLC.

This Patch is tested with VLC 0.8.5

http://www.pt-1.net/AddOns/CDH555_Movieplayer_Patch.txt

It is based on the 1.127
Zuletzt geändert von PT-1 am Mittwoch 17. Dezember 2008, 15:16, insgesamt 2-mal geändert.
palace
Erleuchteter
Erleuchteter
Beiträge: 441
Registriert: Dienstag 11. März 2003, 03:42

Beitrag von palace »

Hat sich das mal einer angeschaut?
Zwen
Developer
Beiträge: 867
Registriert: Mittwoch 14. August 2002, 18:50

Beitrag von Zwen »

hi, kann nur kurz ein paar Bemerkungen zum Code loswerden...
Schade, dass man in UK keinen "diff" kennt, aber auf einer Insel muss das ja so kommen ;-)
Entscheidend ist wohl nur dieser Teil:

Code: Alles auswählen

std::string emptyurl = baseurl;
emptyurl += "?control=empty";
httpres = sendGetRequest(emptyurl, response, false);
Damit wird wohl die Playlist gelöscht...
Der Rest ist IMHO ein Versuch etwas Speicher zu sparen, indem die Temp-Datei /tmp/tmpts gelöscht wird, leider geht gerade dabei unumgänglich Speicher verloren (zumindest solange neutrino läuft) -> fopen ohne fclose...
Warum alle Aktionen über system() Aufrufe realisiert sind und nicht über die c-api ist mir auch schleierhaft.
Also ich denke wer Lust und Zeit hat könnte den obigen Teil mal testen, den Rest würde ich erstmal verwerfen...
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Don't shoot the messenger ...

Ich gebe ja nur die Info weiter und wenn es dem Movieplayer hilft dann ist das doch fuer alle gut....
Zwen
Developer
Beiträge: 867
Registriert: Mittwoch 14. August 2002, 18:50

Beitrag von Zwen »

actually I was not aiming at the messanger, sorry if I missed ;-)
Ein bischen kritik wird aber doch wohl erlaubt sein (zumal sie meiner Meinung nach konstruktiv ist)

Fazit: 3 Zeilen zu testen, Freiwillige ?
Papst
Developer
Beiträge: 279
Registriert: Mittwoch 26. Juni 2002, 21:19

Beitrag von Papst »

Hab ich getestet. Der Fehler, dass nach Auswahl eines neuen Files trotzdem nochmal das Alte abgespielt wird, scheint behoben zu sein.
Was leider schon ewig nicht funktioniert ist VLC auf Pause (Gelbe Taste) zu setzen.
Wo wir schonmal dabei sind fänd ich auch gut wenn man, wie im TS-Abspielen, nach Filmende wieder in den Filebrowser kommt und nicht sofort wieder zum Fernsehbild.
Gruß

Der Papst
Zwen
Developer
Beiträge: 867
Registriert: Mittwoch 14. August 2002, 18:50

Beitrag von Zwen »

dann check ich es mal ein...
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

wegen dem fopen ohne fclose werde ich mich mal mit cdh555 absprechen.

Eventuell hat er da ja noch ideen bzw. moechte er vielleichts selbst in die diskussion einsteigen. War ja seine arbeit, nicht meine...
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 16:04

Beitrag von Tommy »

PT-1 hat geschrieben:wegen dem fopen ohne fclose werde ich mich mal mit cdh555 absprechen.

Eventuell hat er da ja noch ideen bzw. moechte er vielleichts selbst in die diskussion einsteigen. War ja seine arbeit, nicht meine...
Warum postet er nicht einfach selbst? Ich glaub die meisten verstehen doch englisch. Ich weis nicht ob Die Made was gegen englische Beiträge in "non Foreign Guests Forum" Threads hat?! :wink:
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Zwen
Developer
Beiträge: 867
Registriert: Mittwoch 14. August 2002, 18:50

Beitrag von Zwen »

soll einfach statt dem fopen, system("rm...") ein
unlink("/tmp/tmpts") machen...
Wenn das File nicht existiert, wird auch nichts gelöscht, die prüfung auf File-Existenz ist IMHO überflüssig. Wozu der sleep 1 dient ???
Zwen
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Habe Ihm gemailt und warte ab ob er antwortet
cdh555
Beiträge: 2
Registriert: Donnerstag 1. Juni 2006, 17:03

Beitrag von cdh555 »

Hello.

First PT-1 has told me the first three line mod has now been accepted, thanks! :)

As for the other chunk.
First one posted as Org line 383 in (see first post).

Now I've been told you do not like the fopen without a close. Fair point, I did it this way as at the time it was the only way I could check to see if a file existed and then delete it if it did. The "sleep 1" is there purely to ensure the action is done without a problem and can be removed if you are sure it can perform without it.

I have come up with the following as my new change add the following line to the existing code change, as a new line right at the end.

Code: Alles auswählen

fclose(check1);
Sorry I can't post it properly but the forum will not let me post proper lines of code within the tags.

This closes the file and so should be a lot better. It's a case of repeating it for the second change (Org line 1139 in the first post).

Now the reason for performing the check twice is to actually ensure the file gets deleted once movieplayer is done. I've had it once not delete but with both of these in place it is always removed.

That's it.
Any questions please ask and if I can anser I will.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Die Made

is there a special reason that we can't post code in the Developer section...

Anythning more than 3 lines and you get a database error :gruebel:
DieMade
Oberlamer, Administrator & Supernanny
Beiträge: 10532
Registriert: Samstag 13. Juli 2002, 09:49

Beitrag von DieMade »

It's not "more than 3 lines", it's "bad code that *may* contain SQL/php/whatever injection" that gets rejected by the server.

Sorry for that, but phpBB and php are too insecure sometimes :-?
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

The wierd thing is in the Feature request people are posting lines and lines of code but the Movieplayer stuff in here get's rejected.... :gruebel:

I hope Zwen understands what CDH555 was on about ;-)
DieMade
Oberlamer, Administrator & Supernanny
Beiträge: 10532
Registriert: Samstag 13. Juli 2002, 09:49

Beitrag von DieMade »

Sorry for that, but I'm not willing to change this (very basic) security feature. Some code gets rejected while others doesn't - thats the filter's decision, not mine.

Just use some pastesides for this and link to that paste - makes the database smaller too :)
There are 10 types of people in the world: those who know binary and those who don't
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

No Problem Cheffe ;-)
Zwen
Developer
Beiträge: 867
Registriert: Mittwoch 14. August 2002, 18:50

Beitrag von Zwen »

@cdh555:
Why not just call

Code: Alles auswählen

unlink("/tmp/tmpts");
It doesn't really matter wether the file exists or not, if you just ignore the return code from unlink...
Zwen
Developer
Beiträge: 867
Registriert: Mittwoch 14. August 2002, 18:50

Beitrag von Zwen »

PT-1 hat geschrieben:The wierd thing is in the Feature request people are posting lines and lines of code but the Movieplayer stuff in here get's rejected.... :gruebel:
No-one is rejecting anything here. It just me not checking in things I don't know what they're supposed to do and which are obviously errornous and no well programmed.
It's always the the same discussion. People complain about code not being checked in. My opinion is that if nobody cares about code quality the system wouldn't be able to be handle and to be extended anymore within a year. I have seen this happen many times.
Too bad thegoodguy quit his job as the tuxbox cleaning woman ;-)
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 16:04

Beitrag von Tommy »

@Zwen:
I think the comment was related to the Boardsoft and posting codefragments here - not related to the CVS :lol:
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Sorry,

what I meant to explain was that for example in the Feature Request Section MBxxx posted some lines of code (about 10) for the Infoviewer/logoviewer and these Lines are fine.

The Forum Software rejects the code I / CDH555 tried to post ;-)

This was just me not understanding the Filter Gurgel then explained in his post :lol:

Nothing negative about you guys not just randomly checking in any old piece of code :D :D :D

You guys keep the good work up and it is nice to see that even after a few people declared the Dbox as dead it's still around and kicking ar$e ;-)
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Tommy

you beat me to it ;-)
Zwen
Developer
Beiträge: 867
Registriert: Mittwoch 14. August 2002, 18:50

Beitrag von Zwen »

oops, of course, how stupid :oops:
cdh555
Beiträge: 2
Registriert: Donnerstag 1. Juni 2006, 17:03

Beitrag von cdh555 »

@Zwen
Zwen hat geschrieben:@cdh555:
Why not just call

Code: Alles auswählen

unlink("/tmp/tmpts");
It doesn't really matter wether the file exists or not, if you just ignore the return code from unlink...
I didn't know that way of doing it. I just did it the way I knew.
If that will delete the file if it exists then by all means change my 5 or 6 lines of code to your suggested single line. Then at least the file will be deleted at those points when checked and everything will be good :)
Unfortunately I can't compile it or check beyond what I have.

Thanks for pointing out an easier way of doing it.
Carjay
Developer
Beiträge: 122
Registriert: Sonntag 23. April 2006, 11:37

Beitrag von Carjay »

cdh555 hat geschrieben:I didn't know that way of doing it. I just did it the way I knew.
You should take a look at:
http://www.gnu.org/software/libc/manual/
and spend some time getting to know the possibilities of the GNU libc.

system() is always a bad idea because it basically starts a new process (a new shell) which takes ages to do and because it's a separate process it invites all sorts of race conditions (I guess the "Sleep" you felt necessary to use is a consequence of that).