Erweiterte Tonoptionen...

Wünsche, Anträge, Fehlermeldungen
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

rasc hat geschrieben:Tja, keine Signalisierung in den Meta-Daten...
... damit kann ein DVB-Receiver das auch nicht erkennen.
Deswegen ja auch einfach die Optionen aus dem Audio-Menü in die
Tonoptionen übernehmen. Dann kann man zwischen den Optionen
auswählen und beim zappen werden diese dann auch berücksichtigt.


Gruß
____Paule
Spacefire
Neugieriger
Neugieriger
Beiträge: 3
Registriert: Dienstag 30. August 2005, 02:22

Beitrag von Spacefire »

Ich möchte das Thema nochmal aufgreifen weil mir etwas auf ARD aufgefallen ist, ich die Suche genutzt und diesen Thread gefunden habe. :D

In letzter Zeit gibt es auch dort Sendungen im 2Kanal-Mono. Links z.B. Deutsch und Rechts Original oder Hörfilm.

Die Box zeigt unter den Technischen Informationen auch folgendes an: Audiotyp: dual_ch (48k/II) c

Jetzt wäre es schön wenn die Box automatisch die Audiodecodereinstellungen auf nur einen Kanal setzen würde und ich zwischen Kanal 1 und 2 mit den Audio-Optionen aus der Info-bar hin und her schalten könnte.

Einen dvbsnoop konnte ich noch nicht machen weil dieser bis jetzt immer mit "dvbsnoop V1.3.90 -- http://dvbsnoop.sourceforge.net/" stehen blieb :gruebel:

Aber da es in den Technischen Info es ja richtig angezeigt wird muß es doch irgendwo ausgewertet werden...

Vielleicht kommt einer damit weiter?
michaelstaehle
Einsteiger
Einsteiger
Beiträge: 143
Registriert: Dienstag 7. September 2004, 09:56

Beitrag von michaelstaehle »

Da wird wohl auch das Problem sein, dass das Signal nicht sauber ausgezeichnet ist.

Was viel besser wäre:

Mit rechts/links wie bei den Feeds die Tonoptionen durchschalten, d.h. nur wenn kein Feed vorhanden ist, soll der Ton umgeschaltet werden. Und zwar so.

- Bei Mehrkanal nacheinander: Deutsch <-> Englisch <-> AC3
- Bei Stereo: Mono links <-> Mono rechts <-> Stereo

Das wäre eine Erleichterung, denn beim unteren muss man bisher sich über D-Box -> Einstellungen -> Audio -> !!! durchhangeln.

Das obige vorgehen soll es schon mal gegeben haben, aber wurde leider nicht ins CVS übernommen. Vielleicht taucht es wieder auf und man könnte den zweiten Punkt dazu bauen.

Ciao Micha
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Mit rechts/links wie bei den Feeds die Tonoptionen durchschalten, d.h. nur wenn kein Feed vorhanden ist, soll der Ton umgeschaltet werden. Und zwar so.

- Bei Mehrkanal nacheinander: Deutsch <-> Englisch <-> AC3
Hehe, das ist schon im CVS, aber noch nicht über Neutrino aktivierbar.
In neutrino.conf den Parameter "audiochannel_up_down_enable" auf true setzen und reboot.
Gilt erst für Images ab CVS 16.8.05

Houdini
rasc
Senior Member
Beiträge: 5071
Registriert: Dienstag 18. September 2001, 00:00

Beitrag von rasc »

Das löst aber nicht das Problem, oder?

Heute werden die Audio-Channels ja per PID durchgeschaltet.
Was aber noch benötigt wird, ist eine Schaltung des Audio-Ausgangs L/R Mono / Stereo.


PS: Ich guck mal gerade in Neutrino rein..
michaelstaehle
Einsteiger
Einsteiger
Beiträge: 143
Registriert: Dienstag 7. September 2004, 09:56

Beitrag von michaelstaehle »

Hi Rasc,

