[mythtv-users] Commercial Flagging (UK, DVB-T)

Mark Greenwood fatgerman at gmail.com
Fri Oct 26 16:09:00 UTC 2012


On 26 Oct 2012, at 16:04, Mark Greenwood wrote:

> 
> On 26 Oct 2012, at 15:11, John Pilkington wrote:
> 
>> On 26/10/12 15:05, John Pilkington wrote:
>>> On 26/10/12 14:08, Mark Greenwood wrote:
>>>> 
>>>> On 26 Oct 2012, at 13:46, Tim Phipps wrote:
>>>> 
>>>>> Quoting Mark Greenwood <fatgerman at gmail.com>:
>>>>>> OK, so
>>>>>> 
>>>>>> Commflag_35 jobqueue.cpp:2281 (DoFlagCommercialsThread) JobQueue:
>>>>>> Commercial Detection Starting for "The Inbetweeners":"The First Day"
>>>>>> recorded from channel 1029 at 2012-10-23T23:05:00Z
>>>>>> 
>>>>>> When I then try :
>>>>>> mausc_wrapper.py --chanid=1029 --starttime=2012-10-23T23:05:00Z
>>>>>> Local access to recording not found.
>>>>>> 
>>>>>> mausc_wrapper.py --chanid=1029 --starttime=2012-10-23T23:05:00
>>>>>> Could not find recording.
>>> 
>>> Can it find --starttime=2012-10-23T23:06:00, which would be the local
>>> time in the UK?  Or --starttime 201210230600 or perhaps 20121023060000 ?
>>> 
>>> Do you have a mix of 0.25 and 0.26?
>>> 
>> I had better correct that.  It's 20121024000500 :-)
> 
> :-) I didn't spot that either. using that gives me the 'Local access to recording not found' error.
> 
> So, putting some print statements in, in the style of all the best script monkeys :), I find that
> 
> rec.basename = 1029_20121023230500.mpg - a file which exists
> rec.storagegroup = Default
> 
> The Default storage group points to /var/lib/mythtv/recordings, which is where the file is. But findfile(rec.basename, rec.storagegroup, db=db) returns 'None'.

Right, found what I suspect is a bug in the python bindings for 0.26

The script calls

sg = findfile(rec.basename, rec.storagegroup, db=db)

But in the source I find:

def findfile(filename, sgroup, db=None):
    """
    findfile(filename, sgroup, db=None) -> StorageGroup object

    Will search through all matching storage groups, searching for file.
    Returns matching storage group upon success.
    """
    db = DBCache(db)
    for sg in db.getStorageGroup(groupname=sgroup):
        # search given group
        if sg.local:
            if os.access(sg.dirname+filename, os.F_OK):
                return sg
 
Now, thanks to some debugging I find

sg.dirname+filename == /var/lib/mythtv/recordings1029_20121023230500.mpg

So, change the call to

sg = findfile('/'+rec.basename, rec.storagegroup, db=db)

and the script runs. (Haven't yet checked whether it has found the breaks correctly)

Looks like sg.dirname is stripping a trailing slash where it shouldn't. Where should I report this?

Mark




> 
> Mark
> 
>> 
>>>>>> 
>>>>> Possibly. I'm still on 0.25 till the weekend. Hopefully I can figure
>>>>> out a way to get the script to work with both 0.25 and 0.26. The
>>>>> second error happens when the script can't find the database entry
>>>>> for the recording. The first error does find the db row so the syntax
>>>>> used in the first example is correct but then it fails to find the
>>>>> actual file. Are you running this on the same machine as the backend
>>>>> that made the recording?
>>>> 
>>>> Yes, same machine (well through an ssh session from another machine
>>>> but I don't think that matters). The recordings in the directory all
>>>> have names like '1029_201212367300.mpg', not sure if that's relevant.
>>> 
>>> Well, if you copied that filename something is very wrong,
>>>> 
>>>> Cheers
>>>> 
>>>> Mark
>>>> 
>>>>> 
>>>>> Cheers,
>>>>> Tim.
>>>>> 
>>> 
>>> _______________________________________________
>>> mythtv-users mailing list
>>> mythtv-users at mythtv.org
>>> http://www.mythtv.org/mailman/listinfo/mythtv-users
>>> 
>> 
>> _______________________________________________
>> mythtv-users mailing list
>> mythtv-users at mythtv.org
>> http://www.mythtv.org/mailman/listinfo/mythtv-users
> 



More information about the mythtv-users mailing list