public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [linux-dvb] hvr4000-s2api + QAM_AUTO
@ 2008-09-21 17:05 Christophe Thommeret
  2008-09-21 23:54 ` Hans Werner
  2008-09-22  2:17 ` Steven Toth
  0 siblings, 2 replies; 15+ messages in thread
From: Christophe Thommeret @ 2008-09-21 17:05 UTC (permalink / raw)
  To: Steven Toth, linux-dvb

Hi Steve,

I've managed to add S2 support to kaffeine, so it can scan and zap.
However, i have a little problem with DVB-S:
Before tuning to S2, S channels tune well with QAM_AUTO.
But after having tuned to S2 channels, i can no more lock on S ones until i 
set modulation to QPSK insteed of QAM_AUTO for these S channels.
Is this known?

-- 
Christophe Thommeret


_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-21 17:05 [linux-dvb] hvr4000-s2api + QAM_AUTO Christophe Thommeret
@ 2008-09-21 23:54 ` Hans Werner
  2008-09-22 10:01   ` Christophe Thommeret
  2008-09-22  2:17 ` Steven Toth
  1 sibling, 1 reply; 15+ messages in thread
From: Hans Werner @ 2008-09-21 23:54 UTC (permalink / raw)
  To: Christophe Thommeret, linux-dvb, stoth


-------- Original-Nachricht --------
> Datum: Sun, 21 Sep 2008 19:05:34 +0200
> Von: Christophe Thommeret <hftom@free.fr>
> An: Steven Toth <stoth@linuxtv.org>, "linux-dvb" <linux-dvb@linuxtv.org>
> Betreff: [linux-dvb] hvr4000-s2api + QAM_AUTO

> Hi Steve,
> 
> I've managed to add S2 support to kaffeine, so it can scan and zap.
> However, i have a little problem with DVB-S:
> Before tuning to S2, S channels tune well with QAM_AUTO.
> But after having tuned to S2 channels, i can no more lock on S ones until
> i 
> set modulation to QPSK insteed of QAM_AUTO for these S channels.
> Is this known?
> 
> -- 
> Christophe Thommeret

Hi Christophe,
do you mean FEC_AUTO? There is a note in the comments in cx24116.c about
FEC_AUTO working for QPSK but not for S2 (8PSK or NBC-QPSK). 
Look for "Especially, no auto detect when in S2 mode."

Hope I'm not misunderstanding your question.

I'd be very happy to try out your patch for Kaffeine and give feedback if you are
ready to share it.

Regards,
Hans

-- 
Release early, release often.

Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten 
Browser-Versionen downloaden: http://www.gmx.net/de/go/browser

_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-21 17:05 [linux-dvb] hvr4000-s2api + QAM_AUTO Christophe Thommeret
  2008-09-21 23:54 ` Hans Werner
@ 2008-09-22  2:17 ` Steven Toth
  1 sibling, 0 replies; 15+ messages in thread
From: Steven Toth @ 2008-09-22  2:17 UTC (permalink / raw)
  To: Christophe Thommeret; +Cc: linux-dvb

Christophe Thommeret wrote:
> Hi Steve,
> 
> I've managed to add S2 support to kaffeine, so it can scan and zap.
> However, i have a little problem with DVB-S:
> Before tuning to S2, S channels tune well with QAM_AUTO.
> But after having tuned to S2 channels, i can no more lock on S ones until i 
> set modulation to QPSK insteed of QAM_AUTO for these S channels.
> Is this known?
> 

Other users aren't seeing this, so it could be something odd with 
Kaffeine. Please collect dmesg output and email me, it should be obvious 
what's going on with this.

Thanks,

Steve

_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-21 23:54 ` Hans Werner
@ 2008-09-22 10:01   ` Christophe Thommeret
  2008-09-23 16:27     ` Hans Werner
  0 siblings, 1 reply; 15+ messages in thread
From: Christophe Thommeret @ 2008-09-22 10:01 UTC (permalink / raw)
  To: Hans Werner; +Cc: linux-dvb

