Page 1 of 3

[App] libSpdifVolume D/E/F/H

Posted: Thu Oct 08, 2015 3:01 pm
by zoelechat
Lib allows to control optical out volume using RC volume keys. Works only if external out mode is set to PCM, not possible in AC3/DTS/passthrough because it... pass through! :)

Usage:
*For D series (arm), replace every instance of /mnt below by /mtd_rwcommon/widgets/user/SamyGO/SamyGO
  • First install latest samyGOso as usual, if needed.
  • Extract attached archives and copy libSpdifVolume.so to /mnt/opt/privateer/usr/libso (create folder if needed).
  • Execute

    Code: Select all

    samyGOso -d -T -B -r -l /mnt/opt/privateer/usr/libso/libSpdifVolume.so [THRESHOLD:x] [STEP:y]
Usable args are (optional):
  • THRESHOLD:x - Define output gain value corresponding to volume=0. If not specified, default is -20dB (THRESHOLD:-20) which is near to silence, not mute though. All depends on your amp volume.
  • STEP:y - Number of dB to increase/decrease on each volume step. If not specified, default is ?1dB (STEP:1).
Default TV gain is 0dB, maximum allowed gain is +20dB, minimum threshold is -46dB, so it's up to you to define how many volume steps you want by defining THRESHOLD and STEP (default is: from -20dB to +20dB ?1dB = 41 steps).
If external speaker is set as main (internal muted), TV won't allow to go over volume corresponding to max gain.

Current volume/gain are logged to /dtv/SpdifVolume.log
SpoilerShow

Code: Select all

[...]
[SpdifVolume] Activating SPDIF volume control with RC!
[SpdifVolume] Vol0 threshold: -20dB, Step: 1dB
[SpdifVolume] Current volume is: 23, setting gain to -7dB
[...]
[SpdifVolume] Vol: 8, Gain: -12dB
[SpdifVolume] Vol: 9, Gain: -11dB
[SpdifVolume] Vol: 10, Gain: -10dB
[SpdifVolume] Vol: 11, Gain: -9dB
[SpdifVolume] Vol: 12, Gain: -8dB
  • Autostart
    • Copy 99_93_SpdifVolume.init to /mnt/etc/init.d
    • Set permissions

      Code: Select all

      chmod +x /mnt/etc/init.d/99_93_SpdifVolume.init
    • You can change OPTIONS value on top of script, default is none (lib defaults). You can set for example:

      Code: Select all

      OPTIONS="THRESHOLD:-30 STEP:2"
*Changelog:

Code: Select all

27/2/2016
v0.1.4 - INTERNALMUTE deprecated, ext speaker selection is enough to mute internal
       - Fix for volume slider not to go uselessly over max in below case
v0.1.3 - Now allowing volume control when ext speaker is selected as main
8/10/2015
v0.1.2 - First public release

Re: [App] libSpdifVolume D/E/F/H

Posted: Wed Feb 24, 2016 11:51 pm
by theip4nda
When i Install your script i get no sound after start tv. After i pick Tv Speaker in Tools then i get sound :-(

i used this command:
samyGOso -d -T -B -r -l /mnt/opt/privateer/usr/libso/libSpdifVolume.so

Re: [App] libSpdifVolume D/E/F/H

Posted: Thu Feb 25, 2016 12:01 am
by zoelechat
Are you going to say "not works :(" in every lib threads? :P
You get "no" sound simply because your amp and/or TV volume is too low. Actually there IS sound, you just can't hear it :)
Read explanations carefully, you might need to adjust THRESHOLD.

Re: [App] libSpdifVolume D/E/F/H

Posted: Thu Feb 25, 2016 12:19 am
by theip4nda
Jeah, but where i can set it to TRESHHOLD?
When i used that Command it doesn?t work

samyGOso -d -T -B -r -l /mnt/opt/privateer/usr/libso/libSpdifVolume.so [TRESHHOLD:10]

Re: [App] libSpdifVolume D/E/F/H

Posted: Thu Feb 25, 2016 4:59 am
by juusso
Remove brackets from your command

Re: [App] libSpdifVolume D/E/F/H

Posted: Thu Feb 25, 2016 9:46 am
by zoelechat
...and spell it correctly :)

Btw, THRESHOLD:10 is maybe a bit high value to start from, knowing that it's ~50 times louder than default THRESHOLD:-20

Re: [App] libSpdifVolume D/E/F/H

Posted: Thu Feb 25, 2016 10:57 am
by theip4nda
Used now your command:
samyGOso -d -T -B -r -l /mnt/opt/privateer/usr/libso/libSpdifVolume.so THRESHOLD:-20
Doesnt work

