16:9-Anzeige in der Infobar des Movieplayers

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

16:9-Anzeige in der Infobar des Movieplayers

Beitrag von Gaucho316 »

Weiterführung von http://forum.tuxbox.org/forum/viewtopic ... 50#p371650 und http://forum.tuxbox.org/forum/viewtopic ... 55#p371655
Gaucho316 hat geschrieben:Es wird immer das Bildformat-Icon angezeigt, das das Bildformat des zuletzt gesehenen TV-Senders und nicht der abgespielten Aufnahme widerspiegelt. Hat also bspw. der zuletzt gesehene Sender in 4:3 gesendet und ist die Aufnahme in 16:9, wird das Bildformat-Icon nicht gelb.
Kann das jemand bestätigen? Und hat jemand 'ne Ahnung, woran das liegen könnte? Ich nutze den MP1 auf der d-box und laut seife funktioniert es auf der TD im MP2. Sehr merkwürdig. :gruebel: Ich bin leider beim Versuch gescheitert, dem zuständigen Code zu folgen. :(
OSi
Interessierter
Interessierter
Beiträge: 58
Registriert: Sonntag 4. Oktober 2009, 02:58
Sonstiges: Belkin F7D3302 mit dd-wrt (kong mod) + ICY BOX als Samba-Share und Client Bridge

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

Beitrag von OSi »

Das selbe Problem habe ich auch.
Zuletzt gesehener Sender in 16:9, TS-Aufnahme in 4:3 -> Icon für 16:9 leuchtet immernoch.
Umgekehrt genau das selbe.
Was bei mir noch dazu kommt (und ich kann denn Fehler einfach nicht finden):
Das Bildformat des zuletzt gesehenen Sender wird auch übernommen.
Ich muss mir somit immer einen Sender suchen der das selbe Bildformat hat wie die Aufnahme die ich ansehen möchte.
Bin ich der einzigste mit diesem Problem :gruebel:
MfG OSi
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

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

Beitrag von GetAway »

OSi hat geschrieben:Bin ich der einzigste mit diesem Problem :gruebel:
Nein, es wurde schon öfter in anderen Foren thematisiert, nur hier noch nicht. :wink:
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 »

OSi hat geschrieben:Das Bildformat des zuletzt gesehenen Sender wird auch übernommen.
Ich muss mir somit immer einen Sender suchen der das selbe Bildformat hat wie die Aufnahme die ich ansehen möchte.
Bin ich der einzigste mit diesem Problem :gruebel:
MfG OSi
Hab auch das gleiche Problem.
Im JtG Image von 10/2008 lief noch alles ohne Probleme.
Irgendwann danach hat sich dann der Fehler eingeschlichen.
OSi
Interessierter
Interessierter
Beiträge: 58
Registriert: Sonntag 4. Oktober 2009, 02:58
Sonstiges: Belkin F7D3302 mit dd-wrt (kong mod) + ICY BOX als Samba-Share und Client Bridge

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

Beitrag von OSi »

GetAway hat geschrieben: Nein, es wurde schon öfter in anderen Foren thematisiert, nur hier noch nicht. :wink:
Kann ich nen Link bekommen, würde mich mal interessieren :up:
MfG OSi
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

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

Beitrag von Gaucho316 »

@seife