[-- Attachment #1: Type: text/plain, Size: 1593 bytes --]

Le Monday 22 September 2008 01:54:29 Hans Werner, vous avez écrit :
> -------- Original-Nachricht --------
>
> > Datum: Sun, 21 Sep 2008 19:05:34 +0200
> > Von: Christophe Thommeret <hftom@free.fr>
> > An: Steven Toth <stoth@linuxtv.org>, "linux-dvb" <linux-dvb@linuxtv.org>
> > Betreff: [linux-dvb] hvr4000-s2api + QAM_AUTO
> >
> > Hi Steve,
> >
> > I've managed to add S2 support to kaffeine, so it can scan and zap.
> > However, i have a little problem with DVB-S:
> > Before tuning to S2, S channels tune well with QAM_AUTO.
> > But after having tuned to S2 channels, i can no more lock on S ones until
> > i
> > set modulation to QPSK insteed of QAM_AUTO for these S channels.
> > Is this known?
> >
> > --
> > Christophe Thommeret
>
> Hi Christophe,
> do you mean FEC_AUTO? There is a note in the comments in cx24116.c about
> FEC_AUTO working for QPSK but not for S2 (8PSK or NBC-QPSK).
> Look for "Especially, no auto detect when in S2 mode."

Good to know, but i really mean QAM_AUTO

> I'd be very happy to try out your patch for Kaffeine and give feedback if
> you are ready to share it.

Sure, here it is (patch against current svn 
http://websvn.kde.org/branches/extragear/kde3/multimedia/)

Atm, s2api is only used for S/S2.

P.S.
In order to play H264/HD with kaffeine/xine, you need a fairly recent ffmpeg 
and xine compiled with --with-external-ffmpeg configure option. (and of 
course a quite strong cpu, unlike my old athlon-xp-2600 :)
However, you can still record and/or broadcast without this update.

-- 
Christophe Thommeret

[-- Attachment #2: kaffeine-s2.patch --]
[-- Type: text/x-diff, Size: 27123 bytes --]

Index: src/kaffeine.cpp
===================================================================
--- src/kaffeine.cpp	(révision 863489)
+++ src/kaffeine.cpp	(copie de travail)
@@ -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
Index: src/input/dvb/channeleditorui.ui
===================================================================
--- src/input/dvb/channeleditorui.ui	(révision 863489)
+++ src/input/dvb/channeleditorui.ui	(copie de travail)
@@ -9,7 +9,7 @@
             <x>0</x>
             <y>0</y>
             <width>477</width>
-            <height>533</height>
+            <height>541</height>
         </rect>
     </property>
     <property name="caption">
@@ -19,7 +19,7 @@
         <property name="name">
             <cstring>unnamed</cstring>
         </property>
-        <widget class="Line" row="1" column="0">
+        <widget class="Line" row="0" column="1">
             <property name="name">
                 <cstring>line2</cstring>
             </property>
@@ -35,7 +35,7 @@
         </widget>
         <widget class="QLayoutWidget" row="0" column="0">
             <property name="name">
-                <cstring>layout9</cstring>
+                <cstring>layout7</cstring>
             </property>
             <vbox>
                 <property name="name">
@@ -432,22 +432,6 @@
                                 <cstring>transmissionComb</cstring>
                             </property>
                         </widget>
-                        <widget class="QLabel" row="3" column="0">
-                            <property name="name">
-                                <cstring>textLabel11</cstring>
-                            </property>
-                            <property name="sizePolicy">
-                                <sizepolicy>
-                                    <hsizetype>4</hsizetype>
-                                    <vsizetype>5</vsizetype>
-                                    <horstretch>0</horstretch>
-                                    <verstretch>0</verstretch>
-                                </sizepolicy>
-                            </property>
-                            <property name="text">
-                                <string>Bandwidth:</string>
-                            </property>
-                        </widget>
                         <widget class="QLabel" row="2" column="0">
                             <property name="name">
                                 <cstring>textLabel10</cstring>
@@ -480,11 +464,6 @@
                                 <string>Transmission:</string>
                             </property>
                         </widget>
-                        <widget class="QComboBox" row="3" column="1">
-                            <property name="name">
-                                <cstring>bandwidthComb</cstring>
-                            </property>
-                        </widget>
                         <widget class="QComboBox" row="2" column="1">
                             <property name="name">
                                 <cstring>coderateHComb</cstring>
@@ -511,11 +490,6 @@
                                 <string>FEC low:</string>
                             </property>
                         </widget>
-                        <widget class="QComboBox" row="3" column="3">
-                            <property name="name">
-                                <cstring>guardComb</cstring>
-                            </property>
-                        </widget>
                         <widget class="QLabel" row="3" column="2">
                             <property name="name">
                                 <cstring>textLabel7</cstring>
@@ -595,6 +569,58 @@
                                 <string>Inversion:</string>
                             </property>
                         </widget>
+                        <widget class="QLabel" row="3" column="0">
+                            <property name="name">
+                                <cstring>textLabel11</cstring>
+                            </property>
+                            <property name="sizePolicy">
+                                <sizepolicy>
+                                    <hsizetype>4</hsizetype>
+                                    <vsizetype>5</vsizetype>
+                                    <horstretch>0</horstretch>
+                                    <verstretch>0</verstretch>
+                                </sizepolicy>
+                            </property>
+                            <property name="text">
+                                <string>Bandwidth:</string>
+                            </property>
+                        </widget>
+                        <widget class="QComboBox" row="3" column="1">
+                            <property name="name">
+                                <cstring>bandwidthComb</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QLabel" row="4" column="0">
+                            <property name="name">
+                                <cstring>textLabel1_3</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Type:</string>
+                            </property>
+                        </widget>
+                        <widget class="QComboBox" row="4" column="1">
+                            <property name="name">
+                                <cstring>stypeComb</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QComboBox" row="4" column="3">
+                            <property name="name">
+                                <cstring>rolloffComb</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QLabel" row="4" column="2">
+                            <property name="name">
+                                <cstring>textLabel2_4</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Roll off:</string>
+                            </property>
+                        </widget>
+                        <widget class="QComboBox" row="3" column="3">
+                            <property name="name">
+                                <cstring>guardComb</cstring>
+                            </property>
+                        </widget>
                     </grid>
                 </widget>
                 <spacer>
@@ -610,7 +636,7 @@
                     <property name="sizeHint">
                         <size>
                             <width>20</width>
-                            <height>98</height>
+                            <height>166</height>
                         </size>
                     </property>
                 </spacer>
Index: src/input/dvb/channeldesc.h
===================================================================
--- src/input/dvb/channeldesc.h	(révision 863489)
+++ src/input/dvb/channeldesc.h	(copie de travail)
@@ -101,6 +101,8 @@
 	fe_code_rate_t coderateH;
 	fe_bandwidth_t bandwidth;
 	int snr;
+	fe_rolloff_t rolloff;
+	char S2;
 };
 
 class ChannelDesc
Index: src/input/dvb/dvbsi.h
===================================================================
--- src/input/dvb/dvbsi.h	(révision 863489)
+++ src/input/dvb/dvbsi.h	(copie de travail)
@@ -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 );
Index: src/input/dvb/channeleditor.cpp
===================================================================
--- src/input/dvb/channeleditor.cpp	(révision 863489)
+++ src/input/dvb/channeleditor.cpp	(copie de travail)
@@ -143,6 +143,9 @@
 		else channel->tp.pol = 'h';
 		channel->tp.coderateH = (fe_code_rate_t)(FEC_NONE+coderateHComb->currentItem());
 		channel->tp.inversion = (fe_spectral_inversion_t)(INVERSION_OFF+inversionComb->currentItem());
+		channel->tp.modulation = (fe_modulation_t)(QPSK+modulationComb->currentItem());
+		channel->tp.S2 = stypeComb->currentItem();
+		channel->tp.rolloff = (fe_rolloff_t)(ROLLOFF_20+rolloffComb->currentItem() );
 	}
 	else if ( channel->tp.type==FE_QAM ) {
 		channel->tp.freq = freqSpin->value();
@@ -165,13 +168,7 @@
 	else {
 		channel->tp.freq = freqSpin->value();
 		channel->tp.inversion = (fe_spectral_inversion_t)(INVERSION_OFF+inversionComb->currentItem());
-		switch (modulationComb->currentItem()) {
-		case 0: channel->tp.modulation = QAM_64; break;
-		case 1: channel->tp.modulation = QAM_256; break;
-		case 2: channel->tp.modulation = VSB_8; break;
-		case 3: channel->tp.modulation = VSB_16; break;
-		default: channel->tp.modulation = QAM_AUTO; break;
-		}
+		channel->tp.modulation = (fe_modulation_t)(QPSK+modulationComb->currentItem());
 	}
 
 	done( Accepted );
@@ -187,10 +184,15 @@
 	inversionComb->setCurrentItem( INVERSION_OFF+channel->tp.inversion );
 	coderateHComb->insertStringList( coderateList() );
 	coderateHComb->setCurrentItem( FEC_NONE+channel->tp.coderateH );
+	modulationComb->insertStringList( modulationList() );
+	modulationComb->setCurrentItem( QPSK+channel->tp.modulation );
+	stypeComb->insertStringList( stypeList() );
+	stypeComb->setCurrentItem( channel->tp.S2 );
+	rolloffComb->insertStringList( rolloffList() );
+	rolloffComb->setCurrentItem( ROLLOFF_20+channel->tp.rolloff );
 	transmissionComb->setEnabled( false );
 	coderateLComb->setEnabled( false );
 	bandwidthComb->setEnabled( false );
-	modulationComb->setEnabled( false );
 	hierarchyComb->setEnabled( false );
 	guardComb->setEnabled( false );
 }
@@ -211,6 +213,8 @@
 	bandwidthComb->setEnabled( false );
 	hierarchyComb->setEnabled( false );
 	guardComb->setEnabled( false );
+	stypeComb->setEnabled( false );
+	rolloffComb->setEnabled( false );
 }
 
 void ChannelEditor::initT()
