Brauche hilfe beim Converter fixen

  • Da ich von python einfach nicht genug ahnung habe und jetzt, seit ner stunde, einfach nur dumm rumprobiere und nichts wirklich funktioniert, mach ich mal lieber nen thread auf.:)


    Also ich versuche grade mal testweise die bitrate im infobar anzeigen zu lassen.
    Es gibt einen converter dafür, der sich zusammen mit Dr Best's bitratecalc.so nutzen lässt.
    Leider kriege ich mit diesem converter immer folgenden fehler...

    Code
    Traceback (most recent call last):
    File "/usr/lib/enigma2/python/Components/Converter/Bitrate2.py", line 68, in initBitrateCalc
    self.videoBitrate = eBitrateCalculator(vpid, dvbnamespace, tsid, onid, 1000, 1024*1024) # pid, dvbnamespace, tsid, onid, refresh intervall, buffer size
    TypeError: function takes exactly 4 arguments (6 given)
    (PyObject_CallObject(<bound method Bitrate2.initBitrateCalc of <class 'Components.Converter.Bitrate2.Bitrate2'>(Video:%V Kbps Audio:%A Kbps)>,()) failed)




    Ich hab jetzt versucht, mir die funktionsweise aus Dr Best's plugin abzugucken, aber das führt nur zu weiteren (global name '...' is not defined) fehlern.
    Vielleicht kann mal jemand helfen... :)

    “If you think this has a happy ending, you haven't been paying attention.”

  • Du hast 6 Parameter übergeben aber 4 dürfen nur. Und wenn man sich die Funktion anschaut, braucht er
    eServiceReference, pid, refreshintervall, buffer_size
    (aber Ahnung hab ich davon auch nicht) ;)


    PS: so macht Dr. das ja
    self.videoBitrate = eBitrateCalculator(vpid, ref.toString(), 1000, 1024*1024)

  • Hab ja versucht das aus der plugin.py zu übernehmen, aber da kommt dann halt:
    NameError: global name 'ref' is not defined
    session not defined usw..
    Hab halt python einfach nit so drauf um da jeden aufkommenden fehler zu fixen. Deshalb ja der hilferuf. :D

    “If you think this has a happy ending, you haven't been paying attention.”

  • Das was zu übergibst sind ja Variablen, die müssen erstmal mit "Sinn" gefüllt werden, z.B.
    ref = session.nav.getCurrentlyPlayingServiceReference()

  • das hatte ich auch übernommen, dann gehts weiter mit:

    Code
    Traceback (most recent call last):
    File "/usr/lib/enigma2/python/Components/Converter/Bitrate2.py", line 58, in initBitrateCalc
    ref = session.nav.getCurrentlyPlayingServiceReference()
    NameError: global name 'session' is not defined


    Da hab ich dann in der plugin.py geguckt wo alles session auftaucht und versucht das zu übernehmen...Was zu weiteren fehlern geführt hat.:)

    “If you think this has a happy ending, you haven't been paying attention.”

  • versuche mal andere Converter/Renderer anzuschauen. Ist wohl u.U. bissel anders.
    Habe mal was gefunden, wo der __init__ unter anderem so ausschaut und so die sessin definiert. Musst mal probieren

    Python
    def __init__(self, session):
    self.session = session
  • Hab jetzt anhand der plugin.py und deinem tip den converter jetzt mal so umgeschrieben ( umge-copy & pasted :P ).


    Nun kommt:

    Files

    • Bitrate2.py

      (2.95 kB, downloaded 8 times, last: )

    “If you think this has a happy ending, you haven't been paying attention.”

    Edited 2 times, last by sin ().

  • Ich glaube das war der falsche Weg, der geht nicht. __init__ ist ja vorgeschrieben was übergeben wird. Also Kommando zurück ;)


    aber das müsste gehen:
    ref = self.source.service


    Aber wie gesagt, im Renderer / Converter ist das wohl alles bissel anders, da steht nicht alles so zur Verfügung. Ich weis es auch nicht

  • Also das "ref = self.source.service" sollte dann in den "def initBitrateCalc(self):" bereich,oder?


    Das hat an dem define session problem, aber nichts geändert.
    NameError: global name 'session' is not defined


    Ach ja, wenn ich doch python könnte... :rolleyes:

    “If you think this has a happy ending, you haven't been paying attention.”

  • Was dann zum nächsten problem führt.:D

    Code
    Traceback (most recent call last):
    File "/usr/lib/enigma2/python/Components/Converter/Bitrate2.py", line 48, in initBitrateCalc
    self.videoBitrate = eBitrateCalculator(vpid, ref.toString(), 1000, 1024*1024) # pid, dvbnamespace, tsid, onid, refresh intervall, buffer size
    AttributeError: 'iPlayableServicePtr' object has no attribute 'toString'
    (PyObject_CallObject(<bound method Bitrate2.initBitrateCalc of <class 'Components.Converter.Bitrate2.Bitrate2'>(Video:%V Kbps Audio:%A Kbps)>,()) failed)


    Abschnitt sieht jetzt so aus:


    Ps.Sach bescheid wenn du keine lust mehr hast.:D

    “If you think this has a happy ending, you haven't been paying attention.”

    Edited once, last by sin ().

  • armer sin :tatsch:

    TunerA: Multifeed
    13°O, 19,2°O, 23,5°O, 28,2°O
    TunerB: LAMINAS OFC-1200
    45°O, 42°O, 40,0°O, 39°O, 36,0O, 33,0°O, 31,0°O, 28.2°O, 26,0°O, 23.5°O, 21,6°O, 19.2°O
    , 16,0°O, 13°O, 10,0°O, 9°O, 7°O, 5°O, 4,8°O, 0,8°W, 4°W, 5°W, 7°W, 8°W, 11,0°W, 12.5°W
    , 15°W, 18,0°W, 22,0°W, 24,5°W, 30°W
    TunerA/B: In Gebrauch
    0,8°W, 9°O, 13°O, 19.2°O, 23.5°O, 28.2°O
    Dreambox: 7000, 7020SI, 7020HD
    Telekom-Entertain

  • was ich irgendwie befürchtet habe :tatsch:


    ich weis auch nicht weiter, dazu fehlts hier :dumdidumm:


    aber da es soviel self.source gibt, vielleicht ist auch ne session dabei? Also letzter Versuch
    ref = self.source.session.nav.getCurrentlyPlayingServiceReference()


    nun muss wohl doch ein Wissender ran ;)

  • Also so?


    Kommt dann nicht wieder das session not defined?
    Ich probiers mal.
    Danke trotzdem schonmal für deine hilfe.

    “If you think this has a happy ending, you haven't been paying attention.”

    Edited 2 times, last by sin ().

  • Nun kommt was neues :) :

    “If you think this has a happy ending, you haven't been paying attention.”

  • Was probierst denn du da mit SESSION rum? Das ist doch ein Konverter, da gibt's keine Sessions ...


    Quote

    IndentationError: expected an indented block


    Code nicht richtig eingerückt, mit leerzeichen statt Tabs oder sowas in der Art ...

  • Um den ersten teil, meines ersten satzes, im ersten post noch mal zu wiederholen.
    Da ich von python einfach nicht genug ahnung habe...
    ;)


    Hier noch mal das momentane file, kannst ja mal bitte gucken, was da zu tun wäre.

    Files

    • Bitrate2.py

      (2.91 kB, downloaded 8 times, last: )

    “If you think this has a happy ending, you haven't been paying attention.”

    Edited once, last by sin ().

  • :D


    Aber du möchtest es unbedingt lernen und selber schaffen?
    Ansonsten Code Teilen und gucken ob wer anders das schafft oder helfen kann ;)

  • Ich hab absolut kein problem damit wenn du mir hilfst.:D
    Das momentane file, hab ich grade noch mal angehangen.

    “If you think this has a happy ending, you haven't been paying attention.”

  • anstelle der bitrate in der infobar, würde ich zu einem richtig guten design raten'
    ...was ich in letzter zeit sehen musste, macht mich nur müde!


    wenn Du ggf. lust hast, melde Dich per PM. mein skin läuft bei mir und ihn
    endlich technisch aufzubohren wäre perfekt!


    überleg es Dir.


    7080 HD s-s-c-c (intern) c-c (sundtek)
    tuner a,b: sat 13°, 16°, 19.2°, 23.5°, 25.5°, 28.2°, 33°, 36°, 39°, 42° E
    tuner c,d,e,f: unitymedia
    dmm original dreambox os