2012-10-17, 08:14
(2012-10-16, 18:30)kburkart Wrote: what nightly should I use for the xbmc build?
I assume grabbing cfetzers has most of the latest of what I need
Is there any opportunity to pull the current code upstream?
(2012-10-16, 18:30)kburkart Wrote: what nightly should I use for the xbmc build?
I assume grabbing cfetzers has most of the latest of what I need
(2012-10-17, 06:04)tdavis Wrote: so, what's the chance of getting this commited?
https://github.com/tsp/xbmc/commit/36d9d...34ae7d9702
It makes the EPG startup times much faster.. I've hidden many channels, instead of deleted them..
(2012-10-17, 08:14)dubstar_04 Wrote:(2012-10-16, 18:30)kburkart Wrote: what nightly should I use for the xbmc build?
I assume grabbing cfetzers has most of the latest of what I need
Is there any opportunity to pull the current code upstream?
(2012-10-16, 04:00)Aubrien Wrote: Thanks Janbar,
The 0.26 support is exciting though too!
(2012-10-16, 16:00)Ayla Wrote: janbar:Can you check if you have the file libmysql.16.dylib in /usr/local/lib/ ?
The addon compiles, but when starting XBMC (latest Frodo nightly), the plugin won't load and there's an error regarding mysql in the log:
Code:15:54:36 T:4540108800 ERROR: Unable to load /Users/martin/Library/Application Support/XBMC/addons/pvr.mythtv.cmyth/XBMC_MythTV_cmyth.pvr, reason: dlopen(/Users/martin/Library/Application Support/XBMC/addons/pvr.mythtv.cmyth/XBMC_MythTV_cmyth.pvr, 1): Library not loaded: libmysql.16.dylib
Referenced from: /Users/martin/Library/Application Support/XBMC/addons/pvr.mythtv.cmyth/XBMC_MythTV_cmyth.pvr
Reason: image not found
Any ideas?
I compiled following your new tutorial.
(2012-10-17, 19:45)janbar Wrote:(2012-10-16, 16:00)Ayla Wrote: janbar:Can you check if you have the file libmysql.16.dylib in /usr/local/lib/ ?
The addon compiles, but when starting XBMC (latest Frodo nightly), the plugin won't load and there's an error regarding mysql in the log:
Code:15:54:36 T:4540108800 ERROR: Unable to load /Users/martin/Library/Application Support/XBMC/addons/pvr.mythtv.cmyth/XBMC_MythTV_cmyth.pvr, reason: dlopen(/Users/martin/Library/Application Support/XBMC/addons/pvr.mythtv.cmyth/XBMC_MythTV_cmyth.pvr, 1): Library not loaded: libmysql.16.dylib
Referenced from: /Users/martin/Library/Application Support/XBMC/addons/pvr.mythtv.cmyth/XBMC_MythTV_cmyth.pvr
Reason: image not found
Any ideas?
I compiled following your new tutorial.
(2012-10-17, 08:40)cfetzer Wrote:(2012-10-17, 06:04)tdavis Wrote: so, what's the chance of getting this commited?
https://github.com/tsp/xbmc/commit/36d9d...34ae7d9702
It makes the EPG startup times much faster.. I've hidden many channels, instead of deleted them..
Thanks! We based everything on tsp's master repository. This commit was only present in his Eden-PVR branch.
There are a few more commits that might be interessting. I will have a closer look and let you know when I pushed the change to the repo.
(2012-10-17, 12:01)janbar Wrote:(2012-10-16, 04:00)Aubrien Wrote: Thanks Janbar,
The 0.26 support is exciting though too!
@Aubrien
Log seems good, but there was contention on myth connection due to getting recorded program info.
Have you try a build from the last source of addon ? In the last code we stop traffic during livestream.
(2012-10-08, 13:49)janbar Wrote:(2012-10-08, 09:03)dteirney Wrote:(2012-10-03, 21:11)Aubrien Wrote: OK, I have had live tv playing for hours now without it stopping so I think its time to post the solution. There are two delays needed as well as an object lock. I based this on cfetzer's code not janbar's since that is where we are moving to anyway. The changes are below...
addons/pvr.mythtv.cmyth/src/pvrclient-mythtv.cpp
Add the delay for changing channels.Code:bool PVRClientMythTV::OpenLiveStream(const PVR_CHANNEL &channel)
{
if (g_bExtraDebug)
XBMC->Log(LOG_DEBUG,"%s - chanID: %i, channumber: %i", __FUNCTION__, channel.iUniqueId, channel.iChannelNumber);
SingleLock<PLATFORM::CMutex> lock(&m_lock);
if (m_rec.IsNull())
{
MythChannel chan = m_channels.at(channel.iUniqueId);
for (std::vector<int>::iterator it = m_sources.at(chan.SourceID()).begin(); it != m_sources.at(chan.SourceID()).end(); it++)
{
m_rec = m_con.GetRecorder(*it);
if (!m_rec.IsRecording() && m_rec.IsTunable(chan))
{
if (g_bExtraDebug)
XBMC->Log(LOG_DEBUG,"%s: Opening new recorder %i", __FUNCTION__, m_rec.ID());
if (m_pEventHandler)
m_pEventHandler->SetRecorder(m_rec);
if (m_rec.SpawnLiveTV(chan))
{
usleep(10000000); //Channel change delay of 10s
return true;
}
}
m_rec = MythRecorder();
if (m_pEventHandler)
{
m_pEventHandler->SetRecorder(m_rec); // Redundant
}
}
if (g_bExtraDebug)
XBMC->Log(LOG_DEBUG,"%s - Done", __FUNCTION__);
return false;
}
else
{
if (g_bExtraDebug)
XBMC->Log(LOG_DEBUG,"%s - Done", __FUNCTION__);
return true;
}
}
addons/pvr.mythtv.cmyth/src/cppmyth/MythRecorder.cpp
Uncomment the lock/unlock. Add the delay for between shows.Code:bool MythRecorder::LiveTVChainUpdate(CStdString chainID)
{
char* buffer=strdup(chainID.c_str());
m_recorder_t->Lock();
int retval = 0;
usleep(5000000); // Program switch delay of 5s
CMYTH_REC_CALL( retval, retval < 0, cmyth_livetv_chain_update( *m_recorder_t, buffer, 16*1024 ) );
if(retval != 0)
XBMC->Log(LOG_ERROR,"LiveTVChainUpdate failed on chainID: %s",buffer);
*livechainupdated=1;
m_recorder_t->Unlock();
free(buffer);
return retval==0;
}
addons/pvr.mythtv.cmyth/src/cppmyth/MythRecorder.cpp
Uncomment the lock/unlockCode:int MythRecorder::ReadLiveTV(void* buffer,unsigned long length)
{
m_recorder_t->Lock();
int bytesRead=0;
CMYTH_REC_CALL( bytesRead, bytesRead < 0, cmyth_livetv_read( *m_recorder_t, static_cast<char*>( buffer ), length ) );
m_recorder_t->Unlock();
return bytesRead;
}
The end result of this makes the channels change properly either from nothing being played or from already watching tv. The delay is especially useful for those of us with IR blasters and analog tuners. Additionally, when the chain is updated (program transition) it locks the recorder for 5s. During this time read operations delay and the user is prevented from underrunning the buffer on the backend. Both the channel change delay and the program switch delay should be made into addon settings to be user configured. Mine works with the static values I inserted for developing the fix. Between program transitions you will see a "Buffering %" dialog for a second or so. This buffering is essential as each program transition causes no data for a small period and eventually the buffer is depleted and this makes it refill.
Rather than a hard-coded 5 second delay could you look at doing something more like was done in one of my branches. Unfortunately still not cleaned up and ready for PR to upstream libcmyth. https://github.com/dteirney/xbmc/commit/...96ecac88b2
That commit also has the fix for the LiveTV locking problem as well.
@dteirney: I read your commit. It is a way. But i think we must to find a solution without use backend's database at least for liveTV. Would not be better to use only Mythtv protocol ?
(2012-10-18, 17:42)NewJerseyNinja Wrote: Maybe I'm too lazy or incompetent, but does anyone have a page hosting precompiled binaries with TSP's addons? I have a mythbuntu mythtv backend upgraded to 0.26. I have a windows machine running xbmc and I'd love to test this.
(2012-10-18, 15:06)pyrodex Wrote: Does this addon take advantage of comm skipping by chance?
(2012-10-18, 15:40)pyrodex Wrote: One thing to note after playing with the latest PVR addon from last night I noticed that if I watch a show and stop the data it does record a bookmark in mythtv, however the PVR addon doesn't honor that bookmark and pickup where it left off.
(2012-10-18, 21:30)cfetzer Wrote: Hm I don't get it. It records the bookmark to resume where it left off...
You should be able to start watching with the addon and resume on that position (even in mythfrontend) vice verca.
Could you explain and pastebin a debug log?