Re: [App] libSpdifVolume D/E/F/H

Posted: Thu Feb 25, 2016 11:00 am
by zoelechat
Setting THRESHOLD:-20 is exactly like setting nothing, it's default value. Please read 1st post.

Re: [App] libSpdifVolume D/E/F/H

Posted: Thu Feb 25, 2016 11:10 am
by theip4nda
f*ck off.. I give up

Re: [App] libSpdifVolume D/E/F/H

Posted: Fri Feb 26, 2016 4:47 pm
by theip4nda
Ok i need to try it again :D

I DO now all 100% right

Here?s my Log

Code: Select all

[SpdifVolume] SamyGO D/E/F/H libSpdifVolume v0.1.2 - (c) zoelechat 2015
[SpdifVolume] _ZN10TPCSpeaker8InstanceENS_8ESpeakerE [0xaed1ec].
[SpdifVolume] _ZN10TPASpeaker15SetInternalMuteEN10TPCSpeaker17ESpeakerSelectionENS0_10EQueryTypeE [0x12b49c0].
[SpdifVolume] _ZN10TPASpeaker9GetVolumeEPhPi [0x12afdc4].
[SpdifVolume] MApi_AUDIO_SetSpdifScale [0x430cbc14].
[SpdifVolume] dlsym '_ZN8SamShare18SetSPDIF_PCM_LevelE12SdMainChip_k' failed.
[SpdifVolume] dlsym '_ZN8SamShare18SetSPDIF_PCM_LevelEv' failed.
[SpdifVolume] _ZN9ShareBase18SetSPDIF_PCM_LevelE12SdMainChip_k [0x706d48].
[SpdifVolume] dlsym '_ZN8SamShare20t_SetSPDIF_PCM_LevelE10CDSource_ki' failed.
[SpdifVolume] dlsym '_ZN8SamShare20m_eAudioInGainRegionE' failed.
[SpdifVolume] _ZN9ShareBase20m_eAudioInGainRegionE [0x2008738].
[SpdifVolume] lib_init, >>>
[SpdifVolume] Activating SPDIF volume control with RC!
[SpdifVolume] Vol0 threshold: -30dB, Step: 2dB
[SpdifVolume] lib_init, hooking >>>
[SpdifVolume] _ZN10TPASpeaker15GetInternalMuteEPN10TPCSpeaker17ESpeakerSelectionENS0_10EQueryTypeE [0x12b4804].
[SpdifVolume] _ZN10TPASpeaker9SetVolumeEhN5TPCTv10EQueryTypeEPi [0x12af984].
[SpdifVolume] MApi_AUDIO_SetSpdifScale [0x430cbc14].
[SpdifVolume] dlsym 'spIIoAe_SetScaleOut' failed.
[SpdifVolume] Current volume is: 5, setting gain to -20dB
[SpdifVolume] init done...

And here is my Startscript

Code: Select all

#!/bin/sh
#
# ? Copyright 1996-2015, zoelechat@SamyGO
#
#
. /dtv/SGO.env

OPTIONS="THRESHOLD:-30 STEP:2"
TEXT="Spdif started"

SODIR=$SYSROOT/opt/privateer/usr/libso			# E-series only, on F/H environment LIBSO_DIR is used

stop_bootloop()
{
	for USB in /dtv/usb/sd* ; do
		echo "checking $USB"
		[ -e $USB/STOP ] && echo "STOP found. Script exit..." && exit 1
	done
}

case $1 in 
	start)
	stop_bootloop
	[ "$LIBSO_DIR" ] && SODIR=$LIBSO_DIR
	samyGOso -T -B -r -l $SODIR/libSpdifVolume.so $OPTIONS
	sleep 0.5
	samyGOso -A -B -l $SODIR/libAlert.so "TEXT:$TEXT"
	;;
	stop)
	;;
	status)
	[ -f /dtv/SpdifVolume.log ] && cat /dtv/SpdifVolume.log || echo "Not started"
	;;
	*)
	echo "Usage: $0 {start|stop|status}" 1>&2
	exit 0
	;;
esac

But after my script starts, i cant switch volume on external Speakers over my Samsung RC. My Tv said that i can?t chance volumen if external speaker are enabled... In Settings are pcm activated... Where is my problem?

I try to start with treshold internalmute and without startparamers... With treshold i cant change the volume. With Internalmute i can change the volume but after the script started they mutet my tv. I must stwitch manuel to Tv speaker then it works

And my notepad++ have now the correct settings :-)