@@ -234,6 +238,8 @@
 	guardComb->setCurrentItem( GUARD_INTERVAL_1_32+channel->tp.guard );
 	srSpin->setEnabled( false );
 	polGroup->setEnabled( false );
+	stypeComb->setEnabled( false );
+	rolloffComb->setEnabled( false );
 }
 
 void ChannelEditor::initA()
@@ -241,14 +247,8 @@
 	freqSpin->setValue( channel->tp.freq );
 	inversionComb->insertStringList( inversionList() );
 	inversionComb->setCurrentItem( INVERSION_OFF+channel->tp.inversion );
-	modulationComb->insertStringList( modulationListAtsc() );
-	switch (channel->tp.modulation) {
-	case QAM_64: modulationComb->setCurrentItem(0); break;
-	case QAM_256: modulationComb->setCurrentItem(1); break;
-	case VSB_8: modulationComb->setCurrentItem(2); break;
-	case VSB_16: modulationComb->setCurrentItem(3); break;
-	default: modulationComb->setCurrentItem(4); break;
-	}
+	modulationComb->insertStringList( modulationList() );
+	modulationComb->setCurrentItem( QPSK+channel->tp.modulation );
 	srSpin->setEnabled( false );
 	polGroup->setEnabled( false );
 	transmissionComb->setEnabled( false );
@@ -257,6 +257,8 @@
 	bandwidthComb->setEnabled( false );
 	hierarchyComb->setEnabled( false );
 	guardComb->setEnabled( false );
+	stypeComb->setEnabled( false );
+	rolloffComb->setEnabled( false );
 }
 
 QStringList ChannelEditor::inversionList()
@@ -271,7 +273,7 @@
 {
 	QStringList list;
 
-	list<<"NONE"<<"1/2"<<"2/3"<<"3/4"<<"4/5"<<"5/6"<<"6/7"<<"7/8"<<"8/9"<<"AUTO";
+	list<<"NONE"<<"1/2"<<"2/3"<<"3/4"<<"4/5"<<"5/6"<<"6/7"<<"7/8"<<"8/9"<<"AUTO"<<"3/5"<<"9/10";
 	return list;
 }
 
@@ -279,18 +281,10 @@
 {
 	QStringList list;
 
-	list<<"QPSK"<<"QAM 16"<<"QAM 32"<<"QAM 64"<<"QAM 128"<<"QAM 256"<<"AUTO";
+	list<<"QPSK"<<"QAM 16"<<"QAM 32"<<"QAM 64"<<"QAM 128"<<"QAM 256"<<"AUTO"<<"VSB-8"<<"VSB-16"<<"8PSK"<<"16APSK"<<"NBC-QPSK"<<"DQPSK";
 	return list;
 }
 
-QStringList ChannelEditor::modulationListAtsc()
-{
-	QStringList list;
-
-	list<<"QAM 64"<<"QAM 256"<<"VSB 8"<<"VSB 16"<<"AUTO";
-	return list;
-}
-
 QStringList ChannelEditor::transmissionList()
 {
 	QStringList list;
@@ -323,6 +317,22 @@
 	return list;
 }
 
+QStringList ChannelEditor::stypeList()
+{
+	QStringList list;
+
+	list<<"DVB-S"<<"DVB-S2";
+	return list;
+}
+
+QStringList ChannelEditor::rolloffList()
+{
+	QStringList list;
+
+	list<<"20"<<"25"<<"35"<<"AUTO";
+	return list;
+}
+
 ChannelEditor::~ChannelEditor()
 {
 }
Index: src/input/dvb/plugins/epg/kaffeinedvbsection.cpp
===================================================================
--- src/input/dvb/plugins/epg/kaffeinedvbsection.cpp	(révision 863489)
+++ src/input/dvb/plugins/epg/kaffeinedvbsection.cpp	(copie de travail)
@@ -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;
Index: src/input/dvb/dvbsi.cpp
===================================================================
--- src/input/dvb/dvbsi.cpp	(révision 863489)
+++ src/input/dvb/dvbsi.cpp	(copie de travail)
@@ -173,6 +173,9 @@
 					fprintf(stderr,"     Found frequency list.\n");
 					freqListDesc( buf, trans );
 					break;
+				case 0x79 :
+					S2satelliteDesc( buf, trans );
+					break;
 				default :
 					break;
 			}
@@ -226,22 +229,61 @@
 		trans->pol = 'v';
 	else
 		trans->pol = 'h';
+	switch ( getBits(buf,70,2) ) {
+		case 0 : trans->modulation = QAM_AUTO; break;
+		case 1 : trans->modulation = QPSK; break;
+		case 2 : trans->modulation = _8PSK; break;
+		case 3 : trans->modulation = QAM_16; break;
+	}
 	s = t.setNum( getBits(buf,72,28), 16 );
 	trans->sr = s.toInt();
 	trans->sr /=10;
 	switch ( getBits(buf,100,4) ) {
+		case 0 : trans->coderateH = FEC_AUTO; break;
 		case 1 : trans->coderateH = FEC_1_2; break;
 		case 2 : trans->coderateH = FEC_2_3; break;
 		case 3 : trans->coderateH = FEC_3_4; break;
 		case 4 : trans->coderateH = FEC_5_6; break;
 		case 5 : trans->coderateH = FEC_7_8; break;
 		case 6 : trans->coderateH = FEC_8_9; break;
-		case 7 : trans->coderateH = FEC_NONE; break;
+		case 7 : trans->coderateH = FEC_3_5; break;
+		case 8 : trans->coderateH = FEC_4_5; break;
+		case 9 : trans->coderateH = FEC_9_10; break;
+		case 15 : trans->coderateH = FEC_NONE; break;
 	}
+	if ( getBits(buf,69,1) ) {
+		fprintf(stderr,"\n\n!!!!!!!!!!!!!!!!!! Found S2 MODULATION SYSTEM !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n");
+		trans->S2 = 1;
+		if ( trans->modulation==QPSK )
+			trans->modulation = NBC_QPSK; //until we find a S2 descriptor, assume NBC.
+		switch ( getBits(buf,67,2) ) {
+			case 0 : trans->rolloff = ROLLOFF_35; break;
+			case 1 : trans->rolloff = ROLLOFF_25; break;
+			case 2 : trans->rolloff = ROLLOFF_20; break;
+		}
+	}
 }
 
 
 