aber es wäre ein Anfang. Das zweite Umschalten für Stero gibt es (noch) nicht. Man müsste nur die Umstellung von den EInstellung noch dazunehmen. IMHO eine if:

if stero then
einstelung/audio/!!
else
wie im CVS schalten
fi

Ciao Micha
rasc hat geschrieben:Das löst aber nicht das Problem, oder?

Heute werden die Audio-Channels ja per PID durchgeschaltet.
Was aber noch benötigt wird, ist eine Schaltung des Audio-Ausgangs L/R Mono / Stereo.


PS: Ich guck mal gerade in Neutrino rein..
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Eigentlich müssen wie schon erwähnt nur die Einstellungmöglichkeiten
aus dem Audiomenü in die Tonoptionen übernommen werden.

Dann könnte man immer zwischen links / rechts oder Stereo wählen.

Auch wenn das nicht DVB-Konform gesendet wird.

Für Leute die dies stört könnte man diese Funktion idealerweise als
Option im Audiomenü deaktivierbar machen.

Die Tonumschaltung mit den Tasten li/re der FB würde ich ebenfalls
nur optional anbieten. Eventuell kann man den Parameter vorhandenen
ja über die GUI einstellbar machen...


Gruß
____Paule
rasc
Senior Member
Beiträge: 5071
Registriert: Dienstag 18. September 2001, 00:00

Beitrag von rasc »

erstmal muss das Neutrino-Zeugs etwas entwirrt werden.

Leider haengt vieles im neutrino.cpp, wo es nun wirklich nicht reingehört.
michaelstaehle
Einsteiger
Einsteiger
Beiträge: 143
Registriert: Dienstag 7. September 2004, 09:56

Beitrag von michaelstaehle »

Houdini hat geschrieben: Hehe, das ist schon im CVS, aber noch nicht über Neutrino aktivierbar.
In neutrino.conf den Parameter "audiochannel_up_down_enable" auf true setzen und reboot.
Gilt erst für Images ab CVS 16.8.05
Houdini
Hehe cool, bin mit JtG uptodate, thanxs.

Ciao Micha

P.S. <Klugscheiss on> "Neutrino neu starten" tuts auch
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ich bin zwar nicht der profi, aber was ihr da gerade eingescheckt habt funktioniert. ist zwar auf der blauen taste ganz unten -> Audio select , aber geht. da muss man sich nicht in den hauptmenü rumhangeln :)

@Houdini
audiochannel_up_down_enable=true gesetzt, und nun geht das mit rechts-links. das ist GEIL. fehlt nur noch was, das ein und auszuschalten :) manche mögen das bestimmt nicht

PS
ich hab da grad was gefunden :)
kann man in neutrino.cpp nicht so ähnlich machen ?

Code: Alles auswählen

oj = new CMenuOptionChooser(LOCALE_AUDIOMENU_DOLBYDIGITAL, &g_settings.audio_DolbyDigital, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier);
audioSettings.addItem(oj);

+ oj = new CMenuOptionChooser(LOCALE_AUDIOMENU_UPDOWN, &g_settings.audiochannel_up_down_enable, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier);
+ audioSettings.addItem(oj);
rasc
Senior Member
Beiträge: 5071
Registriert: Dienstag 18. September 2001, 00:00

Beitrag von rasc »

Klar kann man sowas machen (muss man sogar).

Weil Ton-Umschaltung mit links/rechts waere bei meinen Wurstfingern und meiner kaputten Fernbedienung eine echte Katastophe.
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Ich hatte ersteinmal den Konfigparameter eingebaut, damit rasc keine Kriese kriegt und es bei mir funktioniert :-), den Parameter per Gui zu konfigurieren fehlt halt noch

Houdini

Code: Alles auswählen

+ oj = new CMenuOptionChooser(LOCALE_AUDIOMENU_UPDOWN, &g_settings.audiochannel_up_down_enable, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier);
+ audioSettings.addItem(oj);
kommt dort auch audioSetupNotifier?
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

