16:9-Anzeige in der Infobar des Movieplayers

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
kyle_br
Interessierter
Interessierter
Beiträge: 35
Registriert: Donnerstag 11. Dezember 2003, 20:08

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von kyle_br »

So, hab den Code nochmals überarbeitet.
Jetzt sollte auch die Box-Type Abfrage für die Philips Boxen funktionieren.

Wer traut sich das zu testen? Ich kann derzeit nicht.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von seife »

Damit wird der controld-code im movieplayer dupliziert.

Unschön.
kyle_br
Interessierter
Interessierter
Beiträge: 35
Registriert: Donnerstag 11. Dezember 2003, 20:08

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von kyle_br »

Ich weiß, aber unschön wars vorher auch schon.
So sollte es wenigstens funktionieren.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von seife »

Wenn man auf einen Haufen immer weiter draufscheißt, wird er aber nie kleiner ;)

Den movieplayer mag so schon keiner mehr anfassen. Das hat einen Grund.
kyle_br
Interessierter
Interessierter
Beiträge: 35
Registriert: Donnerstag 11. Dezember 2003, 20:08

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von kyle_br »

Ich finds ja auch nicht toll, nur hab ich da einfach keinen Überblick über das Zusammenspiel zwischen den einzellnen Komponenten wie zapit, neutrino, movieplayer usw. und wann wer wie worauf zugreift bzw. Zugriff hat.

Deshalb ists halt fürs erste nur ein "Pflaster" geworden.
dwilx

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von dwilx »

Wie soll man da nun aus dem Dilemma rauskommen, wenn's "schön werden soll? Gilt das auch für den MP2?
kyle_br
Interessierter
Interessierter
Beiträge: 35
Registriert: Donnerstag 11. Dezember 2003, 20:08

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von kyle_br »

Soweit ich das jetzt gesehen hab, ists im MP2 für die Triple Dragon "schön", und für die anderen genauso wie beim MP1.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von seife »

Ich dachte, für die dreambox wär's auch wie bei der TD. Kann mich aber irren.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von Gaucho316 »

Im JtG-Forum hat mal wieder jemand auf das "checkAspectRatio"-Problem aufmerksam gemacht. Es wäre schön, wenn das mal jemand endgültig fixen würde. Ich blick da zu wenig durch, um das machen zu können.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von GetAway »

Also im MP1 sehe ich kein Problem.

Videoformat steht auf 'auto'
Sendung läuft im 16:9 Format, Aufnahme ist im 4:3 Format:
Log beim Starten:

Code: Alles auswählen

[mp] entering player loop
[controld] VIDEO_EVENT_SIZE_CHANGED 720x576 (16:9 -> 4:3)
[movieplayer.cpp] AR change detected in auto mode, adjusting display format
Sendung läuft im 4:3 Format, Aufnahme ist im 16:9 Format
Log:

Code: Alles auswählen

[mp] entering player loop
[controld] VIDEO_EVENT_SIZE_CHANGED 720x576 (4:3 -> 16:9)
[movieplayer.cpp] AR change detected in auto mode, adjusting display format
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von Gaucho316 »

Kannst du denn das Verhalten nicht nachvollziehen, das in folgendem Posting beschrieben wird? Ich kann's sowieso nicht prüfen, da ich noch 'nen 4:3-Röhrenfernseher habe.

http://forum.tuxbox.org/forum/viewtopic ... 94#p375794
kyle_br
Interessierter
Interessierter
Beiträge: 35
Registriert: Donnerstag 11. Dezember 2003, 20:08

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von kyle_br »

Gaucho316 hat geschrieben:Ich kann's sowieso nicht prüfen, da ich noch 'nen 4:3-Röhrenfernseher habe.
Das kann man auch mit einem 4:3-Röhrenfernseher testen, solange der in der Lage ist, je nach Signal-Pegel am PIN8 des Scart Steckers, die schwarzen Balken zu generieren.

Also der "automatisch"-Modus macht auch bei 4:3 TVs Sinn.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von GetAway »