+void NitSection::S2satelliteDesc( unsigned char* buf, Transponder *trans )
+{
+	fprintf(stderr,"\n\n!!!!!!!!!!!!!!!!!! Found S2 DESCRIPTOR !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n");
+	int scrambling_sequence_selector = getBits(buf,16,1);
+	int multiple_input_stream_flag = getBits(buf,17,1);
+	int backwards_compatibility_indicator = getBits(buf,18,1);
+	if ( backwards_compatibility_indicator && trans->modulation==NBC_QPSK ) /*FIXME*/ // not sure of this
+		trans->modulation = QPSK;
+	int scrambling_sequence_index = 0;
+	if ( scrambling_sequence_selector )
+		scrambling_sequence_index = getBits(buf,30,18);
+	int input_stream_identifier = 0;
+	if ( multiple_input_stream_flag )
+		input_stream_identifier = getBits(buf,48,8);
+}
+
+
+
 void NitSection::cableDesc( unsigned char* buf, Transponder *trans )
 {
 	QString s, t;
@@ -261,13 +303,17 @@
 	trans->sr = s.toInt();
 	trans->sr /=10;
 	switch ( getBits(buf,100,4) ) {
+		case 0 : trans->coderateH = FEC_AUTO; break;
 		case 1 : trans->coderateH = FEC_1_2; break;
 		case 2 : trans->coderateH = FEC_2_3; break;
 		case 3 : trans->coderateH = FEC_3_4; break;
 		case 4 : trans->coderateH = FEC_5_6; break;
 		case 5 : trans->coderateH = FEC_7_8; break;
 		case 6 : trans->coderateH = FEC_8_9; break;
-		case 7 : trans->coderateH = FEC_NONE; break;
+		case 7 : trans->coderateH = FEC_3_5; break;
+		case 8 : trans->coderateH = FEC_4_5; break;
+		case 9 : trans->coderateH = FEC_9_10; break;
+		case 15 : trans->coderateH = FEC_NONE; break;
 	}
 }
 
Index: src/input/dvb/channeldesc.cpp
===================================================================
--- src/input/dvb/channeldesc.cpp	(révision 863489)
+++ src/input/dvb/channeldesc.cpp	(copie de travail)
@@ -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 )
Index: src/input/dvb/channeleditor.h
===================================================================
--- src/input/dvb/channeleditor.h	(révision 863489)
+++ src/input/dvb/channeleditor.h	(copie de travail)
@@ -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;
Index: src/input/dvb/dvbstream.cpp
===================================================================
--- src/input/dvb/dvbstream.cpp	(révision 863489)
+++ src/input/dvb/dvbstream.cpp	(copie de travail)
@@ -185,7 +185,7 @@
 		fprintf(stderr,"openFe: fdFrontend != 0\n");
 		return false;
 	}
