You are not logged in.

Dear visitor, welcome to Dreamboard. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Friday, July 16th 2010, 12:42pm

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

2

Friday, July 16th 2010, 2:39pm

Hallo,

ich kenne die Datei "ServiceInfo.py" nicht.
Wo ist die zu finden und wie müssen die Änderungen aussehen?
Kann man da Werte setzen?

3

Friday, July 16th 2010, 3:50pm

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)

4

Friday, July 16th 2010, 3:53pm

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.

5

Friday, July 16th 2010, 4:06pm

ich denke mir mal, dass das auch mit den Treibern zusammenhängt und irgendwann mal Schluss ist?!
Da kann ghost bestimmt was dazu sagen.

6

Friday, July 16th 2010, 4:15pm

das Problem ist ja nur bei ac3 so...
bei der mpeg tonspur ist es völlig okay...

dieter2

Dreamer

    Germany

Posts: 187

Location: Südhessen

Occupation: Informatiker i. R.

  • Send private message

7

Friday, July 16th 2010, 4:27pm

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

8

Friday, July 16th 2010, 4:33pm

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

9

Friday, July 16th 2010, 5:33pm

the mpeg audio track it is totally okay ...

cant agre, first step from mute is too loud
http://www.dream-multimedia-tv.de/board/index.php?page=Thread&postID=81153&highlight=#post81153
[img]http://www.dream-multimedia-tv.de/board/index.php?page=Attachment&attachmentID=4191&h=49767947e4cbaa39c87e9d09df4d1827aca6dd51[/img]
Receivers: dm500; dm7020; 2x dm8000sstt <-Diseq1x4(1.0)<-3x Diseq1x10(1.1)<-
Dishes:
1.8m + 36E;28E;23E;19E;16E;13E;7E
1.6m + 42E;40/39E;36E
1.0m + 10/9E;5E;1W;8W
1.0m + 15W;22W;30W
1.1m + 12W;18W;24W
0.8m + 4/5W
1.1m + 53E;60E
1.0m + 75E;80E
TVs: Philips 42PFL9703h(LCD); Sony KV29c3d(CRT)

10

Sunday, July 18th 2010, 11:30am

was genau heißt das nun für mich?
was muss ich tun, damit ich den ac3 ton etwas anheben kann?

Homey

Dreamer

Posts: 2,140

Location: NRW

Occupation: Softwareentwickler

  • Send private message

11

Sunday, July 18th 2010, 12:33pm

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.

12

Sunday, July 18th 2010, 12:35pm

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...

Homey

Dreamer

Posts: 2,140

Location: NRW

Occupation: Softwareentwickler

  • Send private message

13

Sunday, July 18th 2010, 12:37pm

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 ;)
Theorie ist, wenn man alles weiß, aber nichts funktioniert.
Praxis ist, wenn alles funktioniert aber niemand weiß warum.

14

Sunday, July 18th 2010, 12:42pm

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


aber auf mich hört ja keiner :sleeping:
so long
m0rphU

15

Sunday, July 18th 2010, 1:10pm

Musst die MPEG Laustärke an der Box richtig einstellen, so das sie quasi genauso laut ist wie dein AC3 Sound ... dann passts ;)
Du meinst genauso leise :D
mhhhh, schade, naja, dann muss ich halt den av-receiver immer wieder regulieren...

Homey

Dreamer

Posts: 2,140

Location: NRW

Occupation: Softwareentwickler

  • Send private message

16

Sunday, July 18th 2010, 1:17pm

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.