Heho i just did some test, windows media center forgets to many recordings
Ok so i installed the latest svn version of mediaportal. You can use the ms codecs everywhere ecxept for H264 TV otherwise MediaPortal will hang if you start tv, even if its a sd channel
So i have problems with recording and watching the same channel. That problem is known for some time. But i downloaded the sources and compiled them. Now i get some usefull informations.
Ok here is what i did. I started myTV, selected a channel to watch and said record now. The record won´t start while the timeshifting is active.
That is what i found in the error log:
2009-03-25 20:33:16.949218 [4]: Exception :TvLibrary.TvException: Unable to tune to channel
at TvLibrary.Implementations.DVB.TvCardDvbBase.SubmitTuneRequest(Int32 subChannelId, IChannel channel, ITuneRequest tuneRequest) in e:\Downloads\TvEngine3\TVLibrary\TVLibrary\Implementations\DVB\Graphs\TvCardDvbBase.cs:line 331
at TvLibrary.Implementations.DVB.TvCardDVBT.Tune(Int32 subChannelId, IChannel channel) in e:\Downloads\TvEngine3\TVLibrary\TVLibrary\Implementations\DVB\Graphs\DVBT\TvCardDVBT.cs:line 246
at TvService.CardTuner.Tune(User& user, IChannel channel, Int32 idChannel) in e:\Downloads\TvEngine3\TVLibrary\TvService\CardManagement\CardHandler\CardTuner.cs:line 134
In the TvCardDvbBase.cs at line 331 i found the following command: throw;
Ok that means the failed subchannel should be dropped, ok that fails because there wasn´t created one.
In the TvCardDVBT.cs at line 246 i found the following command: throw;
Ok think its the same problem as above
In the CardTuner.cs at line 134 i found: result = _cardHandler.Card.Tune(user.SubChannel, channel);
That´s the code before:
//check if transponder differs
TvCardContext context = (TvCardContext)_cardHandler.Card.Context;
if (_cardHandler.Card.SubChannels.Length > 0)
{
if (IsTunedToTransponder(channel) == false)
{
if (context.IsOwner(user) || user.IsAdmin)
{
Log.Debug("card: to different transponder");
//remove all subchannels, except for this user...
User[] users = context.Users;
for (int i = 0; i < users.Length; ++i)
{
if (users.Name != user.Name)
{
Log.Debug(" stop subchannel: {0} user: {1}", i, users.Name);
//fix for b2b mantis; 0001112: conflict recordings are locking the TV-Cards - MediaPortal Bugtracker
if (users.IsAdmin) // if we are stopping an on-going recording/schedule (=admin), we have to make sure that we remove the schedule also.
{
Log.Debug("user is scheduler: {0}", users.Name);
int recScheduleId = RemoteControl.Instance.GetRecordingSchedule(users.CardId, users.IdChannel);
if (recScheduleId > 0)
{
Schedule schedule = Schedule.Retrieve(recScheduleId);
Log.Info("removing schedule with id: {0}", schedule.IdSchedule);
RemoteControl.Instance.StopRecordingSchedule(schedule.IdSchedule);
schedule.Delete();
}
}
else
{
_cardHandler.Card.FreeSubChannel(users.SubChannel);
context.Remove(users);
}
}
}
}
else
{
Log.Debug("card: user: {0} is not the card owner. Cannot switch transponder", user.Name);
return TvResult.NotTheOwner;
}
}
}
And i think that´s the place where the failure is. I found out timeshifting one channel two times is no problem. Its even no problerm to record the same channel to times. Only a mix of record and timeshift will give you that failure but not ever! Sometimes very rare it will be working!
So for me it looks like a user problem not a card handling problem but why only with vista tv pack 2008 and windows 7?
Maybe someone can help
Ok so i installed the latest svn version of mediaportal. You can use the ms codecs everywhere ecxept for H264 TV otherwise MediaPortal will hang if you start tv, even if its a sd channel
So i have problems with recording and watching the same channel. That problem is known for some time. But i downloaded the sources and compiled them. Now i get some usefull informations.
Ok here is what i did. I started myTV, selected a channel to watch and said record now. The record won´t start while the timeshifting is active.
That is what i found in the error log:
2009-03-25 20:33:16.949218 [4]: Exception :TvLibrary.TvException: Unable to tune to channel
at TvLibrary.Implementations.DVB.TvCardDvbBase.SubmitTuneRequest(Int32 subChannelId, IChannel channel, ITuneRequest tuneRequest) in e:\Downloads\TvEngine3\TVLibrary\TVLibrary\Implementations\DVB\Graphs\TvCardDvbBase.cs:line 331
at TvLibrary.Implementations.DVB.TvCardDVBT.Tune(Int32 subChannelId, IChannel channel) in e:\Downloads\TvEngine3\TVLibrary\TVLibrary\Implementations\DVB\Graphs\DVBT\TvCardDVBT.cs:line 246
at TvService.CardTuner.Tune(User& user, IChannel channel, Int32 idChannel) in e:\Downloads\TvEngine3\TVLibrary\TvService\CardManagement\CardHandler\CardTuner.cs:line 134
In the TvCardDvbBase.cs at line 331 i found the following command: throw;
Ok that means the failed subchannel should be dropped, ok that fails because there wasn´t created one.
In the TvCardDVBT.cs at line 246 i found the following command: throw;
Ok think its the same problem as above
In the CardTuner.cs at line 134 i found: result = _cardHandler.Card.Tune(user.SubChannel, channel);
That´s the code before:
//check if transponder differs
TvCardContext context = (TvCardContext)_cardHandler.Card.Context;
if (_cardHandler.Card.SubChannels.Length > 0)
{
if (IsTunedToTransponder(channel) == false)
{
if (context.IsOwner(user) || user.IsAdmin)
{
Log.Debug("card: to different transponder");
//remove all subchannels, except for this user...
User[] users = context.Users;
for (int i = 0; i < users.Length; ++i)
{
if (users.Name != user.Name)
{
Log.Debug(" stop subchannel: {0} user: {1}", i, users.Name);
//fix for b2b mantis; 0001112: conflict recordings are locking the TV-Cards - MediaPortal Bugtracker
if (users.IsAdmin) // if we are stopping an on-going recording/schedule (=admin), we have to make sure that we remove the schedule also.
{
Log.Debug("user is scheduler: {0}", users.Name);
int recScheduleId = RemoteControl.Instance.GetRecordingSchedule(users.CardId, users.IdChannel);
if (recScheduleId > 0)
{
Schedule schedule = Schedule.Retrieve(recScheduleId);
Log.Info("removing schedule with id: {0}", schedule.IdSchedule);
RemoteControl.Instance.StopRecordingSchedule(schedule.IdSchedule);
schedule.Delete();
}
}
else
{
_cardHandler.Card.FreeSubChannel(users.SubChannel);
context.Remove(users);
}
}
}
}
else
{
Log.Debug("card: user: {0} is not the card owner. Cannot switch transponder", user.Name);
return TvResult.NotTheOwner;
}
}
}
And i think that´s the place where the failure is. I found out timeshifting one channel two times is no problem. Its even no problerm to record the same channel to times. Only a mix of record and timeshift will give you that failure but not ever! Sometimes very rare it will be working!
So for me it looks like a user problem not a card handling problem but why only with vista tv pack 2008 and windows 7?
Maybe someone can help