Skip to contentSkip to conversation

kaffeine s2api v2 patch

linux-dvb Christophe Thommeret 1 participant 1 message Oct 18, 2008 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

If anyone is interested.
Applies to kaffeine svn.

Signature · 1 line
Christophe Thommeret
player-parts/xine-part/kxinewidget.cpp +2 -2
Index: src/player-parts/xine-part/kxinewidget.cpp
===================================================================
@@ -1858,7 +1858,7 @@
 
 void KXineWidget::setDvb( const QString &pipeName, const QString &chanName, int haveVideo )
 {
-	m_trackURL = pipeName;
+	m_trackURL = /*"fifo://"+*/pipeName;
 	m_trackTitle = chanName;
 	dvbHaveVideo = haveVideo;
 }
@@ -1875,7 +1875,7 @@
 	clearQueue();
 	m_lengthInfoTimer.stop();
 	m_posTimer.stop();
-	xine_set_param( m_xineStream, XINE_PARAM_METRONOM_PREBUFFER, 180000);
+	xine_set_param( m_xineStream, XINE_PARAM_METRONOM_PREBUFFER, 90000);
 	if (!xine_open(m_xineStream, QFile::encodeName(m_trackURL))) {
 		sendXineError();
 		return false;
kaffeine.cpp +3 -3
Index: src/kaffeine.cpp
===================================================================
@@ -307,8 +307,10 @@
 	}
 	loadTMP(urls);
 
-	if (args->isSet("fullscreen"))
+	if (args->isSet("fullscreen")) {
+		inplug->showPlayer();
 		fullscreen();
+	}
 
 	if (args->isSet("minimal"))
 		minimal();
@@ -1210,8 +1212,6 @@
 			inplug->fullscreen( false );
 		}
 
-		inplug->showPlayer();
-
 		if (m_haveKWin)
 			KWin::clearState(winId(), NET::FullScreen);
 		else
input/dvb/channeleditorui.ui +56 -30

134 lines not on this page · raw message

input/dvb/channeldesc.h +2 -0
Index: src/input/dvb/channeldesc.h
===================================================================
@@ -101,6 +101,8 @@
 	fe_code_rate_t coderateH;
 	fe_bandwidth_t bandwidth;
 	int snr;
+	fe_rolloff_t rolloff;
+	char S2;
 };
 
 class ChannelDesc
input/dvb/dvbsi.h +1 -0
Index: src/input/dvb/dvbsi.h
===================================================================
@@ -36,6 +36,7 @@
 	bool getSection( int pid, int tid, int timeout=5000 );
 	bool tableNIT( unsigned char* buf );
 	void satelliteDesc( unsigned char* buf, Transponder *trans );
+	void S2satelliteDesc( unsigned char* buf, Transponder *trans );
 	void cableDesc( unsigned char* buf, Transponder *trans );
 	void terrestrialDesc( unsigned char* buf, Transponder *trans );
 	void freqListDesc( unsigned char* buf, Transponder *trans );
input/dvb/channeleditor.cpp +36 -26

128 lines not on this page · raw message

input/dvb/plugins/epg/kaffeinedvbsection.cpp +3 -0
Index: src/input/dvb/plugins/epg/kaffeinedvbsection.cpp
===================================================================
@@ -141,6 +141,9 @@
 	if ( inSize<1 )
 		return false;
 	cd = iconv_open( "UTF8", table );
+	//check if charset unknown
+	if( cd == (iconv_t)(-1) )
+		return false;
 	inBuf = s.data();
 	outBuf = buffer;
 	outBuf[0] = 0;
input/dvb/dvbconfig.cpp +30 -17

61 lines not on this page · raw message

input/dvb/dvbsi.cpp +44 -2

85 lines not on this page · raw message

input/dvb/channeldesc.cpp +4 -0
Index: src/input/dvb/channeldesc.cpp
===================================================================
@@ -115,6 +115,8 @@
 	coderateH=FEC_AUTO;
 	bandwidth=BANDWIDTH_AUTO;
 	snr = 0;
+	rolloff = ROLLOFF_AUTO;
+	S2 = 0;
 }
 
 Transponder::Transponder( const Transponder &trans )
@@ -134,6 +136,8 @@
 	coderateL=trans.coderateL;
 	coderateH=trans.coderateH;
 	bandwidth=trans.bandwidth;
+	rolloff = trans.rolloff;
+	S2 = trans.S2;
 }
 
 bool Transponder::sameAs( Transponder *trans )
input/dvb/channeleditor.h +2 -1
Index: src/input/dvb/channeleditor.h
===================================================================
@@ -53,11 +53,12 @@
 	QStringList inversionList();
 	QStringList coderateList();
 	QStringList modulationList();
-	QStringList modulationListAtsc();
 	QStringList transmissionList();
 	QStringList bandwidthList();
 	QStringList hierarchyList();
 	QStringList guardList();