:gruebel: ich sagte ja, das ich kein profi bin :)
was muss man in den code ändern, damit es "richtig" ist.
man nehme die doby digital funktion, ändere die g.set...... um und erstelle ein neues :)
ich habs mal probehalber in die neutrino reingebastelt, es funktioniert so :)
rasc
Senior Member
Beiträge: 5071
Registriert: Dienstag 18. September 2001, 00:00

Beitrag von rasc »

AudioSetupNotifier hat IMO nichts mit einer Konfig "Funktion an/aus" fuer Neutrino zu tun. Das gibt nur seltsame Nebeneffekte.

Prinzipiell muss das Konfig-Menue nur die Variable setzen.


Noch eine Bitte:
Wenn jemand an Neutrino was erweitert. Nutzt die Gelegenheit den Code etwas zu entzerren, auch wenn es Mehrarbeit ist. Lagert die Menues/Funktionen in Module/Klassen aus.

Man kann natuerlich auch den ganzen Code in neutrino.cpp reinhauen, aber dann bitte nicht wundern wenn das wirklich niemand mehr anfasst. Die Seiteneffekte im Neutrino-Code sind jetzt schon heftig.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

:) also was du da erzählst klingt ganz gut, nur leider fehlt mir da der zugang. ich bin froh, das es so funktioniert.

evt. sollten ja mal ein paar devs sich zusammentun, und den neulingen wie mir, ein paar codestücke näher erläutern. dann kann man ja mal sehen, was draus wird.
das mit den auslagern ist ne feine sache. evtl sollte der gui ordner dafür nicht genutzt werden ?? man könnte da einen extra ordner machen, wo alle neutrino codefragmente rein kommen.
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

evt. sollten ja mal ein paar devs sich zusammentun, und den neulingen wie mir, ein paar codestücke näher erläutern. dann kann man ja mal sehen, was draus wird.
bin ich für - evtl. wäre es auch schön mal zu beschreiben von anfang bis ende wie man eine codeänderung durchführt, welche tools man nimmt und welche fallen es gibt.
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
rasc
Senior Member
Beiträge: 5071
Registriert: Dienstag 18. September 2001, 00:00

Beitrag von rasc »

nicht böse sein, aber die Erklaerung liest eh keiner, weil das kommt immer darauf an, was du machen willst.

Ein paar Vernuenftige Kommentare im Source sind da eher hilfreicher.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ja rasc
ich stimme dir zu, im code näher zu erläutern.
nur viele kennen sich ein bischen mir c aus, aber die box hat da so ihre eigenheiten
michaelstaehle
Einsteiger
Einsteiger
Beiträge: 143
Registriert: Dienstag 7. September 2004, 09:56

Beitrag von michaelstaehle »

Würde gerne helfen, aber C kann ich "noch" nicht. Habe bisher nur ein diff bezüglich Logikbug service.xml gemacht.

Die Stereo-Umschaltung würde ich auch mal selber anschauen, aber ich finde nichtmal die zwei Stellen im Source:

1.) Links/rechts von bisher, sprich was mit dem Switch in der neutrino.conf jetzt geht

2.) Diverse Einstellungen/audio

Ciao Micha

P.S. Jetzt geht es am Freitag erstmal nach Amsterdam. Nein nicht das. Ein Turnier.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

hallo jungs
ich hab grade die änderungen zwecks ton vom cvs übernommen.
es geht jetzt noch besser. eindruck auf grün, und man kann umstellen :)
thx

da sieht man wieder mal, as alles nötig ist, um so eine "kleine"änderung vorzunehmen. :respekt
rasc
Senior Member
Beiträge: 5071
Registriert: Dienstag 18. September 2001, 00:00

Beitrag von rasc »

Das liegt wohl daran, dass neue Funktionen erst unter dem Menuepunkt "experimentell" zum Testen zur Verfuegung gestellt werden und erst bei erfolgreichem Test "produktiv" geschaltet werden...
michaelstaehle
Einsteiger
Einsteiger
Beiträge: 143
Registriert: Dienstag 7. September 2004, 09:56

Beitrag von michaelstaehle »

Im aktuellen Snap von JtG ist es auch schon drin. Funktioniert sehr gut.

Da liegt es zwar noch nicht auf grün, aber auf blau ganz unten zum Testen sehr gut.

Links/rechts wäre supper wenn die Umschaltung bei nur stereo noch reinkäme. Aber so ist es schon mal genial.

Noch eine Frage: Wäre es nicht sinnvoll auf Stereo oder Audiokanal 0 nach jedem Umschalten zu gehen?

Ciao Micha
zexma
Tuxboxer
Tuxboxer
Beiträge: 2067
Registriert: Mittwoch 6. März 2002, 15:29

Beitrag von zexma »

rasc hat geschrieben:Das liegt wohl daran, dass neue Funktionen erst unter dem Menuepunkt "experimentell" zum Testen zur Verfuegung gestellt werden und erst bei erfolgreichem Test "produktiv" geschaltet werden...
Jetzt wo die Ton-Umschaltung so schön läuft:
können wir nicht endlich barfs audio-patches ins cvs einfließen lassen? :-?
Die patches laufen jetzt schon seit Monaten problemlos als diff gegen das aktuelle cvs.
Hiermit würde die Sache erst so richtig rund.

http://www.bengt-martensson.de/dbox2/#Barf%27s+Patches
For Neutrino. Using this patch, Tuxbox will, for each channel, remember the last selected AudioPID (that characterizes an audio channel) and save it, also between reboots. When returning to the channel, it will attempt to use the previously selected audio channel, if still available. Patch is against version 1.367 of zapit.cpp.
Diskutiert hatten wir das seinerzeit
hier
http://forum.tuxbox-cvs.sourceforge.net ... 8bd0999681
hier
http://forum.tuxbox-cvs.sourceforge.net ... hp?t=30640
und hier
http://forum.tuxbox-cvs.sourceforge.net ... 7e20d1182e

http://www.bengt-martensson.de/dbox2/za ... 2005-07-03

Code: Alles auswählen

--- zapit.cpp.~1.372~	2005-07-02 15:44:33.000000000 +0200
+++ zapit.cpp	2005-07-03 17:20:58.320584280 +0200
@@ -44,6 +44,10 @@
 #include <config.h>
 #endif
 
+// AudioPIDs per channel are saved here between sessions.
+// define to /dev/null to disable
+#define AUDIO_CONFIG_FILE "/var/tuxbox/config/zapit/audioPIDs.data"
+
 /* tuxbox headers */
 #include <configfile.h>
 #include <connection/basicserver.h>
@@ -92,6 +96,9 @@
 CDemux *teletextDemux = NULL;
 CDemux *videoDemux = NULL;
 