Gaucho316 hat geschrieben:Kannst du denn das Verhalten nicht nachvollziehen, das in folgendem Posting beschrieben wird? Ich kann's sowieso nicht prüfen, da ich noch 'nen 4:3-Röhrenfernseher habe.

http://forum.tuxbox.org/forum/viewtopic ... 94#p375794
Theoretisch schon. Fällt bei meinem Panasonic aber nicht auf.

Wie kyle_br schon schrieb geht es nicht, weil zapit in Standby ist und damit auch der Videodekoder. Jedenfalls in der Dbox.
Wieso das bei anderen Geräten funktioniert ist klar, dort bleibt der Videodekoder aktiv und kann dadurch das Videoformat ändern.
Sieht man ja in zapit.cpp

Code: Alles auswählen

#ifdef HAVE_DBOX_HARDWARE
    // needed in standby to correct aspect ration in movieplayer, but not on dbox...
    if (videoDecoder) {
        delete videoDecoder;
        videoDecoder = NULL;
    }
#endif
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von seife »

Mach doch einfach mal das "#if dbox" an der stelle weg und lass den videodekoder weiter existieren. Evtl. reicht das schon als fix.

Weil der Aspectratiowatchdog läuft eigentlich weiter, aber...

Code: Alles auswählen

void CControldAspectRatioNotifier::aspectRatioChanged( int newAspectRatio )
{
»·······/* the videodecoder gets initialized after the watchdog thread is started
»·······   but we can get an even when zapit is in standby (e.g. movieplayer on
»·······   dbox), so set the global aspectRatio values first... */
»·······int activeAspectRatio;
»·······settings.aspectRatio_dvb = newAspectRatio & 0xFF;
»·······settings.aspectRatio_vcr = (newAspectRatio & 0xFF00) >> 8;
»·······if (settings.vcr)
»·······»·······activeAspectRatio = settings.aspectRatio_vcr;
»·······else
»·······»·······activeAspectRatio = settings.aspectRatio_dvb;

»·······/* ...then check for videodecoder and return to not crash later. */
»·······if (!videoDecoder)
»·······»·······return;
...tut nchts, wenn der vdec nicht da ist...
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von GetAway »

Hatte ich schon. Dann kommt das.

Code: Alles auswählen

[mp] PlayFileThread starts
[mp] vdec /dev/dvb/adapter0/video0: Device or resource busy
[mp] error opening some DVB devices
[mp] mp_playFileThread terminated due to error
bzw. er crashed dann, aber es funktioniert mindestens 1x. Man müsste also das Crashen in den Griff bekommen.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von seife »

nein, das hilft nicht. der Videodecoder kann nur einmal geöffnet werden... das ist also nicht so einfach...
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von Gaucho316 »

Früher hat die Formatumschaltung doch auch wunderbar funktioniert. Warum ist das jetzt anders? Wurde denn der Video-Dekoder früher nicht beim Start des MP deaktiviert? Und ist das tatsächlich noch eine der Auswirkungen des "controld-zapit-merge"?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von seife »

Das ist vermutlich schon noch eine Nebenwirkung davon. Wie der MP1 das früher gemacht hat, weiss ich leider auch nicht so genau.

Am einfachsten (wenn auch nicht schön) wird es sein, den controld-code im MP1 zu duplizieren.
Funktioniert das denn im MP2 auf der dbox? Kann ich mir irgendwie auch nicht recht vorstellen, ich hab den Code aber auch nicht mehr auswendig parat...
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von GetAway »

Früher war das setVideoFormat im Controld Deamon, jetzt ist es in video.cpp und das Objekt stirbt halt beim Aufruf des MP.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von seife »

aber ein teil davon hätte doch auch im vdec sein müssen (wenn nicht die Schaltspannung verwendet wird, aber letterbox / panscan geschaltet wird, dann muss das IMHO der dekoder machen. Oder macht das der SAA7126? muss ich mal schauen...)

Ich schau mal drauf.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von seife »

Eigentlich könnte das gehen.
GetAway, probier mal folgendes:
* in infoviewer.cpp:CInfoViewer::handleMsg() ein printf einbauen, ob NeutrinoMessages::EVT_MODECHANGED dort ankommt, wenn der MP läuft und AR sich ändert
* in zapit/src/eventwatchdog.cpp:CEventWatchDog::videoModeChanged() ein printf einbauen, ob das aufgerufen wird, wenn MP...
* schau, ob der printf aus eventwatchdog.cpp:281 im log auftaucht, wenn der MP läuft und der AR sich ändert.
* in zapit/src/controld.cpp:CControldAspectRatioNotifier::aspectRatioChanged() ebenfalls ein printf einbauen, ob das da ankommt.

Weil eigentlich ist mir nicht ganz klar, warum das momentan nicht funktioniert....

vielleicht funkt auch der AR-Code des MP1 dazwischen und im MP2 gehts? Weil da habe ich das ja extra weggelassen, wenn ich mich recht erinnere...
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von GetAway »

Werde es mal probieren.
Hier mal ein Log vor dem controld-zapit-merge.
Start play:

Code: Alles auswählen

[mp] entering player loop
[controld] VIDEO_EVENT_SIZE_CHANGED 720x576 (16:9 -> 4:3)
[controld] format: 4:3(LB)
[zapit] cmd 56 refused in standby mode
[movieplayer.cpp] AR change detected in auto mode, adjusting display format
stop play

Code: Alles auswählen

File /var/tuxbox/config/movieplayer.end not found. Please create if needed.
: No such file or directory
[controld] setting VideoFormat to auto
[controld] format: 4:3(LB)
[controld] VIDEO_EVENT_SIZE_CHANGED 720x576 (4:3 -> 16:9)
[controld] format: 16:9
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von seife »

Also. kyle_br's code ist vermutlich die einzig gangbare Lösung.

Im "Normalbetrieb" übernimmt "videoDecoder->setVideoFormat" sowohl das korrekte skalieren (wenn displayformat == 4:3 oder 16:9) als auch das korrekte setzen der SCART-Spannung (wenn displayformat == auto).

Das Skalieren macht der Movieplayer selber auf der dbox, aber das SCART-setzen nicht. Das muss man also einbauen, so wie es kyle_br gemacht hat. Oder so ähnlich.

Allerdings dürfte es auf der dreambox nicht notwendig sein, weil die IIRC den dekoder offen lassen kann und deswegen kann zapit das einstellen. Muss ich wohl oder übel mal probieren ;-)