+	QStringList stypeList();
+	QStringList rolloffList();
 
 	ChannelDesc *channel;
 	QPtrList<ChannelDesc> *chandesc;
input/dvb/dvbstream.cpp +104 -43

242 lines not on this page · raw message

input/dvb/dvbpanel.cpp +34 -1
Index: src/input/dvb/dvbpanel.cpp
===================================================================
@@ -2263,6 +2263,8 @@
 				case 67 : chan->tp.coderateH = FEC_6_7; break;
 				case 78 : chan->tp.coderateH = FEC_7_8; break;
 				case 89 : chan->tp.coderateH = FEC_8_9; break;
+				case 35 : chan->tp.coderateH = FEC_3_5; break;
+				case 910 : chan->tp.coderateH = FEC_9_10; break;
 				case -1 : chan->tp.coderateH = FEC_AUTO;
 			}
 			s = s.right( s.length()-pos-1 );
@@ -2283,6 +2285,9 @@
 				case 256 : chan->tp.modulation = QAM_256; break;
 				case 108 : chan->tp.modulation = VSB_8; break;
 				case 116 : chan->tp.modulation = VSB_16; break;
+				case 1000 : chan->tp.modulation = PSK_8; break;
+				case 1001 : chan->tp.modulation = APSK_16; break;
+				case 1003 : chan->tp.modulation = DQPSK; break;
 				case -1 : chan->tp.modulation = QAM_AUTO;
 			}
 			s = s.right( s.length()-pos-1 );
@@ -2297,6 +2302,8 @@
 				case 67 : chan->tp.coderateL = FEC_6_7; break;
 				case 78 : chan->tp.coderateL = FEC_7_8; break;
 				case 89 : chan->tp.coderateL = FEC_8_9; break;
+				case 35 : chan->tp.coderateH = FEC_3_5; break;
+				case 910 : chan->tp.coderateH = FEC_9_10; break;
 				case -1 : chan->tp.coderateL = FEC_AUTO;
 			}
 			s = s.right( s.length()-pos-1 );
@@ -2364,6 +2371,17 @@
 			s = s.right( s.length()-pos-1 );
 			pos = s.find("|");
 			chan->tp.nid = s.left(pos).toUShort();
+			s = s.right( s.length()-pos-1 );
+			pos = s.find("|");
+			switch ( s.left(pos).toInt() ) {
+				case 20 : chan->tp.rolloff = ROLLOFF_20; break;
+				case 25 : chan->tp.rolloff = ROLLOFF_25; break;
+				case 35 : chan->tp.rolloff = ROLLOFF_35; break;
+				case -1 : chan->tp.rolloff = ROLLOFF_AUTO;
+			}
+			s = s.right( s.length()-pos-1 );
+			pos = s.find("|");
+			chan->tp.S2 = s.left(pos).toInt();
 
 			if ( chan->tp.source.isEmpty() ) {
 				delete chan;
@@ -2475,6 +2493,8 @@
 				case FEC_6_7 : tt<< "67|"; break;
 				case FEC_7_8 : tt<< "78|"; break;
 				case FEC_8_9 : tt<< "89|"; break;
+				case FEC_3_5 : tt<< "35|"; break;
+				case FEC_9_10 : tt<< "910|"; break;
 				case FEC_AUTO : tt<< "-1|";
 			}
 			switch ( chan->tp.inversion ) {
@@ -2491,6 +2511,9 @@
 				case QAM_256 : tt<< "256|"; break;
 				case VSB_8 : tt<< "108|"; break;
 				case VSB_16 : tt<< "116|"; break;
+				case PSK_8 : tt<< "1000|"; break;
+				case APSK_16 : tt<< "1001|"; break;
+				case DQPSK : tt<< "1003|"; break;
 				case QAM_AUTO : tt<< "-1|";
 			}
 			switch ( chan->tp.coderateL ) {
@@ -2503,6 +2526,8 @@
 				case FEC_6_7 : tt<< "67|"; break;
 				case FEC_7_8 : tt<< "78|"; break;
 				case FEC_8_9 : tt<< "89|"; break;
+				case FEC_3_5 : tt<< "35|"; break;
+				case FEC_9_10 : tt<< "910|"; break;
 				case FEC_AUTO : tt<< "-1|";
 			}
 			switch ( chan->tp.bandwidth ) {
@@ -2541,7 +2566,15 @@
 			}
 			tt<< "|";
 			tt<< chan->category+"|";
-			tt<< s.setNum(chan->tp.nid)+"|\n";
+			tt<< s.setNum(chan->tp.nid)+"|";
+			switch ( chan->tp.rolloff ) {
+				case ROLLOFF_20 : tt<< "20|"; break;
+				case ROLLOFF_25 : tt<< "25|"; break;
+				case ROLLOFF_35 : tt<< "35|"; break;
+				case ROLLOFF_AUTO : tt<< "-1|";
+			}
+			tt<< s.setNum(chan->tp.S2)+"|";
+			tt<< "\n";
 		}
 		ret = true;
 		f.close();

_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb