Hi!
The transfer-mode uses always priority -1.
That presents a problem: If I connect to that vdr using streamdev, it
switches the first budget device off from the multiplex transfered to
the FF card, although there is a second identical budget device available.
Also, if I had DVB-S FF and only one DVB-T budget and had a DVB-T
recording with priority 10 and Primary Limit at 20, live DVB-T video
would (wouldn't it?) be severed.
Klaus, shouldn't transfer-mode be also using the Primary …
[View More]Limit value, so
that recordings with priority less than Primary Limit couldn't distract
the output of primary device?
Patch attached.
--
Anssi Hannula
[View Less]
After an upgrade to 1.3.34 all works just fine while viewing Eurosport and
Nickelodeon.
But if I make a recording from Eurosport och Nickelodeon and replay that
recording I get audio channels "1" and "2" instead of the "nor+fin" and
"sve+dan" i get during wathcing live tv.
Is this expected behaviour or have I overlooked somethins else?
Regards,
Anders
> -----Ursprungligt meddelande-----
> Från: anders(a)sandell.net [mailto:anders@sandell.net]
> Skickat: den 7 oktober 2005 21:32
&…
[View More]gt; Till: vdr(a)linuxtv.org
> Ämne: Re: [vdr] Different languaghes on right/left channel
>
>
> Quoting Antti Hartikainen <ami+vdr(a)ah.fi>:
>
> >> To clarify:
> >>
> >> After looking closer at the audio-menu:
> >>
> >> On Eurosport there are two audio PID's "sve" which has
> swedish on the
> >> left channel and danish on the right and "nor" which has
> finnish on
> >> the left channel and norwegian on the right channel. I have chosen
> >> Swedish as my preferred languaghe and VDR correctly select
> the audio
> >> PID labeled as "sve".
> >> That PID has
> >> two langughes, and i have to select right or left channel
> in the VDR
> >> audio menu to avoid audio in swedish AND norwegian at the
> same time.
> >>
> >> My problem is that VDR does not seem to save my choice which means
> >> that i have to go into the audio menu and select left channel
> >> everytime i want to see Eurosport. The same applies to Nickelodeon.
> >
> > Whats your vdr version?
> >
> >> From 1.3.32 changelog:
> >
> > - Changed the audio PID language codes to hold up to two 3 letter
> > codes, separated
> > by '+', to store separate languages broadcast in two
> channel audio mode.
> >
> > Works fine for me at Eurosport from 1W (chooses finnish
> audio as it is
> > preferred).
> >
>
> I am running 1.3.23 here, guess I have to upgrade then ....
>
> I completely missed that changelog, sorry.
>
>
> _______________________________________________
> vdr mailing list
> vdr(a)linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>
>
[View Less]
Hi,
yesterday I've run the LSTR command (VDR v1.3.34).
That's the session:
========== SNIP =============
VDR vdr-1.3.34 # svdrpsend.pl lstt
220 VDR SVDRP VideoDiskRecorder 1.3.34; Tue Oct 4 20:35:09 2005
...
250-5 9:8:-D-----:2115:2235:50:99:Desperate Housewives:
...
250 8 9:4:2005-10-04:2013:2230:50:99:Der Todestunnel - Nur die Wahrheit
zählt:Bei einem Unfall im Seller-Tunnel löst ein völlig übermüdeter
Lkw-Fahrer eine verheerende Brandkatastrophe aus. Staatsanwältin Sabine
Fink soll ihn …
[View More]hinter Gitter bringen, doch sie ist überzeugt, dass der
Fahrer nicht der einzig Schuldige ist. Gegen alle Widerstände rollt sie den
Fall neu auf ...
221 VDR closing connection
VDR vdr-1.3.34 #
========== SNAP =============
I wonder why the two shown timers have flags=9. I think it's OK for timer #8
because it's running. But timer #5 starts at 21:15 and the system time is
20:35. So why is it set to "currently recording"?
Can someone please explain?
Kind regards,
Andreas
[View Less]
Hi Folks! Klaus!
this is probably something easily answered, and I guess
I just missed it somewhere in the docu ... so apologies
in andvance ...
I have the following (unusual?) setup (at one location)
with two dvb-s cards, one FF, one budget, connected to
two different lnbs (i.e. two different sattelites), and
I can watch channels on the FF card, and record channels
on the budget card (no soft device or similar plugin),
but currently the only way to watch channels received on
the budget card …
[View More]is to 'pause the live stream', and then
continue (which basically is recording and playback on
the FF card), I'm pretty sure there must be a better way
to accomplish this ...
TIA,
Herbert
PS: the setup is ore a test than something permanent ...
PPS: thanks for any ideas/suggestions/clues ...
[View Less]
Hi list,
I'll be releasing this and a few other patches for VDR 1.3.33, which have
evolved during the last months while working on XeatreOS (a distribution
based on LinVDR 0.7, which is used for the Xeatre boxes,
http://www.xeatre.tv/). Some of their functionality may already be included
in plugins or other patches. Nevertheless, I'd like to release them now, and
let everybody decide whether they are useful or not.
This one adds a non-selectable item in schedules whenever a date change …
[View More]
occurs.
Greetings,
Sascha
[View Less]
Hi,
I found that each of the following entries occur twice in i18n.c, and as
far as I understood the the code, there is no way that both occurances
will ever get used, only the first one. Most of them are even equally
translated in various languages, some even lack translations, or maybe
they are candidates for different contexts and preceding them with some
string$ (for example "Record" for sure gets drawn on a coloured red
button once and may not fit if too long, but I don't know if there is
…
[View More]another context, haven't lookd at every occurance of tr("Record") in the
source code)?
{ "Summary",
{ "Menu",
{ "Play",
{ "Stop",
{ "Record",
If tey will be (or at least for those of them that will be) reduced to
just one, maybe translators should also tell their opinion on which
translation they prefer (there ara also minor differences with special
characters). I attached a plain text file with them pasted side-by-side,
maybe there will be some feedback for Klaus...
Lucian
Theesa are duplicates:
{ "Summary",
{ "Menu",
{ "Play",
{ "Stop",
{ "Record",
This is how they look like, side-by-side
{ "Summary", { "Summary",
"Inhalt", "Inhalt",
"Vsebina", "Vsebina",
"Sommario", "Sommario",
"Inhoud", "Inhoud",
"Resumo", "Resumo",
"Résumé", "Résumé",
"Sammendrag", "Sammendrag",
"Yhteenveto", "Yhteenveto",
"Zawartosc", "Zawartosc",
"Resúmen", "Resumen",
"Ðåñéå÷üìåíï", "Ðåñéå÷üìåíï",
"Sammanfattning","Sammanfattning",
"Detalii", "Cuprins",
"Tartalom", "Tartalom",
"Sinopsi", "Resum",
"ŸßØáÐÝØÕ", "ŸßØáÐÝØÕ",
"SadrŸaj", "SadrŸaj",
"Kokkuvõte", "Kokkuvõte",
"Omtale", "Omtale",
{ "Menu", { "Menu",
"Menü", "Menü",
"Meni", "Meni",
"Menù", "Menù",
"Menu", "Menu",
"Menu", "Menu",
"Menu", "Menu",
"Meny", "Meny",
"Valikko", "Valikko",
"Menu", "Menu",
"Menú", "Menu",
"Måíïý", "Ìåíïý",
"Meny", "Meny",
"Meniu", "Meniu",
"Menü", "Menü",
"Menú", "Menú",
"ŒÕÝî", "ŒÕÝî",
"Izbor", "Izbor",
"Menüü", "Menüü",
"Menu", "Menu",
{ "Play", { "Play",
"Wiedergabe", "Wiedergabe",
"Predvajaj", "Predvajaj",
"Riproduci", "Riproduci",
"Afspelen", "Weergeven",
"Play", "",// TODO
"Lire", "Lecture",
"Spill av", "",// TODO
"Toista", "Toista",
"Odtwarzac", "Odtworzenie",
"Play", "Reproducir",
"ÁíáìåôÜäïóç", "AíáìåôÜäïóç",
"Spela upp", "Spela upp",
"Redare", "Redare",
"Lejátszani", "Lejátszás",
"Reproduir", "Reproduir",
"²ÞáßàÞØ×ÒÕáâØ","²ÞáßàÞØ×ÒÕÔÕÝØÕ",
"Start", "Start",
"Start", "Start",
"Afspil", "Afspil",
{ "Stop", { "Stop",
"Ende", "Stop",
"Konec", "Ustavi",
"Fine", "Stop",
"Einde", "Stop",
"Fim", "Stop",
"Fin", "Stop",
"Slutt", "",// TODO
"Lopetus", "Lopeta",
"Koniec", "Stop",
"Fin", "Parar",
"ÔÝëïò", "TÝñìá",
"Slutar", "Stoppa",
"Sfârºit", "Stop",
"Vége", "Stop",
"Fi", "Aturar",
"ºÞÝÕæ", "ÁâÞß",
"Kraj", "Stop",
"Stopp", "Stopp",
"Stop", "Stop",
{ "Record", { "Record",
"Aufnehmen", "Aufnehmen",
"Posnemi", "Snemaj",
"Registra", "Registra",
"Opnemen", "Opnemen",
"Gravar", "",// TODO
"Enregistre", "Enregistrement",
"Ta opp", "",// TODO
"Tallenna", "Tallenna",
"Nagrywac", "Nagrywac",
"Grabar", "Grabar",
"ÅããñáöÞ", "EããñáöÞ",
"Inspelning", "Spela in",
"Înregistr.", "Înregistrare",
"Felvenni", "Felvenni",
"Gravar", "Gravar",
"·ÐßØáì", "·ÐßØáì",
"Snimi", "Snimaj",
"Salvesta", "Salvestamine",
"Optag", "Optag",
[View Less]
Hello
I still try to write a Plugin which a background receiving of data.
For example I have 3 devices.
I want the last device to receive data only from "Transponder A" with
"PID X". This should be a very high prio.
The user should tune as he likes.
Now I want to receive "Transponder B" with "PID Y", but with a low Prio.
So the user don't observe it.
The low prio receiver should be detached if a user need the device.
The Problem is that the user action don't detach the receiver.
How can I …
[View More]implement it?
Patrick
So I have written this code:
#define PRIORECEIVER 59
struct sReceiverID{
cDevice *device;
cPTSReceiver *receiver;
int originalNetworkId;
int transportStreamId;
int serviceId;
int vpid;
};
/**
* Start listening for PTS values on the given service.
*
* Step1. create the channel for the values
* Step2. get next free receiver position in array
* Step3. test if allready a receiver is listen to the values, if exist
return
* Step4. test if allready a receiver is listen on same transponder. if
exist create a new receiver and add to same device. return
* Step5. test if static device can receive data. If it could, create a
device and add to static device and return
* Step6. test all other devices and add the first fit device. return
* Step7. return with false. No device can handel a receiver with this
valuse.
*/
bool ctuner::addPTSStream(int originalNetworkId, int transportStreamId,
int serviceId){
//DEBUG
/* for (int b=0;b<MAXRECEIVERS;b++){
if (receiverID[b].originalNetworkId){
dsyslog("receiverID[%d].",b);
dsyslog(" %d) ONID: %d",b,receiverID[b].originalNetworkId);
dsyslog(" %d) TSID: %d",b,receiverID[b].transportStreamId);
dsyslog(" %d) SID: %d \n",b,receiverID[b].serviceId);
dsyslog(" lisen on
device[%d]",receiverID[b].device->DeviceNumber());
}
}; */
//DEBUG END
//create the fitting channel for the originalNetworkId,
transportStreamId and serviceId
cChannel *channel =
GetChannelBy_ONID_TID_SID(originalNetworkId,transportStreamId,serviceId);
if(!channel)return false;//can't read channel from file
else{
// dsyslog("channels with originalNetworkId = %d,
transportStreamId = %d and serviceId = %d was found and has
VPID=%d",originalNetworkId,transportStreamId,serviceId,channel->Vpid());
}
//create a receiver for the VPID
cPTSReceiver *receiver = NULL;
int a;
for (a=0;((receiverID[a].receiver!=NULL) &&
(a<MAXRECEIVERS));a++){};
if (receiverID[a].receiver){
esyslog("MAXRECEIVER reached");
return false;//max receivers was reached
}
//check if already a receiver is set to the originalNetworkId,
transportStreamId and serviceId.
// if a receiver with the same originalNetworkId, transportStreamId
and serviceId were found,
// no new receiver was needed.
for(int i=0;i < MAXRECEIVER;i++){
if ((receiverID[i].originalNetworkId == originalNetworkId) &&
(receiverID[i].transportStreamId == transportStreamId) &&
(receiverID[i].serviceId == serviceId)){
//there is already a receiver set to this IDs
//dsyslog("There is already a receiver listen to the
IDS: %d, %d ,%d",originalNetworkId, transportStreamId, serviceId);
return true;//not need to attach new receiver
}
}//no receiver found for this IDs lets create a new receiver
//dsyslog("VPID from channel is: %d",channel->Vpid()),
receiver = new cPTSReceiver(channel->Vpid());
if(!receiver){
dsyslog("receiver failed");
return false;
}
receiverID[a].receiver = receiver;
receiverID[a].originalNetworkId =0;//will be set later
receiverID[a].transportStreamId =0;//will be set later
receiverID[a].serviceId =serviceId;
receiverID[a].device = NULL;//will be set later if device was known
receiverID[a].vpid = channel->Vpid();
//dsyslog("new PTSReceiver was created for VPID=%d",channel->Vpid());
// If a receiver with the same originalNetworkId and transportStreamId
// were found, the device of this receiver is tuned to the same
originalNetworkId, transportStreamId
// the new receiver need, so I can attach the new receiver to the
same device
for(int i=0;i < MAXRECEIVER;i++){
if ((receiverID[i].originalNetworkId == originalNetworkId) &&
(receiverID[i].transportStreamId == transportStreamId)){
//there is already a receiver on the same transponder
//dsyslog("There is already a receiver on the same
transponder IDS: %d, %d, added ",originalNetworkId, transportStreamId);
if (!receiverID[i].device->AttachReceiver(receiver)){
esyslog("ERROR could not attach receiver to same
transponder. reason unknown");
delete receiver;
receiverID[a].receiver = NULL;
receiverID[a].originalNetworkId = 0;
receiverID[a].transportStreamId = 0;
receiverID[a].serviceId = 0;
receiverID[a].device = NULL;
receiverID[a].vpid = 0;
return false;//could not attach receiver, reason unknown
}
receiverID[a].device = receiverID[i].device;
receiverID[a].originalNetworkId =originalNetworkId;
receiverID[a].transportStreamId =transportStreamId;
dsyslog("added to
device[%d]",receiverID[a].device->DeviceNumber());
return true;//new receiver was added to same device
}
}
//not I need to test all other devices to receive the data
cDevice *device;
//check the last device first, because it is static tuned on a
transponder and will not change
device = cDevice::GetDevice(cDevice::NumDevices()-2);//TODO in case
of xine the last one is the xine device so use -2 else -1
if(device->ProvidesChannel(channel,PRIORECEIVER)){
//dsyslog(" static device can receive PTSStream");
device->SwitchChannel(channel,false);
if (!device->AttachReceiver(receiver)){
esyslog("ERROR could not attach receiver to static
device.");
}else{
receiverID[a].device = device;
receiverID[a].originalNetworkId =originalNetworkId;
receiverID[a].transportStreamId =transportStreamId;
dsyslog("added to
device[%d]",receiverID[a].device->DeviceNumber());
return true;//successful added
}
}
else {
//dsyslog(" static device can't receive PTSStream");
}
//check all other devices if the receiver can be added
for (int i= cDevice::NumDevices()-2; i>=0 ;i--){
device = cDevice::GetDevice(i);
if(device->ProvidesChannel(channel,PRIORECEIVER)){
//dsyslog(" device[%d] can receive PTSStream",i);
device->SwitchChannel(channel,false);
if (!device->AttachReceiver(receiver)){
esyslog("ERROR could not attach receiver to device[%d].",i);
}else{
// dsyslog("successful added receiver to device[%d]",i);
receiverID[a].originalNetworkId =originalNetworkId;
receiverID[a].transportStreamId =transportStreamId;
receiverID[a].device = device;
dsyslog("added to
device[%d]",receiverID[a].device->DeviceNumber());
return true;//successful added
}
}
else{
// dsyslog(" device[%d] can't receive PTSStream",i);
}
}
//no device can handel the originalNetworkId, transportStreamId and
serviceId
// so clean up and exit with false
// dsyslog("no device found for VPID=%d",receiverID[a].vpid);
delete receiver;
receiverID[a].receiver = NULL;
//not needed but make it clean
receiverID[a].originalNetworkId =0;
receiverID[a].transportStreamId =0;
receiverID[a].serviceId =0;
receiverID[a].receiver = NULL;
receiverID[a].vpid = 0;
return false;
}
[View Less]
Hi,
there is a new version of the pvrinput plugin available:
http://home.arcor.de/andreas.regel/files/pvrinput/vdr-pvrinput-0.1.0.tgz
With this version ivtv 0.4.1 should work too, I just had to extend the
probing routine to find the card(s).
Changes since 0.0.9:
- fixed detection of pvr card to work with ivtv version 0.4.1 or later
Andreas
Hi,
attached patch should make the rcu code NPTL compatible. Without the patch
using an RCU will fail (vdr hang during startup) on an NPTL enabled system.
I have only move over L. Nussels lirc NPTL fix to the rcu code.
Greetings
Andreas
--- rcu.c.org 2005-10-21 23:29:58.000000000 +0200
+++ rcu.c 2005-10-21 23:29:36.000000000 +0200
@@ -53,7 +53,11 @@
cRcuRemote::~cRcuRemote()
{
+ int fh = f;
+ f = -1;
Cancel();
+ if (fh >= 0)
+ close(fh);
}
bool cRcuRemote::Ready(void)…
[View More]
@@ -100,7 +104,6 @@
while (Running() && f >= 0) {
- LOCK_THREAD;
if (ReceiveByte(REPEATLIMIT) == 'X') {
for (int i = 0; i < 6; i++) {
@@ -192,7 +195,6 @@
bool cRcuRemote::SendByte(unsigned char c)
{
- LOCK_THREAD;
for (int retry = 5; retry--;) {
if (SendByteHandshake(c))
@@ -225,7 +227,6 @@
bool cRcuRemote::Number(int n, bool Hex)
{
- LOCK_THREAD;
if (!Hex) {
char buf[8];
@@ -248,7 +249,6 @@
bool cRcuRemote::String(char *s)
{
- LOCK_THREAD;
const char *chars = mode == modeH ? "0123456789ABCDEF" : "0123456789-EHLP
";
int n = 0;
[View Less]