Ich komme aber die nächsten Tage nicht dazu, es wird also noch ein paar Wochen dauern.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von GetAway »

Ja, man braucht das nur für die Dbox, man könnte den Codeabschnitt aber auch verlagern,
dann ist er jedenfalls nicht doppelt und kann auch aufgrufen werden, wenn das Object videoDecoder
nicht existiert.
Was jetzt besser ist solltest Du entscheiden, denn der Haufen wird nicht kleiner, wenn man immer
nur drauf scheißt. :wink:
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: 16:9-Anzeige in der Infobar des Movieplayers

Beitrag von seife »

Am Einfachsten wird es vermutlich sein, das mit einem ordentlichen Kommentar in den movieplayer zu packen.

Wenn wir das setzen der SCART-Spannung wieder aus dem Videodecoder rausnehmen, dann trifft das alle nicht-dboxen. Alternativ könnte man auch dem Videodecoder ein "close()" mitgeben, dass er nur das video device freigibt, aber dann wäre immer noch eine Hälfte im zapit (SCART Spannung) und die andere Hälfte im Movieplayer (Scaling). Das ist auch nicht überischtlicher oder logischer.

Und wenn das jetzt einmal gefixt ist, dann wird das auch hoffentlich nicht mehr angefasst werden müssen.

Schauen wir einfach, dass wir den Haufen nur möglichst wenig erhöhen ;-)