+// This associative array holds the last selected AudioPid for each channel
+map<t_channel_id, unsigned short> audio_map;
+
 /* current zapit mode */
 enum {
 	TV_MODE = 0x01,
@@ -173,11 +180,36 @@
 
 		if (config.getModifiedFlag())
 			config.saveConfig(CONFIGFILE);
+		FILE *audio_config_file = fopen(AUDIO_CONFIG_FILE, "w");
+		if (audio_config_file) {
+		  for (map<t_channel_id, unsigned short>::iterator audio_map_it = audio_map.begin(); 
+		       audio_map_it != audio_map.end();
+		       audio_map_it++) {
+		    fwrite(&(audio_map_it->first), sizeof(t_channel_id), 1,
+			    audio_config_file);
+		    fwrite(&(audio_map_it->second), sizeof(unsigned short), 1,
+			    audio_config_file);
+		  }
+		  fclose(audio_config_file);
+		}
 	}
 }
 
 CZapitClient::responseGetLastChannel load_settings(void)
 {
+        FILE *audio_config_file = fopen(AUDIO_CONFIG_FILE, "r");
+	if (audio_config_file) {
+	  t_channel_id chan;
+	  unsigned short apid;
+	  while (! feof(audio_config_file)) {
+	    fread(&chan, sizeof(t_channel_id), 1, audio_config_file);
+	    fread(&apid, sizeof(unsigned short), 1, audio_config_file);
+	    //printf("**** Old channelinfo: %d %d\n", (int) chan, (int) apid);
+	    audio_map[chan] = apid;
+	  }
+	  fclose(audio_config_file);
+	}	  
+
 	CZapitClient::responseGetLastChannel lastchannel;
 
 	if (currentMode & RADIO_MODE)
@@ -207,12 +239,23 @@
 static int pmt_update_fd = -1;
 static bool update_pmt = false;
 
+void
+remember_selected_audio()
+{
+	if (channel) {
+		audio_map[channel->getServiceId()] = channel->getAudioPid();
+		DBG("*** Remembering apid = %d for channel (service-id) = %d",  channel->getAudioPid(), channel->getServiceId());
+	}
+}
+
 int zapit(const t_channel_id channel_id, bool in_nvod, transponder_id_t transponder_id)
 {
 	bool transponder_change;
 	tallchans_iterator cit;
 	transponder_id_t current_transponder_id;
 
+	remember_selected_audio();
+
 	DBG("tuned_transponder_id: " PRINTF_TRANSPONDER_ID_TYPE, tuned_transponder_id);
 
 	if (transponder_id == TRANSPONDER_ID_NOT_TUNED)	/* usual zap */
@@ -358,7 +401,7 @@
 			failed = true;
 		}
 
-      thisChannel->setAudioChannel(audioChannel);
+		thisChannel->setAudioChannel(audioChannel);
 
 		if ((!failed) && (thisChannel->getAudioPid() == NONE) && (thisChannel->getVideoPid() == NONE)) {
 			WARN("neither audio nor video pid found");
@@ -378,6 +421,18 @@
 	else
 		thisChannel->getCaPmt()->ca_pmt_list_management = 0x04;
 
+	DBG("***Now trying to get audio right:  %d\t%d\t%d\t%d",
+	       thisChannel->getAudioChannelCount(),
+	       thisChannel->getAudioChannel(0)->pid,
+	       thisChannel->getServiceId(),
+	       audio_map[thisChannel->getServiceId()]);
+	for (int i = 0; i < thisChannel->getAudioChannelCount(); i++) {
+	  if (thisChannel->getAudioChannel(i)->pid == audio_map[thisChannel->getServiceId()]) {
+	    DBG("***** Setting audio!\n");
+	    thisChannel->setAudioChannel(i);
+	  }
+	}
+						
 	startPlayBack(thisChannel);
 	cam->setCaPmt(thisChannel->getCaPmt());
 	saveSettings(false);
@@ -427,6 +482,7 @@
 
 	/* update current channel */
 	channel->setAudioChannel(index);
+	remember_selected_audio();
 
 	/* set bypass mode */
 	CZapitAudioChannel *currentAudioChannel = channel->getAudioChannel();
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Also die Änderung ist schon einmal echt gelungen. Großes Lob!!

Wenn jetzt auch noch der Patch von Barf reinkommen würde wär es
echt der Hammer... :o :o


Gruß
____Paule

PS: Im aktuellen JTG-Snap ist jetzt alles drin. :D :D
rasc
Senior Member
Beiträge: 5071
Registriert: Dienstag 18. September 2001, 00:00

Beitrag von rasc »

michaelstaehle hat geschrieben:
Noch eine Frage: Wäre es nicht sinnvoll auf Stereo oder Audiokanal 0 nach jedem Umschalten zu gehen?

Ciao Micha
Nein!
Wenn ich auf z.B. DD oder Englisch bin, soll das auch dort bleiben!