zu '1.: die fehlenden PMT/PAT beim direkt streaming unter Neutrino.' gibt es etwas von einem 'body' der natuerlich nix dagegen hat wenn's ins CVS wandert....ob's funktioniert weiss ich leider nicht, aber ich wuerde mich sehr freuen wenn dass mal einer der Experten hier testen, kommentieren und uU. einchecken koennte...ist ein diff:
Code: Alles auswählen
diff -Naur cvs/apps/dvb/zapit/include/zapit/client/zapitclient.h cvs_/apps/dvb/zapit/include/zapit/client/zapitclient.h
--- cvs/apps/dvb/zapit/include/zapit/client/zapitclient.h 2004-11-17 21:38:06.000000000 +0100
+++ cvs_/apps/dvb/zapit/include/zapit/client/zapitclient.h 2004-11-18 13:29:09.000000000 +0100
@@ -186,6 +186,7 @@
unsigned int tsfrequency;
unsigned char polarisation;
unsigned char diseqc;
+ unsigned short pmtpid;
};
struct responseGetPIDs
diff -Naur cvs/apps/dvb/zapit/src/zapit.cpp cvs_/apps/dvb/zapit/src/zapit.cpp
--- cvs/apps/dvb/zapit/src/zapit.cpp 2004-11-17 21:38:10.000000000 +0100
+++ cvs_/apps/dvb/zapit/src/zapit.cpp 2004-11-18 13:29:09.000000000 +0100
@@ -656,6 +656,7 @@
msgCurrentServiceInfo.vpid = channel->getVideoPid();
msgCurrentServiceInfo.apid = channel->getAudioPid();
msgCurrentServiceInfo.vtxtpid = channel->getTeletextPid();
+ msgCurrentServiceInfo.pmtpid = channel->getPmtPid();
msgCurrentServiceInfo.pcrpid = channel->getPcrPid();
msgCurrentServiceInfo.tsfrequency = frontend->getFrequency();
if (frontend->getInfo()->type == FE_QPSK)
diff -Naur cvs/apps/tuxbox/neutrino/data/locale/deutsch.locale cvs_/apps/tuxbox/neutrino/data/locale/deutsch.locale
--- cvs/apps/tuxbox/neutrino/data/locale/deutsch.locale 2004-11-17 21:38:14.000000000 +0100
+++ cvs_/apps/tuxbox/neutrino/data/locale/deutsch.locale 2004-11-18 13:29:09.000000000 +0100
@@ -664,6 +664,7 @@
recordingmenu.stopplayback Playback anhalten
recordingmenu.stopsectionsd Sectionsd anhalten
recordingmenu.stream_all_audio_pids Alle Audiopids aufzeichnen
+recordingmenu.stream_pmt_pid PMT pid aufzeichnen
recordingmenu.stream_vtxt_pid Videotext aufzeichnen
recordingmenu.use_fdatasync Synchrones Schreiben (fdatasync)
recordingmenu.use_o_sync Synchrones Schreiben (O_SYNC)
diff -Naur cvs/apps/tuxbox/neutrino/data/locale/english.locale cvs_/apps/tuxbox/neutrino/data/locale/english.locale
--- cvs/apps/tuxbox/neutrino/data/locale/english.locale 2004-11-17 21:38:14.000000000 +0100
+++ cvs_/apps/tuxbox/neutrino/data/locale/english.locale 2004-11-18 13:29:09.000000000 +0100
@@ -626,6 +626,7 @@
recordingmenu.stopplayback stop playback
recordingmenu.stopsectionsd stop sectionsd
recordingmenu.stream_all_audio_pids record all audio pids
+recordingmenu.stream_pmt_pid record pmt pid
recordingmenu.stream_vtxt_pid record videotext
recordingmenu.use_fdatasync write synchronous (fdatasync)
recordingmenu.use_o_sync write synchronous (O_SYNC)
diff -Naur cvs/apps/tuxbox/neutrino/src/driver/vcrcontrol.cpp cvs_/apps/tuxbox/neutrino/src/driver/vcrcontrol.cpp
--- cvs/apps/tuxbox/neutrino/src/driver/vcrcontrol.cpp 2004-11-17 21:38:15.000000000 +0100
+++ cvs_/apps/tuxbox/neutrino/src/driver/vcrcontrol.cpp 2004-11-18 14:25:23.457606776 +0100
@@ -405,6 +405,11 @@
extMessage += tmp;
extMessage +=
"</vtxtpid>\n"
+ "\t\t<pmtpid>";
+ sprintf(tmp, "%u", si.pmtpid);
+ extMessage += tmp;
+ extMessage +=
+ "</pmtpid>\n"
"\t</record>\n"
"</neutrino>\n";
@@ -499,6 +504,11 @@
{
pids[numpids++] = si.vtxtpid;
}
+ if ((StreamPMTPid) && (si.pmtpid != 0))
+ {
+ pids[numpids++] = si.pmtpid;
+ pids[numpids++] =0;
+ }
char filename[512]; // UTF-8
diff -Naur cvs/apps/tuxbox/neutrino/src/driver/vcrcontrol.h cvs_/apps/tuxbox/neutrino/src/driver/vcrcontrol.h
--- cvs/apps/tuxbox/neutrino/src/driver/vcrcontrol.h 2004-11-17 21:38:15.000000000 +0100
+++ cvs_/apps/tuxbox/neutrino/src/driver/vcrcontrol.h 2004-11-18 13:29:09.000000000 +0100
@@ -130,6 +130,7 @@
bool Use_Fdatasync;
bool StreamAllAudioPids;
bool StreamVTxtPid;
+ bool StreamPMTPid;
virtual CVCRDevices getDeviceType(void) const
{
@@ -139,7 +140,7 @@
virtual bool Stop();
virtual bool Record(const t_channel_id channel_id = 0, int mode=1, const event_id_t epgid = 0, const std::string & apids = "");
- CFileDevice(const bool stopplayback, const bool stopsectionsd, const char * const directory, const unsigned int splitsize, const bool use_o_sync, const bool use_fdatasync, const bool stream_all_audio_pids, const bool stream_vtxt_pid)
+ CFileDevice(const bool stopplayback, const bool stopsectionsd, const char * const directory, const unsigned int splitsize, const bool use_o_sync, const bool use_fdatasync, const bool stream_all_audio_pids, const bool stream_vtxt_pid, const bool stream_pmt_pid)
{
StopPlayBack = stopplayback;
StopSectionsd = stopsectionsd;
@@ -149,6 +150,7 @@
Use_Fdatasync = use_fdatasync;
StreamAllAudioPids = stream_all_audio_pids;
StreamVTxtPid = stream_vtxt_pid;
+ StreamPMTPid = stream_pmt_pid;
};
virtual ~CFileDevice()
{
diff -Naur cvs/apps/tuxbox/neutrino/src/gui/streaminfo2.cpp cvs_/apps/tuxbox/neutrino/src/gui/streaminfo2.cpp
--- cvs/apps/tuxbox/neutrino/src/gui/streaminfo2.cpp 2004-06-13 15:42:44.000000000 +0200
+++ cvs_/apps/tuxbox/neutrino/src/gui/streaminfo2.cpp 2004-11-18 13:29:09.000000000 +0100
@@ -476,6 +476,11 @@
(si.polarisation == HORIZONTAL) ? 'h' : 'v');
g_Font[font_small]->RenderString(xpos, ypos, width-10, buf, COL_MENUCONTENT, 0, true); // UTF-8
+ //pmtpid
+ ypos+= sheight;
+ sprintf((char*) buf, "%s: 0x%04x", "PMTpid", si.pmtpid);
+ g_Font[font_small]->RenderString(xpos, ypos, width-10, buf, COL_MENUCONTENT, 0, true); // UTF-8
+
//vpid
ypos+= sheight;
if ( g_RemoteControl->current_PIDs.PIDs.vpid == 0 )
diff -Naur cvs/apps/tuxbox/neutrino/src/neutrino.cpp cvs_/apps/tuxbox/neutrino/src/neutrino.cpp
--- cvs/apps/tuxbox/neutrino/src/neutrino.cpp 2004-11-17 21:38:15.000000000 +0100
+++ cvs_/apps/tuxbox/neutrino/src/neutrino.cpp 2004-11-18 13:29:09.000000000 +0100
@@ -651,6 +651,7 @@
g_settings.recording_use_fdatasync = configfile.getBool("recordingmenu.use_fdatasync" , false);
g_settings.recording_stream_all_audio_pids = configfile.getBool("recordingmenu.stream_all_audio_pids", true );
g_settings.recording_stream_vtxt_pid = configfile.getBool("recordingmenu.stream_vtxt_pid" , false);
+ g_settings.recording_stream_pmt_pid = configfile.getBool("recordingmenu.stream_pmt_pid" , false);
//streaming (server)
g_settings.streaming_type = configfile.getInt32( "streaming_type", 0 );
@@ -969,6 +970,7 @@
configfile.setBool ("recordingmenu.use_fdatasync" , g_settings.recording_use_fdatasync );
configfile.setBool ("recordingmenu.stream_all_audio_pids", g_settings.recording_stream_all_audio_pids);
configfile.setBool ("recordingmenu.stream_vtxt_pid" , g_settings.recording_stream_vtxt_pid );
+ configfile.setBool ("recordingmenu.stream_pmt_pid" , g_settings.recording_stream_pmt_pid );
//streaming
configfile.setInt32 ( "streaming_type", g_settings.streaming_type );
@@ -2102,8 +2104,10 @@
CMenuOptionChooser* oj8 = new CMenuOptionChooser(LOCALE_RECORDINGMENU_STREAM_ALL_AUDIO_PIDS, &g_settings.recording_stream_all_audio_pids, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, (g_settings.recording_type == RECORDING_FILE));
CMenuOptionChooser* oj9 = new CMenuOptionChooser(LOCALE_RECORDINGMENU_STREAM_VTXT_PID, &g_settings.recording_stream_vtxt_pid, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, (g_settings.recording_type == RECORDING_FILE));
-
- CRecordingNotifier *RecordingNotifier = new CRecordingNotifier(mf1,mf2,oj2,mf3,oj3,oj4,oj5,mf7,mf8,oj6, oj7, oj8, oj9);
+
+ CMenuOptionChooser* oj10 = new CMenuOptionChooser(LOCALE_RECORDINGMENU_STREAM_PMT_PID, &g_settings.recording_stream_pmt_pid, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, (g_settings.recording_type == RECORDING_FILE));
+
+ CRecordingNotifier *RecordingNotifier = new CRecordingNotifier(mf1,mf2,oj2,mf3,oj3,oj4,oj5,mf7,mf8,oj6, oj7, oj8, oj9,oj10);
CMenuOptionChooser* oj1 = new CMenuOptionChooser(LOCALE_RECORDINGMENU_RECORDING_TYPE, &g_settings.recording_type, RECORDINGMENU_RECORDING_TYPE_OPTIONS, RECORDINGMENU_RECORDING_TYPE_OPTION_COUNT, true, RecordingNotifier);
@@ -2132,6 +2136,7 @@
recordingSettings.addItem(oj7);
recordingSettings.addItem(oj8);
recordingSettings.addItem(oj9);
+ recordingSettings.addItem(oj10);
recordingstatus = 0;
}
@@ -2828,7 +2833,7 @@
unsigned int splitsize;
sscanf(g_settings.recording_splitsize, "%u", &splitsize);
- recordingdevice = new CVCRControl::CFileDevice(g_settings.recording_stopplayback, g_settings.recording_stopsectionsd, g_settings.network_nfs_recordingdir, splitsize, g_settings.recording_use_o_sync, g_settings.recording_use_fdatasync, g_settings.recording_stream_all_audio_pids, g_settings.recording_stream_vtxt_pid);
+ recordingdevice = new CVCRControl::CFileDevice(g_settings.recording_stopplayback, g_settings.recording_stopsectionsd, g_settings.network_nfs_recordingdir, splitsize, g_settings.recording_use_o_sync, g_settings.recording_use_fdatasync, g_settings.recording_stream_all_audio_pids, g_settings.recording_stream_vtxt_pid,g_settings.recording_stream_pmt_pid);
CVCRControl::getInstance()->registerDevice(recordingdevice);
}
diff -Naur cvs/apps/tuxbox/neutrino/src/system/locals.h cvs_/apps/tuxbox/neutrino/src/system/locals.h
--- cvs/apps/tuxbox/neutrino/src/system/locals.h 2004-11-17 21:38:16.000000000 +0100
+++ cvs_/apps/tuxbox/neutrino/src/system/locals.h 2004-11-18 13:29:09.000000000 +0100
@@ -691,6 +691,7 @@
LOCALE_RECORDINGMENU_STOPPLAYBACK,
LOCALE_RECORDINGMENU_STOPSECTIONSD,
LOCALE_RECORDINGMENU_STREAM_ALL_AUDIO_PIDS,
+ LOCALE_RECORDINGMENU_STREAM_PMT_PID,
LOCALE_RECORDINGMENU_STREAM_VTXT_PID,
LOCALE_RECORDINGMENU_USE_FDATASYNC,
LOCALE_RECORDINGMENU_USE_O_SYNC,
diff -Naur cvs/apps/tuxbox/neutrino/src/system/locals_intern.h cvs_/apps/tuxbox/neutrino/src/system/locals_intern.h
--- cvs/apps/tuxbox/neutrino/src/system/locals_intern.h 2004-11-17 21:38:17.000000000 +0100
+++ cvs_/apps/tuxbox/neutrino/src/system/locals_intern.h 2004-11-18 13:29:09.000000000 +0100
@@ -691,6 +691,7 @@
"recordingmenu.stopplayback",
"recordingmenu.stopsectionsd",
"recordingmenu.stream_all_audio_pids",
+ "recordingmenu.stream_pmt_pid",
"recordingmenu.stream_vtxt_pid",
"recordingmenu.use_fdatasync",
"recordingmenu.use_o_sync",
diff -Naur cvs/apps/tuxbox/neutrino/src/system/setting_helpers.cpp cvs_/apps/tuxbox/neutrino/src/system/setting_helpers.cpp
--- cvs/apps/tuxbox/neutrino/src/system/setting_helpers.cpp 2004-11-17 21:38:17.000000000 +0100
+++ cvs_/apps/tuxbox/neutrino/src/system/setting_helpers.cpp 2004-11-18 13:29:09.000000000 +0100
@@ -138,7 +138,7 @@
CMenuItem* i4 , CMenuItem* i5 , CMenuItem* i6 ,
CMenuItem* i7 , CMenuItem* i8 , CMenuItem* i9 ,
CMenuItem* i10, CMenuItem* i11, CMenuItem* i12,
- CMenuItem* i13)
+ CMenuItem* i13,CMenuItem* i14)
{
toDisable[ 0] = i1;
toDisable[ 1] = i2;
@@ -153,13 +153,14 @@
toDisable[10] = i11;
toDisable[11] = i12;
toDisable[12] = i13;
+ toDisable[13] = i14;
}
bool CRecordingNotifier::changeNotify(const neutrino_locale_t, void *)
{
if ((g_settings.recording_type == CNeutrinoApp::RECORDING_OFF) ||
(g_settings.recording_type == CNeutrinoApp::RECORDING_FILE))
{
- for(int i = 0; i < 13; i++)
+ for(int i = 0; i < 14; i++)
toDisable[i]->setActive(false);
if (g_settings.recording_type == CNeutrinoApp::RECORDING_FILE)
@@ -170,6 +171,7 @@
toDisable[10]->setActive(true);
toDisable[11]->setActive(true);
toDisable[12]->setActive(true);
+ toDisable[13]->setActive(true);
}
}
else if (g_settings.recording_type == CNeutrinoApp::RECORDING_SERVER)
@@ -187,6 +189,7 @@
toDisable[10]->setActive(false);
toDisable[11]->setActive(false);
toDisable[12]->setActive(false);
+ toDisable[13]->setActive(false);
}
else if (g_settings.recording_type == CNeutrinoApp::RECORDING_VCR)
{
@@ -203,6 +206,7 @@
toDisable[10]->setActive(false);
toDisable[11]->setActive(false);
toDisable[12]->setActive(false);
+ toDisable[13]->setActive(false);
}
return true;
diff -Naur cvs/apps/tuxbox/neutrino/src/system/setting_helpers.h cvs_/apps/tuxbox/neutrino/src/system/setting_helpers.h
--- cvs/apps/tuxbox/neutrino/src/system/setting_helpers.h 2004-11-17 21:38:17.000000000 +0100
+++ cvs_/apps/tuxbox/neutrino/src/system/setting_helpers.h 2004-11-18 13:29:09.000000000 +0100
@@ -73,9 +73,9 @@
class CRecordingNotifier : public CChangeObserver
{
private:
- CMenuItem* toDisable[13];
+ CMenuItem* toDisable[14];
public:
- CRecordingNotifier(CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*);
+ CRecordingNotifier(CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*, CMenuItem*);
bool changeNotify(const neutrino_locale_t OptionName, void*);
};
diff -Naur cvs/apps/tuxbox/neutrino/src/system/settings.h cvs_/apps/tuxbox/neutrino/src/system/settings.h
--- cvs/apps/tuxbox/neutrino/src/system/settings.h 2004-11-17 21:38:17.000000000 +0100
+++ cvs_/apps/tuxbox/neutrino/src/system/settings.h 2004-11-18 13:29:09.000000000 +0100
@@ -165,6 +165,7 @@
int recording_use_fdatasync;
int recording_stream_all_audio_pids;
int recording_stream_vtxt_pid;
+ int recording_stream_pmt_pid;
//streaming
int streaming_type;
Ich hoffe mal, dass es diesmal nicht wieder Monate dauert (so wie bei der Movieplayererweiterung von gmo18t) bis dass geprueft, eingecheckt oder verworfen wird...
cu,
peter
--
Um klar zu sehen, genügt oft ein Wechsel der Blickrichtung.
[Antoine de Saint-Exupéry]