Hast du nicht eine Idee, was da falsch laufen könnte? Du schriebst ja, dass es bei dir geht. Meintest du damit, dass es auf deiner TD, deiner d-box oder beiden geht? Ich habe ja den Verdacht, dass leider mal wieder der controld-zapit-merge Schuld ist. :(

Edit:
Wer lesen kann, ist klar im Vorteil. Laut altem Thread wird bei dir ja auf der TD und der DM500 das richtige Icon angezeigt. Hast du es inzwischen schon auf der d-box testen können?
Zuletzt geändert von Gaucho316 am Dienstag 2. März 2010, 15:13, insgesamt 1-mal geändert.
dwilx

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

Beitrag von dwilx »

Die Funktion

Code: Alles auswählen

checkAspectRatio
geht irgendwie ins Leere. Die steht im MP1 zwei mal drin. Einmal ohne jede Funktion und dann mit.
Im MP2 ist das nur noch mit einigen ifdefs garniert, also irgendwie ist das nicht so richtig, da drin. :gruebel:
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

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

Beitrag von Gaucho316 »

Das ist schon richtig so. Zur Aufklärung lies mal folgendes nach: http://openbook.galileocomputing.de/c_v ... 0719d12e5b
dwilx

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

Beitrag von dwilx »

Achso, ist nur deklariert, dort. :oops:
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

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

Beitrag von seife »

Meine Vermuting ist, dass g_Controld->getAspectRatio() nicht funktioniert, wenn zapit im standby ist.

Edit: Funktioniert das überhaupt? zu überprüfen mittels "controldc getAspectRatio"
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

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

Beitrag von Gaucho316 »

Also, folgendes kommt dabei heraus:

Format letzter Sender, Format Aufnahme => controldc-Ausgabe
16:9, 16:9 => 1
16:9, 4:3 => 1
4:3, 16:9 => 0
4:3, 4:3 => 0
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

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

Beitrag von Gaucho316 »

@seife

Juhu, ich habe eben gesehen, dass du gestern noch einen Fix eingecheckt hast. Den werde ich heute Abend ausprobieren. Vielen Dank. :up:


Edit 18:46 Uhr:
Getestet und für funktionstüchtig befunden. Ich habe aber auch nichts anderes erwartet.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

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

Beitrag von dbt »

Habe lt. JTG-Feedback gerade mal geschaut ob das auch läuft, aber ich konnte keine Änderung feststellen.


Gaucho316 hat geschrieben:@seife

Juhu, ich habe eben gesehen, dass du gestern noch einen Fix eingecheckt hast. Den werde ich heute Abend ausprobieren. Vielen Dank. :up:


Edit 18:46 Uhr:
Getestet und für funktionstüchtig befunden. Ich habe aber auch nichts anderes erwartet.
Wie sind denn deine Videoeinstellungen?
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

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

Beitrag von Gaucho316 »

Mir ging es immer nur um die Anzeige des Icons. Das andere Problem betrifft mich nicht und ich kann es nicht nachvollziehen, da ich "4:3 (LB)" eingestellt habe. Tut mir Leid, dass ich falsche Erwartungen geweckt habe.
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 »

Hi!

Ich denke, ich weiß jetzt woran das fehlerhafte Bildformat liegen könnte:

In der Funktion

Code: Alles auswählen

aspectRatioChanged()
wird das VideoFormat normalerweise mittels

Code: Alles auswählen

videoDecoder->setVideoFormat()
gesetzt. Dies ist im Movieplayer jedoch nicht möglich, da der videoDecoder nicht initialisiert ist:

Code: Alles auswählen

/* ...then check for videodecoder and return to not crash later. */
	if (!videoDecoder)
		return;
Da ich das ganze Drumherum jedoch nicht kenne, hab ich auf die schnelle leider keinen Lösungsansatz dafür.

Gruß,
kyle_br
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

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

Beitrag von seife »

Der movieplayer macht das ja aber alles irgendwie selber auf der dbox.

Auf anderen boxen funtkioniert es ja auch.
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 »

Wie gesagt, ich steck da wirklich noch nicht tief drinn in der Materie, deshalb bitte nicht hauen, wenn ich was dummes sage/frage:

Hab mir gerade den movieplayer.cpp etwas angeschaut:
Was haben wir denn bei der dbox für ein "HAVE_DVB_API_VERSION"
ist die dbox noch "old API"?

Weil:

Code: Alles auswählen

#if HAVE_DVB_API_VERSION >= 3
...
#else
	if (init)
		printf("[movieplayer.cpp] checkAspectRatio apparently not needed on old API\n");
#endif
EDIT: und falls nicht (was ich eher vermute), wofür ist dann "old API"?

Ich habe bei meinen Video-Einstellungen das Ausgabe-Format übrigens auf "automatisch".
Vielleicht spielt das ja auch eine Rolle. Werds nachher mal mit 16:9 und 4:3(LB) probieren.
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 »

OK, vergessen wir das mit "old API" usw., das passt schon denke ich.

Hab nun mit 16:9 und 4:3 (LB) getestet.
Dabei funktioniert alles wie es soll.

Das Problem ist also nur im "automatisch"-Modus vorhanden.

Hier nochmal meine genauen Beobachtungen im "automatisch"-Modus:
(Anm.: Ich gehe von einem 16:9 TV aus)

TV-Sender 16:9, Aufname 4:3 :
=============================
Das Format stimmt anfangs, wird nach 5 Sekunden jedoch in die Breite gezogen.
Dabei wird zum TV (SCART Schaltsignal PIN8) permanent AV(16:9) gesendet. (sollte eigentlich AV(4:3) sein)

TV-Sender 4:3, Aufname 16:9 :
=============================
Anfangs ist das Format 4:3 (LB), dann wird nach 5 Sekunden jedoch in die Höhe gezogen. (Eierköpfe)
Dabei wird zum TV (SCART Schaltsignal PIN8) permanent AV(4:3) gesendet. (sollte eigentlich AV(16:9) sein)

Ergebnis:
=======
Scheinbar würde nach 5 Sekunden das Format schon angepasst werden, es wird dabei jedoch das
SCART Schaltsignal am PIN8 nicht berücksichtigt.

Ich hoffe, ich habs irgendwie rüberbringen können.
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 kommt wahrscheinlich daher, daß der movieplayer das selber macht, anstatt das denen zu überlassen, die das besser können, und im movieplayer das schaltsignal halt nicht gesetzt wird.

Vermute ich mal einfach so. Anschauen will ich mir das lieber nicht :-)
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 »

Ja, die Funktion "setVideoFormat()" von zapit arbeitet da schon wesentlich sauberer.

Aber soweit ich das sehe, kann man die ja nicht nutzen, solange zapit im Standby ist.
Und zapit ist immer im Standby, wenn der Movieplayer läuft, oder?

Ein Teufelskreis :D
Zuletzt geändert von kyle_br am Mittwoch 31. März 2010, 15:04, insgesamt 1-mal geändert.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

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

Beitrag von seife »

Die Frage ist, warum der movieplayer das auf der dbox unbedingt selber machen muss, anstelle das wie auf den anderen Plattformen vom zapit machen zu lassen. Aber da der Code hysterisch gewachsen ist...

Ich schau's mir jedenfalls nicht an.
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 »

Da bin ich deiner Meinung, dass eine zentrale Ansteuerung über zapit die schönere und sauberere Lösung wäre.
Das umzustricken wird aber bestimmt nicht lustig sein, und der Aufwand somit nicht gerechtfertigt.

Für einen schnellen FIX dieses Problems denke ich, sollte es aber auch möglich sein die Ansteuerng des AVS (PIN8 + evtl. WSS) in die "checkAspectRation()" des Movieplayers zu integrieren. Nicht schön, aber klappen sollte es.

(Soll nur so ein Gedankenanstoß an diejenigen sein, die Zeit und Lust haben mal an der Stelle zu basteln)
dwilx

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

Beitrag von dwilx »

Wird denn im TS-File kein Flag oder sowas gespeichert, den man auslesen könnte?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

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

Beitrag von seife »

klar, im mpeg-stream wird das übertragen, so funktioniert ja die 16:9 umschaltung. Aber der movieplayer schaltet halt anscheinend den SCART PIN 8 nicht entsprechend um.
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 ungefähr könnte das ganze aussehen:

Code: Alles auswählen

--- movieplayer.cpp.orig	2010-03-06 20:54:00.000000000 +0100
+++ movieplayer.cpp	2010-04-01 10:34:41.000000000 +0200
@@ -108,6 +108,13 @@
 #define VDEC	ADAP "/video0"
 #define DMX	ADAP "/demux0"
 
