dm800 bei ac3 zu leise

  • Hallo,


    ich habe mir vor einigen Monaten eine Dream800HD gegönnt..
    Super teil. Bin echt sehr zu frieden damit.
    Es gibt nur ein Problem.
    Der Ton ist mir um einiges zu leise.
    Ich habe in einem anderem Forum gelesen, dass man die Datei "ServiceInfo.py" abändern kann.
    Eine abgeänderte Datei habe ich eingespielt.
    Der ton wurde leicht angehoben. Nur leider noch nicht das Wunschergebnis.


    Könnt ihr mir noch ein paar Tips geben, wie ich den ton etwas lauter bekomme?


    Vielen Dank im Voraus

  • Hallo,
    die original-Datei sieht so aus:
    (die Datei ist zu finden in: usr/lib/enigma2/python/Components/Converter/)


    from Components.Converter.Converter import Converter
    from enigma import iServiceInformation, iPlayableService
    from Components.Element import cached


    class ServiceInfo(Converter, object):
    HAS_TELETEXT = 0
    IS_MULTICHANNEL = 1
    IS_CRYPTED = 2
    IS_WIDESCREEN = 3
    SUBSERVICES_AVAILABLE = 4
    XRES = 5
    YRES = 6
    APID = 7
    VPID = 8
    PCRPID = 9
    PMTPID = 10
    TXTPID = 11
    TSID = 12
    ONID = 13
    SID = 14
    FRAMERATE = 15



    def __init__(self, type):
    Converter.__init__(self, type)
    self.type, self.interesting_events = {
    "HasTelext": (self.HAS_TELETEXT, (iPlayableService.evUpdatedInfo,)),
    "IsMultichannel": (self.IS_MULTICHANNEL, (iPlayableService.evUpdatedInfo,)),
    "IsCrypted": (self.IS_CRYPTED, (iPlayableService.evUpdatedInfo,)),
    "IsWidescreen": (self.IS_WIDESCREEN, (iPlayableService.evVideoSizeChanged,)),
    "SubservicesAvailable": (self.SUBSERVICES_AVAILABLE, (iPlayableService.evUpdatedEventInfo,)),
    "VideoWidth": (self.XRES, (iPlayableService.evVideoSizeChanged,)),
    "VideoHeight": (self.YRES, (iPlayableService.evVideoSizeChanged,)),
    "AudioPid": (self.APID, (iPlayableService.evUpdatedInfo,)),
    "VideoPid": (self.VPID, (iPlayableService.evUpdatedInfo,)),
    "PcrPid": (self.PCRPID, (iPlayableService.evUpdatedInfo,)),
    "PmtPid": (self.PMTPID, (iPlayableService.evUpdatedInfo,)),
    "TxtPid": (self.TXTPID, (iPlayableService.evUpdatedInfo,)),
    "TsId": (self.TSID, (iPlayableService.evUpdatedInfo,)),
    "OnId": (self.ONID, (iPlayableService.evUpdatedInfo,)),
    "Sid": (self.SID, (iPlayableService.evUpdatedInfo,)),
    "Framerate": (self.FRAMERATE, (iPlayableService.evVideoSizeChanged,iPlayableService.evUpdatedInfo,)),
    }[type]


    def getServiceInfoString(self, info, what, convert = lambda x: "%d" % x):
    v = info.getInfo(what)
    if v == -1:
    return "N/A"
    if v == -2:
    return info.getInfoString(what)
    return convert(v)


    @cached
    def getBoolean(self):
    service = self.source.service
    info = service and service.info()
    if not info:
    return False


    if self.type == self.HAS_TELETEXT:
    tpid = info.getInfo(iServiceInformation.sTXTPID)
    return tpid != -1
    elif self.type == self.IS_MULTICHANNEL:
    # FIXME. but currently iAudioTrackInfo doesn't provide more information.
    audio = service.audioTracks()
    if audio:
    n = audio.getNumberOfTracks()
    idx = 0
    while idx < n:
    i = audio.getTrackInfo(idx)
    description = i.getDescription();
    if "AC3" in description or "DTS" in description:
    return True
    idx += 1
    return False
    elif self.type == self.IS_CRYPTED:
    return info.getInfo(iServiceInformation.sIsCrypted) == 1
    elif self.type == self.IS_WIDESCREEN:
    return info.getInfo(iServiceInformation.sAspect) in (3, 4, 7, 8, 0xB, 0xC, 0xF, 0x10)
    elif self.type == self.SUBSERVICES_AVAILABLE:
    subservices = service.subServices()
    return subservices and subservices.getNumberOfSubservices() > 0


    boolean = property(getBoolean)


    @cached
    def getText(self):
    service = self.source.service
    info = service and service.info()
    if not info:
    return ""


    if self.type == self.XRES:
    return self.getServiceInfoString(info, iServiceInformation.sVideoWidth)
    elif self.type == self.YRES:
    return self.getServiceInfoString(info, iServiceInformation.sVideoHeight)
    elif self.type == self.APID:
    return self.getServiceInfoString(info, iServiceInformation.sAudioPID)
    elif self.type == self.VPID:
    return self.getServiceInfoString(info, iServiceInformation.sVideoPID)
    elif self.type == self.PCRPID:
    return self.getServiceInfoString(info, iServiceInformation.sPCRPID)
    elif self.type == self.PMTPID:
    return self.getServiceInfoString(info, iServiceInformation.sPMTPID)
    elif self.type == self.TXTPID:
    return self.getServiceInfoString(info, iServiceInformation.sTXTPID)
    elif self.type == self.TSID:
    return self.getServiceInfoString(info, iServiceInformation.sTSID)
    elif self.type == self.ONID:
    return self.getServiceInfoString(info, iServiceInformation.sONID)
    elif self.type == self.SID:
    return self.getServiceInfoString(info, iServiceInformation.sSID)
    elif self.type == self.FRAMERATE:
    return self.getServiceInfoString(info, iServiceInformation.sFrameRate, lambda x: "%d fps" % ((x+500)/1000))
    return ""


    text = property(getText)


    @cached
    def getValue(self):
    service = self.source.service
    info = service and service.info()
    if not info:
    return -1


    if self.type == self.XRES:
    return info.getInfo(iServiceInformation.sVideoWidth)
    if self.type == self.YRES:
    return info.getInfo(iServiceInformation.sVideoHeight)
    if self.type == self.FRAMERATE:
    return info.getInfo(iServiceInformation.sFrameRate)


    return -1


    value = property(getValue)


    def changed(self, what):
    if what[0] != self.CHANGED_SPECIFIC or what[1] in self.interesting_events:
    Converter.changed(self, what)




    Und die abgeänderte Datei sieht so aus:




    from Components.Converter.Converter import Converter
    from enigma import iServiceInformation, iPlayableService, eDVBVolumecontrol
    from Components.Element import cached


    class ServiceInfo(Converter, object):
    HAS_TELETEXT = 0
    IS_MULTICHANNEL = 1
    IS_CRYPTED = 2
    IS_WIDESCREEN = 3
    SUBSERVICES_AVAILABLE = 4
    XRES = 5
    YRES = 6
    APID = 7
    VPID = 8
    PCRPID = 9
    PMTPID = 10
    TXTPID = 11
    TSID = 12
    ONID = 13
    SID = 14
    FRAMERATE = 15



    def __init__(self, type):
    Converter.__init__(self, type)
    self.ac3 = -1
    self.type, self.interesting_events = {
    "HasTelext": (self.HAS_TELETEXT, (iPlayableService.evUpdatedInfo,)),
    "IsMultichannel": (self.IS_MULTICHANNEL, (iPlayableService.evUpdatedInfo,)),
    "IsCrypted": (self.IS_CRYPTED, (iPlayableService.evUpdatedInfo,)),
    "IsWidescreen": (self.IS_WIDESCREEN, (iPlayableService.evVideoSizeChanged,)),
    "SubservicesAvailable": (self.SUBSERVICES_AVAILABLE, (iPlayableService.evUpdatedEventInfo,)),
    "VideoWidth": (self.XRES, (iPlayableService.evVideoSizeChanged,)),
    "VideoHeight": (self.YRES, (iPlayableService.evVideoSizeChanged,)),
    "AudioPid": (self.APID, (iPlayableService.evUpdatedInfo,)),
    "VideoPid": (self.VPID, (iPlayableService.evUpdatedInfo,)),
    "PcrPid": (self.PCRPID, (iPlayableService.evUpdatedInfo,)),
    "PmtPid": (self.PMTPID, (iPlayableService.evUpdatedInfo,)),
    "TxtPid": (self.TXTPID, (iPlayableService.evUpdatedInfo,)),
    "TsId": (self.TSID, (iPlayableService.evUpdatedInfo,)),
    "OnId": (self.ONID, (iPlayableService.evUpdatedInfo,)),
    "Sid": (self.SID, (iPlayableService.evUpdatedInfo,)),
    "Framerate": (self.FRAMERATE, (iPlayableService.evVideoSizeChanged,iPlayableService.evUpdatedInfo,)),
    }[type]


    def getServiceInfoString(self, info, what, convert = lambda x: "%d" % x):
    v = info.getInfo(what)
    if v == -1:
    return "N/A"
    if v == -2:
    return info.getInfoString(what)
    return convert(v)


    @cached
    def getBoolean(self):
    service = self.source.service
    info = service and service.info()
    if not info:
    return False


    if self.type == self.HAS_TELETEXT:
    tpid = info.getInfo(iServiceInformation.sTXTPID)
    return tpid != -1
    elif self.type == self.IS_MULTICHANNEL:
    # FIXME. but currently iAudioTrackInfo doesn't provide more information.
    audio = service.audioTracks()
    self.description = ""
    ac3 = mpg = 0
    if audio:
    n = audio.getNumberOfTracks()
    idx = 0
    while idx < n:
    i = audio.getTrackInfo(idx)
    self.description = i.getDescription();
    if "AC3" in self.description or "DTS" in self.description:
    ac3 += 1
    else:
    mpg += 1
    break


    if self.ac3 == -1:
    vol = eDVBVolumecontrol.getInstance().getVolume()
    if vol >= 80:
    self.ac3 = False
    elif vol <= 60:
    self.ac3 = True


    if mpg == 0 and ac3 == 1:
    if self.ac3 == True:
    self.ac3 = False
    print"_________________________________________AutoVolume: +"
    vol = eDVBVolumecontrol.getInstance().getVolume()
    eDVBVolumecontrol.getInstance().setVolume(vol+25, vol+25)
    elif mpg == 1 and ac3 == 0:
    if self.ac3 == False:
    self.ac3 = True
    print"_________________________________________AutoVolume: -"
    vol = eDVBVolumecontrol.getInstance().getVolume()
    eDVBVolumecontrol.getInstance().setVolume(vol-20, vol-20)


    if ac3 == 1:
    return True
    return False
    elif self.type == self.IS_CRYPTED:
    return info.getInfo(iServiceInformation.sIsCrypted) == 1
    elif self.type == self.IS_WIDESCREEN:
    return info.getInfo(iServiceInformation.sAspect) in (3, 4, 7, 8, 0xB, 0xC, 0xF, 0x10)
    elif self.type == self.SUBSERVICES_AVAILABLE:
    subservices = service.subServices()
    return subservices and subservices.getNumberOfSubservices() > 0


    boolean = property(getBoolean)


    @cached
    def getText(self):
    service = self.source.service
    info = service and service.info()
    if not info:
    return ""


    if self.type == self.XRES:
    return self.getServiceInfoString(info, iServiceInformation.sVideoWidth)
    elif self.type == self.YRES:
    return self.getServiceInfoString(info, iServiceInformation.sVideoHeight)
    elif self.type == self.APID:
    return self.getServiceInfoString(info, iServiceInformation.sAudioPID)
    elif self.type == self.VPID:
    return self.getServiceInfoString(info, iServiceInformation.sVideoPID)
    elif self.type == self.PCRPID:
    return self.getServiceInfoString(info, iServiceInformation.sPCRPID)
    elif self.type == self.PMTPID:
    return self.getServiceInfoString(info, iServiceInformation.sPMTPID)
    elif self.type == self.TXTPID:
    return self.getServiceInfoString(info, iServiceInformation.sTXTPID)
    elif self.type == self.TSID:
    return self.getServiceInfoString(info, iServiceInformation.sTSID)
    elif self.type == self.ONID:
    return self.getServiceInfoString(info, iServiceInformation.sONID)
    elif self.type == self.SID:
    return self.getServiceInfoString(info, iServiceInformation.sSID)
    elif self.type == self.FRAMERATE:
    return self.getServiceInfoString(info, iServiceInformation.sFrameRate, lambda x: "%d fps" % ((x+500)/1000))
    return ""


    text = property(getText)


    @cached
    def getValue(self):
    service = self.source.service
    info = service and service.info()
    if not info:
    return -1


    if self.type == self.XRES:
    return info.getInfo(iServiceInformation.sVideoWidth)
    if self.type == self.YRES:
    return info.getInfo(iServiceInformation.sVideoHeight)
    if self.type == self.FRAMERATE:
    return info.getInfo(iServiceInformation.sFrameRate)


    return -1


    value = property(getValue)


    def changed(self, what):
    if what[0] != self.CHANGED_SPECIFIC or what[1] in self.interesting_events:
    Converter.changed(self, what)

  • selbst als ich die Zeile
    eDVBVolumecontrol.getInstance().setVolume(vol+25, vol+25)
    auf
    eDVBVolumecontrol.getInstance().setVolume(vol+50, vol+50)
    abgeändert habe, wurde es immer noch nicht lauter.

  • Es ist schon ein absoluter Hammer in einem Converter, der zur Abfrage von Serviceinformationen dient die Lautstärke zu verändern. Wie auch immer, der Range für volume ist 0-100 , dieser Hack wird also nur funktiomieren wenn der Lautstärkeregler ungefähr in der Mitte steht.

    DM8000HD | DM7020HD | DM800HD | DM800HD | DM7020 | DM7000

  • Worum geht es hier überhaupt? AC3 mit aktiviertem Downmix? Denn solange der Downmix deaktiviert ist, macht die 800 ja gar nichts am AC3-Ton!

    so long
    m0rphU

  • Mit DownMix oder ohne !?


    Richtig AC3 Sound kann man eigentlich die Lautstärke nicht ändern an ner Dreambox, da es ein digitaler Bitstream ist und die Box dazu einen Dolby Decoder bräuchte um das Signal zu dekodieren, die lautstärke zu ändern und wieder ein geändertes Digitales Signal auszugeben. Dafür hat man in der Regel AV-Verstärker. Man kann nur die Laustärke von 2CH Stereo Sound ändern (also MPEG Tonspuren oder wenn der AC3 DownMix aktiviert ist).


    In dem Fall musste halt MPEG Lautstärke an die von AC3 anpassen, das die auf einem Level sind ...

    Theorie ist, wenn man alles weiß, aber nichts funktioniert.
    Praxis ist, wenn alles funktioniert aber niemand weiß warum.

  • Hallo,
    habe die Einstellungen:
    AC3 standartmäßig ja
    AC3 downmix nein


    und wenn ich AC3 downmix ja einstelle, habe ich kein dolby digital mehr in meinem Receiver stehen...

  • Ja das ist auch richtig, DownMix macht aus 5.1 wieder ein 2CH Stereo Signal ... für die Leute die HD Sender gucken wollen wo nur AC3 Sound gibt, aber die keinen 5.1 Verstärker haben.


    Wie gesagt, von AC3 sound ohne DownMix lässt sich die Laustärke nicht einstellen, die Box hat keinen Dolby 5.1 Decoder oder sowas. Du kannst nur die Lautstärke von 2CH Stereo Sound einstellen.


    Musst die MPEG Laustärke an der Box richtig einstellen, so das sie quasi genauso laut ist wie dein AC3 Sound ... dann passts :winking_face:

    Theorie ist, wenn man alles weiß, aber nichts funktioniert.
    Praxis ist, wenn alles funktioniert aber niemand weiß warum.

  • Musst die MPEG Laustärke an der Box richtig einstellen, so das sie quasi genauso laut ist wie dein AC3 Sound ... dann passts :winking_face:

    Du meinst genauso leise :grinning_squinting_face:
    mhhhh, schade, naja, dann muss ich halt den av-receiver immer wieder regulieren...

  • Naja, wenn alles (MPEG+AC3) die selbe lautstärke hat, find ich das nicht wirklich ein Problem !? Dann muss man da auch nicht immer rumstellen ...


    So in dieser Lautstärke senden es halt die TV-Sender und das ist normale Standard-Laustärke so wie auch die Hersteller der Filme die Filme produzieren ...

    Theorie ist, wenn man alles weiß, aber nichts funktioniert.
    Praxis ist, wenn alles funktioniert aber niemand weiß warum.