-	fdFrontend = open( frontendName.ascii(), O_RDWR );
+	fdFrontend = open( frontendName.ascii(), O_RDWR | O_NONBLOCK );
 	if ( fdFrontend<0 ) {
 		perror("openFe:");
 		fdFrontend = 0;
@@ -328,6 +328,9 @@
 	int rotorMove = 0;
 	int loop=0, i;
 
+	struct dtv_property cmdargs[20];
+	struct dtv_properties cmdseq;
+
 	closeFe();
 	if ( !openFe() )
 		return false;
@@ -344,6 +347,9 @@
 	freq*=1000;
 	srate*=1000;
 
+	QTime t1 = QTime::currentTime();
+	QTime t2;
+
 	switch( fe_info.type ) {
 		case FE_OFDM : {
 			if (freq < 1000000)
@@ -404,11 +410,38 @@
 
 			feparams.u.qpsk.symbol_rate=srate;
 			feparams.u.qpsk.fec_inner=chan->tp.coderateH;
-			fprintf(stderr,"inv:%d fecH:%d\n", chan->tp.inversion, chan->tp.coderateH );
+			fprintf(stderr,"inv:%d fecH:%d mod:%d\n", chan->tp.inversion, chan->tp.coderateH, chan->tp.modulation );
 			if ( setDiseqc( lnbPos, chan, hiband, rotorMove, dvr )!=0 ) {
 				closeFe();
 				return false;
 			}
+			if ( chan->tp.S2 ) {
+				fprintf(stderr,"\nTHIS IS DVB-S2 >>>>>>>>>>>>>>>>>>>\n");
+				cmdargs[0].cmd = DTV_DELIVERY_SYSTEM; cmdargs[0].u.data = SYS_DVBS2;
+				cmdargs[1].cmd = DTV_FREQUENCY; cmdargs[1].u.data = feparams.frequency;
+				cmdargs[2].cmd = DTV_MODULATION; cmdargs[2].u.data = chan->tp.modulation;
+				cmdargs[3].cmd = DTV_SYMBOL_RATE; cmdargs[3].u.data = srate;
+				cmdargs[4].cmd = DTV_INNER_FEC; cmdargs[4].u.data = chan->tp.coderateH;
+				cmdargs[5].cmd = DTV_PILOT; cmdargs[5].u.data = PILOT_AUTO;
+				cmdargs[6].cmd = DTV_ROLLOFF; cmdargs[6].u.data = chan->tp.rolloff;
+				cmdargs[7].cmd = DTV_INVERSION; cmdargs[7].u.data = INVERSION_AUTO;
+				cmdargs[8].cmd = DTV_TUNE;
+				cmdseq.num = 9;
+				cmdseq.props = cmdargs;
+			}
+			else {
+				cmdargs[0].cmd = DTV_DELIVERY_SYSTEM; cmdargs[0].u.data = SYS_DVBS;
+				cmdargs[1].cmd = DTV_FREQUENCY; cmdargs[1].u.data = feparams.frequency;
+				cmdargs[2].cmd = DTV_MODULATION; cmdargs[2].u.data = chan->tp.modulation;
+				//if ( chan->tp.modulation==QAM_AUTO )
+				//	cmdargs[2].u.data = QPSK;
+				cmdargs[3].cmd = DTV_SYMBOL_RATE; cmdargs[3].u.data = srate;
+				cmdargs[4].cmd = DTV_INNER_FEC; cmdargs[4].u.data = chan->tp.coderateH;
+				cmdargs[5].cmd = DTV_INVERSION; cmdargs[5].u.data = INVERSION_AUTO;
+				cmdargs[6].cmd = DTV_TUNE;
+				cmdseq.num = 7;
+				cmdseq.props = cmdargs;
+			}
 			break;
 		}
 		case FE_ATSC : {
@@ -433,9 +466,20 @@
 	if ( rotorMove )
 		loop = 2;
 
+	t2 = QTime::currentTime();
+	fprintf( stderr, "Diseqc settings time = %d ms\n", t1.msecsTo( t2 ) );
+	t1 = t2;
+
 	while ( loop>-1 ) {
-		if (ioctl(fdFrontend,FE_SET_FRONTEND,&feparams) < 0) {
-			perror("ERROR tuning \n");
+		if ( /*chan->tp.S2*/ fe_info.type==FE_QPSK ) {
+			if ( ioctl( fdFrontend, FE_SET_PROPERTY, &cmdseq )<0 ) {
+				perror("ERROR tuning\n");
+				closeFe();
+				return false;
+			}
+		}
+		else if (ioctl(fdFrontend,FE_SET_FRONTEND,&feparams) < 0) {
+			perror("ERROR tuning\n");
 			closeFe();
 			return false;
 		}
@@ -462,6 +506,10 @@
 		return false;
 	}
 
+	t2 = QTime::currentTime();
+	fprintf( stderr, "Tuning time = %d ms\n", t1.msecsTo( t2 ) );
+	t1 = t2;
+
 	if ( rotorMove )
 		dvbDevice->lnb[lnbPos].currentSource = chan->tp.source;
 
@@ -482,7 +530,7 @@
 }
 
 
-
+#define DISEQC_X 2
 int DvbStream::setDiseqc( int switchPos, ChannelDesc *chan, int hiband, int &rotor, bool dvr )
 {
 	struct dvb_diseqc_master_cmd switchCmd[] = {
@@ -519,7 +567,7 @@
 		perror("FE_SET_VOLTAGE failed");
 
 	fprintf( stderr, "DiSEqC: %02x %02x %02x %02x %02x %02x\n", switchCmd[ci].msg[0], switchCmd[ci].msg[1], switchCmd[ci].msg[2], switchCmd[ci].msg[3], switchCmd[ci].msg[4], switchCmd[ci].msg[5] );
-	for ( i=0; i<2; ++i ) {
+	for ( i=0; i<DISEQC_X; ++i ) {
 		usleep(15*1000);
 		if ( ioctl(fdFrontend, FE_DISEQC_SEND_MASTER_CMD, &switchCmd[ci]) )
 			perror("FE_DISEQC_SEND_MASTER_CMD failed");
@@ -586,15 +634,17 @@
 		}
 	}
 
-	for ( i=0; i<2; ++i ) {
+	for ( i=0; i<DISEQC_X; ++i ) {
 		usleep(15*1000);
 		if ( ioctl(fdFrontend, FE_DISEQC_SEND_BURST, (ci/4)%2 ? SEC_MINI_B : SEC_MINI_A) )
 			perror("FE_DISEQC_SEND_BURST failed");
 	}
 
-	usleep(15*1000);
-	if ( ioctl(fdFrontend, FE_SET_TONE, (ci/2)%2 ? SEC_TONE_ON : SEC_TONE_OFF) )
-		perror("FE_SET_TONE failed");
+	if ( (ci/2)%2 ) {
+		usleep(15*1000);
+		if ( ioctl(fdFrontend, FE_SET_TONE, SEC_TONE_ON) )
+			perror("FE_SET_TONE failed");
+	}
 
 	return 0;
 }
@@ -692,7 +742,7 @@
 	};
 
 	int i;
-	for ( i=0; i<2; ++i ) {
+	for ( i=0; i<DISEQC_X; ++i ) {
 		usleep(15*1000);
 		if ( ioctl( fdFrontend, FE_DISEQC_SEND_MASTER_CMD, &cmds[cmd] ) )
 			perror("Rotor : FE_DISEQC_SEND_MASTER_CMD failed");
Index: src/input/dvb/dvbpanel.cpp
===================================================================
--- src/input/dvb/dvbpanel.cpp	(révision 863489)
+++ src/input/dvb/dvbpanel.cpp	(copie de travail)
@@ -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,10 @@
 				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 = _8PSK; break;
+				case 1001 : chan->tp.modulation = _16APSK; break;
+				case 1002 : chan->tp.modulation = NBC_QPSK; break;
+				case 1003 : chan->tp.modulation = DQPSK; break;
 				case -1 : chan->tp.modulation = QAM_AUTO;
 			}
 			s = s.right( s.length()-pos-1 );
@@ -2297,6 +2303,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 +2372,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 +2494,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 +2512,10 @@
 				case QAM_256 : tt<< "256|"; break;
 				case VSB_8 : tt<< "108|"; break;
 				case VSB_16 : tt<< "116|"; break;
+				case _8PSK : tt<< "1000|"; break;
+				case _16APSK : tt<< "1001|"; break;
+				case NBC_QPSK : tt<< "1002|"; break;
+				case DQPSK : tt<< "1003|"; break;
 				case QAM_AUTO : tt<< "-1|";
 			}
 			switch ( chan->tp.coderateL ) {
@@ -2503,6 +2528,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 +2568,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();

[-- Attachment #3: Type: text/plain, Size: 150 bytes --]

_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-22 10:01   ` Christophe Thommeret
@ 2008-09-23 16:27     ` Hans Werner
  2008-09-23 16:39       ` Steven Toth
                         ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Hans Werner @ 2008-09-23 16:27 UTC (permalink / raw)
  To: Christophe Thommeret, linux-dvb; +Cc: linux-dvb

> > >
> > > Hi Steve,
> > >
> > > I've managed to add S2 support to kaffeine, so it can scan and zap.
> > > However, i have a little problem with DVB-S:
> > > Before tuning to S2, S channels tune well with QAM_AUTO.
> > > But after having tuned to S2 channels, i can no more lock on S ones
> until
> > > i
> > > set modulation to QPSK insteed of QAM_AUTO for these S channels.
> > > Is this known?
> > >
> > > --
> > > Christophe Thommeret
> >
> > Hi Christophe,
...
> 
> > I'd be very happy to try out your patch for Kaffeine and give feedback
> if
> > you are ready to share it.
> 
> Sure, here it is (patch against current svn 
> http://websvn.kde.org/branches/extragear/kde3/multimedia/)
> 
> Atm, s2api is only used for S/S2.
> 
> P.S.
> In order to play H264/HD with kaffeine/xine, you need a fairly recent
> ffmpeg 
> and xine compiled with --with-external-ffmpeg configure option. (and of 
> course a quite strong cpu, unlike my old athlon-xp-2600 :)
> However, you can still record and/or broadcast without this update.

Success! Many thanks Christophe.

With the following:
HVR4000 card
S2API + multifrontend patch (hg clone http://linuxtv.org/hg/~stoth/s2-mfe)
ffmpeg from SVN
xine-lib from mercurial (compiled with --with-external-ffmpeg)
Kaffeine from SVN + Christophe's S2API patch

Scanning to find channels and tuning are working in Kaffeine for  DVB-T, DVB-S and DVB-S2.
S/S2 tuning and scanning is with S2API.

My CPU (3ghz core 2 quad) is fast enough to show live HD video so I can watch HD channels
live inside Kaffeine, or record to disk and watch afterwards. ASTRA HD+ and ANIXE HD are
good. ARTE HD throws some errors and stutters a bit. Simul HD can crash Kaffeine.

I enabled the two lines in dvbstream.cpp which set modulation to QPSK instead of
QAM_AUTO for DVB-S.

Settings: number of xine threads >= 4, de-interlacing(CTRL-I) at minimum (is it useful for HD ?
I don't know). The load isn't always distributed well across the 4 cpus -- it can max out one
of them sometimes, with the others almost idle. Perhaps this can be improved.

Regards,
Hans

-- 
Release early, release often.

Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger

_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-23 16:27     ` Hans Werner
@ 2008-09-23 16:39       ` Steven Toth
  2008-09-23 16:59       ` BOUWSMA Barry
  2008-09-24 13:38       ` Christophe Thommeret
  2 siblings, 0 replies; 15+ messages in thread
From: Steven Toth @ 2008-09-23 16:39 UTC (permalink / raw)
  To: Christophe Thommeret; +Cc: Hans Werner, linux-dvb

Hans Werner wrote:
>>>> Hi Steve,
>>>>
>>>> I've managed to add S2 support to kaffeine, so it can scan and zap.
>>>> However, i have a little problem with DVB-S:
>>>> Before tuning to S2, S channels tune well with QAM_AUTO.
>>>> But after having tuned to S2 channels, i can no more lock on S ones
>> until
>>>> i
>>>> set modulation to QPSK insteed of QAM_AUTO for these S channels.
>>>> Is this known?
>>>>
>>>> --
>>>> Christophe Thommeret
>>> Hi Christophe,
> ...
>>> I'd be very happy to try out your patch for Kaffeine and give feedback
>> if
>>> you are ready to share it.
>> Sure, here it is (patch against current svn 
>> http://websvn.kde.org/branches/extragear/kde3/multimedia/)
>>
>> Atm, s2api is only used for S/S2.
>>
>> P.S.
>> In order to play H264/HD with kaffeine/xine, you need a fairly recent
>> ffmpeg 
>> and xine compiled with --with-external-ffmpeg configure option. (and of 
>> course a quite strong cpu, unlike my old athlon-xp-2600 :)
>> However, you can still record and/or broadcast without this update.
> 
> Success! Many thanks Christophe.
> 
> With the following:
> HVR4000 card
> S2API + multifrontend patch (hg clone http://linuxtv.org/hg/~stoth/s2-mfe)
> ffmpeg from SVN
> xine-lib from mercurial (compiled with --with-external-ffmpeg)
> Kaffeine from SVN + Christophe's S2API patch
> 

Excellent news.

Christophe, thanks for helping with Kaffeine :)

Regards,

- Steve

_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-23 16:27     ` Hans Werner
  2008-09-23 16:39       ` Steven Toth
@ 2008-09-23 16:59       ` BOUWSMA Barry
  2008-09-23 17:43         ` Hans Werner
  2008-09-24 13:38       ` Christophe Thommeret
  2 siblings, 1 reply; 15+ messages in thread
From: BOUWSMA Barry @ 2008-09-23 16:59 UTC (permalink / raw)
  To: Hans Werner; +Cc: linux-dvb

On Tue, 23 Sep 2008, Hans Werner wrote:

> My CPU (3ghz core 2 quad) is fast enough to show live HD video
> [...]   ARTE HD throws some errors and stutters a bit. 

A suggestion:  Write your arte-HD streams to disk, instead of
trying to decode them real-time.

If for some reason your CPU isn't quite fast enough, you can
later decode the arte-HD streams and see if the artifacts you
are observing are still present.

If there's some encoder parameter being used by arte-HD that is
not yet properly supported, then later you should be able to
decode that stream flawlessly (this is the case for me with ITV-HD
recorded before mplayer could properly de-interlace it).

Alternatively, I noticed myself that the occasional recordings I
made for the first couple days of the recent IFA EinsFestival 
showcase showed problems in `mplayer', while those recordings
made later were as flawless as those made half a year ago, so I
do not rule out tweaking of the encoders used...


barry bouwsma
(without access to the DVB-S2 arte-HD stream so far)

_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-23 16:59       ` BOUWSMA Barry
@ 2008-09-23 17:43         ` Hans Werner
  2008-09-23 17:49           ` Goga777
  2008-09-25 17:22           ` Goga777
  0 siblings, 2 replies; 15+ messages in thread
From: Hans Werner @ 2008-09-23 17:43 UTC (permalink / raw)
  To: BOUWSMA Barry; +Cc: linux-dvb



> On Tue, 23 Sep 2008, Hans Werner wrote:
> 
> > My CPU (3ghz core 2 quad) is fast enough to show live HD video
> > [...]   ARTE HD throws some errors and stutters a bit. 
> 
> A suggestion:  Write your arte-HD streams to disk, instead of
> trying to decode them real-time.
> 
> If for some reason your CPU isn't quite fast enough, you can
> later decode the arte-HD streams and see if the artifacts you
> are observing are still present.

Hi Barry, thanks for the suggestion. 

I have checked this : Arte HD recordings I have just made with Kaffeine
play perfectly with mplayer (svn yesterday). So there's no basic
problem with my CPU power or with support for the stream by ffmpeg. 
When played back in kaffeine/xinelib the sound is missing or jittery.

Simul HD is a different story -- recordings play ok for a few tens of seconds
in mplayer (with some errors "warning: first frame is no keyframe") until a
hard crash with error "Internal error, picture buffer overflow" from mplayer.
In kaffeine it the recordings play with jittery sound and then crash at exactly the
same points with the same error.

Any ideas anyone?

Regards,
Hans
-- 
Release early, release often.

Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten 
Browser-Versionen downloaden: http://www.gmx.net/de/go/browser

_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-23 17:43         ` Hans Werner
@ 2008-09-23 17:49           ` Goga777
  2008-09-25 17:22           ` Goga777
  1 sibling, 0 replies; 15+ messages in thread
From: Goga777 @ 2008-09-23 17:49 UTC (permalink / raw)
  To: linux-dvb

> > On Tue, 23 Sep 2008, Hans Werner wrote:
> > 
> > > My CPU (3ghz core 2 quad) is fast enough to show live HD video
> > > [...]   ARTE HD throws some errors and stutters a bit. 
> > 
> > A suggestion:  Write your arte-HD streams to disk, instead of
> > trying to decode them real-time.
> > 
> > If for some reason your CPU isn't quite fast enough, you can
> > later decode the arte-HD streams and see if the artifacts you
> > are observing are still present.
> 
> Hi Barry, thanks for the suggestion. 
> 
> I have checked this : Arte HD recordings I have just made with Kaffeine
> play perfectly with mplayer (svn yesterday). So there's no basic
> problem with my CPU power or with support for the stream by ffmpeg. 
> When played back in kaffeine/xinelib the sound is missing or jittery.
> 
> Simul HD is a different story -- recordings play ok for a few tens of seconds
> in mplayer (with some errors "warning: first frame is no keyframe") until a
> hard crash with error "Internal error, picture buffer overflow" from mplayer.
> In kaffeine it the recordings play with jittery sound and then crash at exactly the
> same points with the same error.
> 
> Any ideas anyone?

could you play with ffplay from svn and download somewhere the sample with 10 MB size (I will try to play)

Goga

_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-23 16:27     ` Hans Werner
  2008-09-23 16:39       ` Steven Toth
  2008-09-23 16:59       ` BOUWSMA Barry
@ 2008-09-24 13:38       ` Christophe Thommeret
  2008-09-24 14:08         ` Hans Werner
  2008-09-24 14:31         ` Darron Broad
  2 siblings, 2 replies; 15+ messages in thread
From: Christophe Thommeret @ 2008-09-24 13:38 UTC (permalink / raw)
  To: Hans Werner; +Cc: linux-dvb

Le Tuesday 23 September 2008 18:27:57 Hans Werner, vous avez écrit :

> > Sure, here it is (patch against current svn
> > http://websvn.kde.org/branches/extragear/kde3/multimedia/)
> >
> > Atm, s2api is only used for S/S2.
> >
> > P.S.
> > In order to play H264/HD with kaffeine/xine, you need a fairly recent
> > ffmpeg
> > and xine compiled with --with-external-ffmpeg configure option. (and of
> > course a quite strong cpu, unlike my old athlon-xp-2600 :)
> > However, you can still record and/or broadcast without this update.
>
> Success! Many thanks Christophe.
>
> With the following:
> HVR4000 card
> S2API + multifrontend patch (hg clone http://linuxtv.org/hg/~stoth/s2-mfe)
> ffmpeg from SVN
> xine-lib from mercurial (compiled with --with-external-ffmpeg)
> Kaffeine from SVN + Christophe's S2API patch

Good :)

> Scanning to find channels and tuning are working in Kaffeine for  DVB-T,
> DVB-S and DVB-S2. S/S2 tuning and scanning is with S2API.
>
> My CPU (3ghz core 2 quad) is fast enough to show live HD video so I can
> watch HD channels live inside Kaffeine,

Lucky you :)

> or record to disk and watch 
> afterwards. ASTRA HD+ and ANIXE HD are good. ARTE HD throws some errors and
> stutters a bit. Simul HD can crash Kaffeine.

> I enabled the two lines in dvbstream.cpp which set modulation to QPSK
> instead of QAM_AUTO for DVB-S.

So, you see this also. This was my original report, and why i introduced this 
fix.

> Settings: number of xine threads >= 4, de-interlacing(CTRL-I) at minimum
> (is it useful for HD ?

Yes for 1080i but not for 720p.

> I don't know). The load isn't always distributed 
> well across the 4 cpus -- it can max out one of them sometimes, with the
> others almost idle. Perhaps this can be improved.

Perhaps, but this is ffmpeg stuff.

Btw, while cx24116 single-frontend seems pretty stable, the mfe driver is not 
here. As soon as i switch to dvb-t, the cx24116 firmware crashes (at least 
seems so: ~"Firmware doen't respond .." ) and is reloaded on next S/S2 zap, 
and after a while, the dvb-t signal appears more and more noisy. I have to 
unload/reload the modules to cure this.

-- 
Christophe Thommeret


_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-24 13:38       ` Christophe Thommeret
@ 2008-09-24 14:08         ` Hans Werner
  2008-09-24 14:16           ` Christophe Thommeret
  2008-09-24 14:31         ` Darron Broad
  1 sibling, 1 reply; 15+ messages in thread
From: Hans Werner @ 2008-09-24 14:08 UTC (permalink / raw)
  To: Christophe Thommeret; +Cc: linux-dvb



> Le Tuesday 23 September 2008 18:27:57 Hans Werner, vous avez écrit :
> 
> > > Sure, here it is (patch against current svn
> > > http://websvn.kde.org/branches/extragear/kde3/multimedia/)
> > >
> > > Atm, s2api is only used for S/S2.
> > >
> > > P.S.
> > > In order to play H264/HD with kaffeine/xine, you need a fairly recent
> > > ffmpeg
> > > and xine compiled with --with-external-ffmpeg configure option. (and
> of
> > > course a quite strong cpu, unlike my old athlon-xp-2600 :)
> > > However, you can still record and/or broadcast without this update.
> >
> > Success! Many thanks Christophe.
> >
> > With the following:
> > HVR4000 card
> > S2API + multifrontend patch (hg clone
> http://linuxtv.org/hg/~stoth/s2-mfe)
> > ffmpeg from SVN
> > xine-lib from mercurial (compiled with --with-external-ffmpeg)
> > Kaffeine from SVN + Christophe's S2API patch
> 
> Good :)
> 
> > Scanning to find channels and tuning are working in Kaffeine for  DVB-T,
> > DVB-S and DVB-S2. S/S2 tuning and scanning is with S2API.
> >
> > My CPU (3ghz core 2 quad) is fast enough to show live HD video so I can
> > watch HD channels live inside Kaffeine,
> 
> Lucky you :)
> 
> > or record to disk and watch 
> > afterwards. ASTRA HD+ and ANIXE HD are good. ARTE HD throws some errors
> and
> > stutters a bit. Simul HD can crash Kaffeine.

Does anyone have any info about Arte HD or Simul HD?
 
> > I enabled the two lines in dvbstream.cpp which set modulation to QPSK
> > instead of QAM_AUTO for DVB-S.
> 
> So, you see this also. This was my original report, and why i introduced
> this 
> fix.
> 
> > Settings: number of xine threads >= 4, de-interlacing(CTRL-I) at minimum
> > (is it useful for HD ?
> 
> Yes for 1080i but not for 720p.
> 
> > I don't know). The load isn't always distributed 
> > well across the 4 cpus -- it can max out one of them sometimes, with the
> > others almost idle. Perhaps this can be improved.
> 
> Perhaps, but this is ffmpeg stuff.

Yes. The multithreaded decoding does spread the load well for some HD channels.

> Btw, while cx24116 single-frontend seems pretty stable, the mfe driver is
> not 
> here. As soon as i switch to dvb-t, the cx24116 firmware crashes (at least
> seems so: ~"Firmware doen't respond .." ) and is reloaded on next S/S2
> zap, 
> and after a while, the dvb-t signal appears more and more noisy. I have to
> unload/reload the modules to cure this.

Oh. I haven't seen any problems like that or heard it reported before.
I am using firmware version 1.23.86.1. Which version are you using?

Regards,
Hans

-- 
Release early, release often.

GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen!
Jetzt dabei sein: http://www.shortview.de/wasistshortview.php?mc=sv_ext_mf@gmx

_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-24 14:08         ` Hans Werner
@ 2008-09-24 14:16           ` Christophe Thommeret
  0 siblings, 0 replies; 15+ messages in thread
From: Christophe Thommeret @ 2008-09-24 14:16 UTC (permalink / raw)
  To: Hans Werner; +Cc: linux-dvb

Le Wednesday 24 September 2008 16:08:21 Hans Werner, vous avez écrit :
> > Le Tuesday 23 September 2008 18:27:57 Hans Werner, vous avez écrit :
> > > > Sure, here it is (patch against current svn
> > > > http://websvn.kde.org/branches/extragear/kde3/multimedia/)
> > > >
> > > > Atm, s2api is only used for S/S2.
> > > >
> > > > P.S.
> > > > In order to play H264/HD with kaffeine/xine, you need a fairly recent
> > > > ffmpeg
> > > > and xine compiled with --with-external-ffmpeg configure option. (and
> >
> > of
> >
> > > > course a quite strong cpu, unlike my old athlon-xp-2600 :)
> > > > However, you can still record and/or broadcast without this update.
> > >
> > > Success! Many thanks Christophe.
> > >
> > > With the following:
> > > HVR4000 card
> > > S2API + multifrontend patch (hg clone
> >
> > http://linuxtv.org/hg/~stoth/s2-mfe)
> >
> > > ffmpeg from SVN
> > > xine-lib from mercurial (compiled with --with-external-ffmpeg)
> > > Kaffeine from SVN + Christophe's S2API patch
> >
> > Good :)
> >
> > > Scanning to find channels and tuning are working in Kaffeine for 
> > > DVB-T, DVB-S and DVB-S2. S/S2 tuning and scanning is with S2API.
> > >
> > > My CPU (3ghz core 2 quad) is fast enough to show live HD video so I can
> > > watch HD channels live inside Kaffeine,
> >
> > Lucky you :)
> >
> > > or record to disk and watch
> > > afterwards. ASTRA HD+ and ANIXE HD are good. ARTE HD throws some errors
> >
> > and
> >
> > > stutters a bit. Simul HD can crash Kaffeine.
>
> Does anyone have any info about Arte HD or Simul HD?
>
> > > I enabled the two lines in dvbstream.cpp which set modulation to QPSK
> > > instead of QAM_AUTO for DVB-S.
> >
> > So, you see this also. This was my original report, and why i introduced
> > this
> > fix.
> >
> > > Settings: number of xine threads >= 4, de-interlacing(CTRL-I) at
> > > minimum (is it useful for HD ?
> >
> > Yes for 1080i but not for 720p.
> >
> > > I don't know). The load isn't always distributed
> > > well across the 4 cpus -- it can max out one of them sometimes, with
> > > the others almost idle. Perhaps this can be improved.
> >
> > Perhaps, but this is ffmpeg stuff.
>
> Yes. The multithreaded decoding does spread the load well for some HD
> channels.
>
> > Btw, while cx24116 single-frontend seems pretty stable, the mfe driver is
> > not
> > here. As soon as i switch to dvb-t, the cx24116 firmware crashes (at
> > least seems so: ~"Firmware doen't respond .." ) and is reloaded on next
> > S/S2 zap,
> > and after a while, the dvb-t signal appears more and more noisy. I have
> > to unload/reload the modules to cure this.
>
> Oh. I haven't seen any problems like that or heard it reported before.
> I am using firmware version 1.23.86.1. Which version are you using?

1.20.79.0


-- 
Christophe Thommeret


_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-24 13:38       ` Christophe Thommeret
  2008-09-24 14:08         ` Hans Werner
@ 2008-09-24 14:31         ` Darron Broad
  2008-09-24 15:44           ` Christophe Thommeret
  1 sibling, 1 reply; 15+ messages in thread
From: Darron Broad @ 2008-09-24 14:31 UTC (permalink / raw)
  To: Christophe Thommeret; +Cc: Hans Werner, linux-dvb

In message <200809241538.51217.hftom@free.fr>, Christophe Thommeret wrote:

hi.

<snip>

>Btw, while cx24116 single-frontend seems pretty stable, the mfe driver is n=
>ot =
>here. As soon as i switch to dvb-t, the cx24116 firmware crashes (at least =
>seems so: ~"Firmware doen't respond .." ) and is reloaded on next S/S2 zap, =
>and after a while, the dvb-t signal appears more and more noisy. I have to =
>unload/reload the modules to cure this.

Can you load dvb_core like this:

	dvb_core dvb_powerdown_on_sleep=0

This will stop access to the cx24116 when the bus is in use by the cx22702.

This is a workaround until a better fix is found. Tell me if it solves it
for you, Thanks.


--

 // /
{:)==={ Darron Broad <darron@kewl.org>
 \\ \ 


_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-24 14:31         ` Darron Broad
@ 2008-09-24 15:44           ` Christophe Thommeret
  0 siblings, 0 replies; 15+ messages in thread
From: Christophe Thommeret @ 2008-09-24 15:44 UTC (permalink / raw)
  To: Darron Broad; +Cc: Hans Werner, linux-dvb

Le Wednesday 24 September 2008 16:31:02 Darron Broad, vous avez écrit :
> In message <200809241538.51217.hftom@free.fr>, Christophe Thommeret wrote:
>
> hi.
>
> <snip>
>
> >Btw, while cx24116 single-frontend seems pretty stable, the mfe driver is
> > n= ot =
> >here. As soon as i switch to dvb-t, the cx24116 firmware crashes (at least
> > = seems so: ~"Firmware doen't respond .." ) and is reloaded on next S/S2
> > zap, = and after a while, the dvb-t signal appears more and more noisy. I
> > have to = unload/reload the modules to cure this.
>
> Can you load dvb_core like this:
>
> 	dvb_core dvb_powerdown_on_sleep=0
>
> This will stop access to the cx24116 when the bus is in use by the cx22702.
>
> This is a workaround until a better fix is found. Tell me if it solves it
> for you, Thanks.

Unfortunately, no.
I will try with newer firmware, as soon as i find it.


Btw:
Darron, all these Eutelsat spec compliant msleep are already implemented by 
applications, so adding it in driver just increases diseqc delay :)
I've removed all these in driver and diseqc works fine.


-- 
Christophe Thommeret


_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [linux-dvb] hvr4000-s2api + QAM_AUTO
  2008-09-23 17:43         ` Hans Werner
  2008-09-23 17:49           ` Goga777
@ 2008-09-25 17:22           ` Goga777
  1 sibling, 0 replies; 15+ messages in thread
From: Goga777 @ 2008-09-25 17:22 UTC (permalink / raw)
  To: Hans Werner; +Cc: linux-dvb


> > > My CPU (3ghz core 2 quad) is fast enough to show live HD video
> > > [...]   ARTE HD throws some errors and stutters a bit. 
> > 
> > A suggestion:  Write your arte-HD streams to disk, instead of
> > trying to decode them real-time.
> > 
> > If for some reason your CPU isn't quite fast enough, you can
> > later decode the arte-HD streams and see if the artifacts you
> > are observing are still present.
> 
> Hi Barry, thanks for the suggestion. 
> 
> I have checked this : Arte HD recordings I have just made with Kaffeine
> play perfectly with mplayer (svn yesterday). So there's no basic
> problem with my CPU power or with support for the stream by ffmpeg. 
> When played back in kaffeine/xinelib the sound is missing or jittery.
> 
> Simul HD is a different story -- recordings play ok for a few tens of seconds
> in mplayer (with some errors "warning: first frame is no keyframe") until a
> hard crash with error "Internal error, picture buffer overflow" from mplayer.
> In kaffeine it the recordings play with jittery sound and then crash at exactly the
> same points with the same error.
> 
> Any ideas anyone?


after my bug report and sample from SimulHD Michael Niedermayer from ffmpeg-team has fixed this bug in ffh264
in 15413 revision. Could you test please
https://roundup.mplayerhq.hu/roundup/ffmpeg/issue652

Goga


_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2008-09-25 17:23 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-21 17:05 [linux-dvb] hvr4000-s2api + QAM_AUTO Christophe Thommeret
2008-09-21 23:54 ` Hans Werner
2008-09-22 10:01   ` Christophe Thommeret
2008-09-23 16:27     ` Hans Werner
2008-09-23 16:39       ` Steven Toth
2008-09-23 16:59       ` BOUWSMA Barry
2008-09-23 17:43         ` Hans Werner
2008-09-23 17:49           ` Goga777
2008-09-25 17:22           ` Goga777
2008-09-24 13:38       ` Christophe Thommeret
2008-09-24 14:08         ` Hans Werner
2008-09-24 14:16           ` Christophe Thommeret
2008-09-24 14:31         ` Darron Broad
2008-09-24 15:44           ` Christophe Thommeret
2008-09-22  2:17 ` Steven Toth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox