easyVDR Kopie des easyVDR-Forums zum Nachschlagen
Kleiner Bug (und Fix) im mplayer für PVR350

easyVDR - >VARforumsname - >Kleiner Bug (und Fix) im mplayer für PVR350

klappnase  29.Jul.2012 15:55:24
Hallo an alle,

ich glaube ich habe einen Bug in der mplayer.sh für die PVR350 entdeckt. Und zwar werden manche Videos, die grösser als 720x576 Pixel sind, nicht korrekt in herunterskalierter Form dargestellt, sondern es wird nur ein Bildausschnitt in Originalgrösse auf dem Schirm angezeigt.
Konkret aufgefallen ist mir dies bei einigen von YT & Friends heruntergeladenen Musikvideos.
Der Fehler scheint allerdings nur mit einem alten 4:3 TV aufzutreten, auf dem 16:9 TV sehen die Videos aus wie erwartet.  Mag sein, dass dies der Grund ist, warum der Fehler noch nicht aufgefallen ist.
Es sind offenbar auch nur 16:9 Videos betroffen, ich habe testweise mal ein Video mit 352x264 Px. einmal auf 1440x1152 und einmal auf 1056x762 hochskaliert, beide werden auch mit scale=720:576 auf dem 4:3 TV korrekt dargestellt.

Das Problem scheint in Zeile 401 zu liegen:

        CMDLINE="$MPLAYER -vo $VO $AOUT $AC3GAIN $MONITORASPECT -vf scale=720:576${DETC} $H264OPTIONS $NEW_FPS $SPEED $FDSTR $CACHESTR $AUDIO $REMOTE $SUBTITLES $USERDEF $FORCEIDX"


Aus irgeneinem mir rätselhaften Grund scheint das Skalieren von 16:9 Videos bei -monitoraspect 4:3 zu scheitern, bzw. nicht stattzufinden. Es funktioniert aber sobald ich den Wert für scale von 720x576 auf 720:-10 ändere. In diesem Fall werden allerdings 16:9 Videos auf dem 16:9 TV wieder auf 4:3 skaliert, also zu klein,  mit schwarzen Streifen auf allen vier Seiten angezeigt.

Der Workaround, der hier zu funktionieren scheint ist also zuerst den Monitoraspect zu prüfen und danach den Wert für die Skalierung zu setzen, also obige Zeile zu ersetzen durch:


        if test "$MONITORASPECT" == "-monitoraspect 16:9"; then
          MONITORWIDTH="576"
        else
          MONITORWIDTH="-10"
        fi
        CMDLINE="$MPLAYER -vo $VO $AOUT $AC3GAIN $MONITORASPECT -vf scale=720:$MONITORWIDTH${DETC} $H264OPTIONS $NEW_FPS $SPEED $FDSTR $CACHESTR $AUDIO $REMOTE $SUBTITLES $USERDEF $FORCEIDX"

So werden die 16:9 Videos auf dem 4:3 TV offenbar korrekt dargestellt,  auch das 1440x1152 Video sieht gut aus, allerdings das 1056x762 Video hat einen kleinen schwarzen Streifen am oberen Bildrand, der aber kaum auffällt. Dies lässt sich zumindest für dieses File auch durch -noaspect noch abstellen. Vielleicht habe ich ja beim Hochskalieren irgend etwas nicht ganz korrekt gemacht.

Generell scheint es mit der 4:3 Glotze immer problematisch zu sein, wenn das Format nicht exakt einem vielfachen von 720x576 entspricht. Evtl. könnte man oben ja noch einen Test für den DAR des Videos dazubasteln, andererseits führt das vllt. auch wieder nur zu neuen Problemen.

Die Frage wäre jetzt wohl erstmal, kann irgend jemand diesen Fehler bestätigen, und gibt es irgend etwas, das gegen diesen Workaround spricht?

Einen schönen Sonntag noch!

Michael
mplayer-pvr350.sh.tar.bz2
easyvdr-3.0; MB: Asus M2N-X Plus; DVB: TT-3200, Hauppauge NovaS2; Graka: Geforce GT1030
Dr. Seltsam  20.Jan.2013 10:26:54
ich bin nur selten im easyvdr-Forum, am besten nächstes mal eine PN an mich schicken.

Ohne nachvollziehen zu können, was da passiert bzw. warum der workaround funktioniert, möchte ich das nicht in das in meinen Plugin-Sourcen enthaltene Musterscript übernehmen.

Es gibt auch Videos, bei denen eine falsche aspect ratio im Header steht.

Ich selbst habe die PVR350 nicht mehr aktiv in Benutzung. Davor hatte ich sie auch an einem 16:9 TV laufen.



klappnase  20.Jan.2013 13:11:29
naja, ich wollte erstmal in die Runde fragen, ob überhaupt jemand diesen Fehler nachvollziehen kann. Ich schätze, es gibt aber wohl kaum noch Menschen, die die PVR350 benutzen, noch dazu mit einem 4:3 Fernseher.
Das seltsame ist, dass die Videos ja auf dem 16:9 TV korrekt dargestellt werden, ich denke irgendwelchen falschen Header-Informationen kann man daher ausschliessen.
Ich kann mich auch noch dunkel erinnern, dass ich damals mit allen möglichen verschiedenen Dateien experimentiert habe, um diesbezüglich sicher zu gehen.

Den Workaround finde ich selbst allerdings auch etwas krude, ich vermute, dass in Wirklichkeit irgend etwas im mplayer selbst schief läuft.
Aber nachdem ich ja offenbar der letzte Mohikaner bin, der sich nicht von seinem 81er Grundig SuperColor trennen kann, und der Workaround für mich funktioniert, lässt man wahrscheinlich am Besten alles so wie es ist, ich bin mir ja noch nicht mal sicher, ob es sich nicht evtl um ein spezifisches Problem meines Tv-Geräts handeln kann.

Grüsse

Michael



easyvdr-3.0; MB: Asus M2N-X Plus; DVB: TT-3200, Hauppauge NovaS2; Graka: Geforce GT1030