+#if defined HAVE_DBOX_HARDWARE || defined HAVE_DREAMBOX_HARDWARE || defined HAVE_IPBOX_HARDWARE
+#include <dbox/avs_core.h>
+#include <dbox/saa7126_core.h>
+#define AVS_DEVICE	"/dev/dbox/avs0"
+#define SAA7126_DEVICE	"/dev/dbox/saa0"
+#endif
+
 #define AVIA_AV_STREAM_TYPE_0           0x00
 #define AVIA_AV_STREAM_TYPE_SPTS        0x01
 #define AVIA_AV_STREAM_TYPE_PES         0x02
@@ -4455,10 +4462,66 @@ void checkAspectRatio (int vdec, bool in
             {
                 printf("[movieplayer.cpp] AR change detected in auto mode, adjusting display format\n");
                 video_displayformat_t vdt;
+#if defined HAVE_DREAMBOX_HARDWARE || defined HAVE_DBOX_HARDWARE || defined HAVE_IPBOX_HARDWARE
+                int format;
+                int avsiosfncFormat;
+                int wss;
+                int _fd;
+#endif
+
                 if(new_size.aspect_ratio == VIDEO_FORMAT_4_3)
+                {
                     vdt = VIDEO_LETTER_BOX;
+#if defined HAVE_DREAMBOX_HARDWARE || defined HAVE_DBOX_HARDWARE || defined HAVE_IPBOX_HARDWARE
+                    format = 2;
+                    wss = SAA_WSS_43F;
+#endif
+                }
                 else
+                {
                     vdt = VIDEO_CENTER_CUT_OUT;
+#if defined HAVE_DREAMBOX_HARDWARE || defined HAVE_DBOX_HARDWARE || defined HAVE_IPBOX_HARDWARE
+                    format = 1;
+                    wss = SAA_WSS_169F;
+#endif
+                }
+
+#if defined HAVE_DREAMBOX_HARDWARE || defined HAVE_DBOX_HARDWARE || defined HAVE_IPBOX_HARDWARE
+                if ((_fd = open(AVS_DEVICE, O_RDWR)) < 0)
+                    perror("[movieplayer.cpp] " AVS_DEVICE);
+                else
+                {
+                    avsiosfncFormat = format;
+
+                    if (g_info.box_Type == CControld::TUXBOX_MAKER_PHILIPS)
+                    {
+                        switch (format)
+                        {
+                        case 1:
+                            avsiosfncFormat = 2;
+                            break;
+                        case 2:
+                            avsiosfncFormat = 3;
+                            break;
+                        }
+                    }
+
+                    if (ioctl(_fd, AVSIOSFNC, &avsiosfncFormat) < 0)
+                        perror("[movieplayer.cpp] AVSIOSFNC");
+
+                    close(_fd);
+                }
+
+                if ((_fd = open(SAA7126_DEVICE, O_RDWR)) < 0)
+                    perror("[movieplayer.cpp] " SAA7126_DEVICE);
+                else {
+                    if (ioctl(_fd, SAAIOSWSS, &wss) < 0)
+                        perror("[movieplayer.cpp] SAAIOSWSS");
+
+                    close(_fd);
+                }
+#endif
+
                 if(ioctl(vdec, VIDEO_SET_DISPLAY_FORMAT, vdt))
                     perror("[movieplayer.cpp] VIDEO_SET_DISPLAY_FORMAT");
                 memcpy(&g_size, &new_size, sizeof(g_size));
Habs selbst nicht kompiliert, nur mal in Trockenübung gehackt. Also keine Garantie.

[Der auskommentierte Block sollte auch noch mit rein, da es sonst bei PHILIPS Boxen nicht richtig funktioniert.
Ich hab nur leider auf die Schnelle nicht rausgefunden, wie ich im Movieplayer den Box-Type abfragen kann.]

Edit: Code überarbeitet.
Zuletzt geändert von kyle_br am Donnerstag 1. April 2010, 10:36, insgesamt 3-mal geändert.