Re: [vdr] vdr-checkts + vdrnfofs

2011-10-18 Thread stuart_morris
Hi
I have just installed vdrnfofs 0.8 and it works well.
The vdrnfofs mount is served by miniDLNA and I have played back .ts recordings 
using WMP as a DLNA client. 
I could not play back .vdr files but I dont think this is a problem with 
vdrnfofs.
Thanks

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-16 Thread Manfred Schmidt-Voigt

Am 03.10.2011 20:26, schrieb Tobi:

On 03.10.2011 20:12, Manfred Schmidt-Voigt wrote:


Is it possible to include this in one of the next versions?


Good suggestion! Added to the todo list.

Tobias



Hi Tobias,
Just got the new Version installed. Its working like a charm.
Thanks a lot!
greets
Manfred

--
---   Manfred Schmidt-Voigt  ---
-www.mannitec.de   -
---  mailto:manfred.schmidt-vo...@mannitec.de---

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-10 Thread Tobias Güntner

Am 04.10.2011 17:35, schrieb Holger Altenburg:

Unfortunately my vlc-player on Windows does not show timestamps
(current/total time) of the video like it is on the originating
ts-files. I had hoped that this was gone with the mpg so I could use the
jump-buttons (10sec/1min) in vlc.


A patch for TS timestamps was applied to VLC last weekend. Please test 
if a recent nightly build (http://nightlies.videolan.org/) solves the 
problem.


Regards,
Tobias

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-10 Thread Tobi
On 03.10.2011 19:26, Tobi wrote:

 Looks like my patches haven't been accepted for 0.7.
 
 No they haven't. Sorry! But it's on the todo list. Just need to fix the
 merge conflicts first, because the patch doesn't apply to 0.7.

I have a new version 0.8 out with the following changes:

  - Use cStringIO instead of string concatenation - about 3 times faster
(Patch provided by Ed Hein)
  - Fixed license header in source files - it's the BSD licence now!
  - Set mtime of file nodes to recording time (parsed from *.rec)
  - Set mtime of dir nodes to original directories mtime
  - Added homepage http://projects.vdr-developer.org/projects/vdrnfofs
  - Some micro optimizations
  - Cache the file system nodes for get_stat() (nodes used for
reading are not cached)
  - For FUSE file nodes' uid/gid is taken from the *.rec dir, for dir
nodes from the original dir

The file system should now be *much* faster.

http://projects.vdr-developer.org/projects/vdrnfofs
http://projects.vdr-developer.org/git/vdrnfofs.git/

@Ed Hein:

I've taken the cStringIO from your patch, which works pretty well, but
did a different approach with the caching. Only the nodes used for
tree walking/stat() are cached (max. 10 seconds).
I've also set multithreaded=False instead of locking the file reads -
threading (especially with locks around the reads) doesn't seem to make
things faster anyways.

Tobias

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-05 Thread Stuart Morris
--- On Mon, 3/10/11, Tobi listacco...@e-tobi.net wrote:

 From: Tobi listacco...@e-tobi.net
 Subject: Re: [vdr] vdr-checkts + vdrnfofs
 To: vdr@linuxtv.org
 Date: Monday, 3 October, 2011, 11:16
 On 03.10.2011 11:39, Stuart Morris
 wrote:
 
  vdr-nfofs looks interesting. Can it be used in
 conjunction with a DLNA server like MiniDLNA? 
 
 Should work. Just make MiniDLNA's config point to the
 vdrnfofs file
 system. But I have no idea, if the *.nfo files are of any
 use to DLNA
 devices. And it might be a little bit slow if you have a
 lot of VDR
 recordings.
 
  Does it support H264 vdr recordings?
 
 It supports VDR 1.6 (001.vdr) and VDR 1.7.x (0001.ts). It
 doesn't care
 about the encoding. The VDR files are just virtually
 concatenated and
 presented as a single *.mpg file.
 
 Tobias

Sorry if this is obvious to others, but why do I get this error:
ImportError: No module named vdrnfofs

I know nothing of Python. Is there something else I need to install in addition 
to fuse-python?

Thanks
Stuart

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-04 Thread Peer Oliver Schmidt
On 10/03/2011 08:26 PM, Tobi wrote:
 On 03.10.2011 20:12, Manfred Schmidt-Voigt wrote:
 
 Is it possible to include this in one of the next versions?
 
 Good suggestion! Added to the todo list.

FYI: I am using a butchered version of vdrnfofs in LinuxMCE. Works for
what I need atm. VDR-Portal should have my changes.
-- 
Best regards

Peer Oliver Schmidt
LinuxMCE
PGP Key ID: 0x83E1C2EA

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-04 Thread Holger Altenburg

Hello Tobias,

On 02.10.2011 23:21, Tobi wrote:


Just in case someone finds them useful, I've just put two tiny tools online:



vdr-nfofs: A Fuse file system for VDR recordings, mapping them to
*.mpg/*.nfo files

http://projects.vdr-developer.org/git/vdrnfofs.git/
http://projects.vdr-developer.org/git/vdrnfofs.git/tree/README
http://projects.vdr-developer.org/git/vdrnfofs.git/snapshot/vdrnfofs-0.7.tar.gz


very nice, indeed.

Just for your readme-file. I had to install python-setuptools and not 
only python-fuse. (Debian Squeeze/e-tobi.net) and I had to set the 
allow_other option in the mount-command in order to get permission to 
the files for non-root-users. It was no help to add this users to the 
fuse-group.


Unfortunately my vlc-player on Windows does not show timestamps 
(current/total time) of the video like it is on the originating 
ts-files. I had hoped that this was gone with the mpg so I could use the 
jump-buttons (10sec/1min) in vlc.


Is there any chance of a possibility, that vdrnfofs could modify the mpg 
so the timestamps will work?


Nevertheless, great job, once again, Tobi. I am very happy to have this one.

--
Holger


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-04 Thread VDR User
This is a little off-topic but is there a VDR plugin to view nfo +
jpg?  Maybe even in the osd since VDR now supports truecolor..?  This
is the one big feature imo that things such as the mplayer plugin lack
and it's really a shame.

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-04 Thread Dominic Evans
Hi Tobi,

On 3 October 2011 19:26, Tobi listacco...@e-tobi.net wrote:
 Good suggestion! Added to the todo list.

Is is possible for you to add a page under
http://projects.vdr-developer.org/projects for vdr-nfofs so that we
can raise bugs, request features and submit patches on a tracker?

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-04 Thread Tobias Güntner

Am 04.10.2011 17:35, schrieb Holger Altenburg:

Unfortunately my vlc-player on Windows does not show timestamps
(current/total time) of the video like it is on the originating
ts-files.


Please check if VLC shows proper timestamps for *all* ts files. If there 
is a problem with one ts file, chances are that the merged mpg file has 
the same problem.


I suspect the VLC TS demux is at fault. There already are discussions 
about it on vlc-devel (e.g., 
http://mailman.videolan.org/pipermail/vlc-devel/2011-September/thread.html#81844), 
so I suppose your problem will be fixed in the near future.


Regards,
Tobias

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-04 Thread Tobi
On 04.10.2011 17:35, Holger Altenburg wrote:

 Just for your readme-file. I had to install python-setuptools and not only
 python-fuse. (Debian Squeeze/e-tobi.net) and I had to set the allow_other
 option in the mount-command in order to get permission to the files for
 non-root-users. It was no help to add this users to the fuse-group.

Thx! Added to the README. I'll check the permission, guess there must be
another way.

 Is there any chance of a possibility, that vdrnfofs could modify the mpg
 so the timestamps will work?

What exactly needs to be changed?

Doing such thing in vdrnfofs would only make sense, if it's a really,
really cheap operation like setting some bits in the TS package headers.
Any deeper inspection/modification of the underlying mpg stream would make
vdrnfofs become damn slow.

Tobias

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-04 Thread Tobi
On 04.10.2011 18:02, Dominic Evans wrote:

 Is is possible for you to add a page under
 http://projects.vdr-developer.org/projects for vdr-nfofs so that we
 can raise bugs, request features and submit patches on a tracker?

Ok.

http://projects.vdr-developer.org/projects

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-03 Thread Stuart Morris
--- On Sun, 2/10/11, Tobi listacco...@e-tobi.net wrote:

 From: Tobi listacco...@e-tobi.net
 Subject: [vdr] vdr-checkts + vdrnfofs
 To: VDR Mailing List vdr@linuxtv.org
 Date: Sunday, 2 October, 2011, 22:21
 Hi,
 
 Just in case someone finds them useful, I've just put two
 tiny tools online:
 
 vdr-checkts: checks VDR recordings for continuity errors
 
 http://projects.vdr-developer.org/git/vdr-checkts.git
 http://projects.vdr-developer.org/git/vdr-checkts.git/tree/README
 http://projects.vdr-developer.org/git/vdr-checkts.git/snapshot/vdr-checkts-0.1.tar.gz
 
 
 
 vdr-nfofs: A Fuse file system for VDR recordings, mapping
 them to
 *.mpg/*.nfo files
 
 http://projects.vdr-developer.org/git/vdrnfofs.git/
 http://projects.vdr-developer.org/git/vdrnfofs.git/tree/README
 http://projects.vdr-developer.org/git/vdrnfofs.git/snapshot/vdrnfofs-0.7.tar.gz
 
 Have fun,
 
 Tobias

vdr-nfofs looks interesting. Can it be used in conjunction with a DLNA server 
like MiniDLNA? The problem with DLNA servers I have tried is they present vdr 
recordings as a list of 1.ts files which is not user friendly.
Does it support H264 vdr recordings? I'm looking for a solution to view HD 
recordings on a TV using a thin client, like a DLNA client for example.

Stuart


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-03 Thread Tobi
On 03.10.2011 11:39, Stuart Morris wrote:

 vdr-nfofs looks interesting. Can it be used in conjunction with a DLNA server 
 like MiniDLNA? 

Should work. Just make MiniDLNA's config point to the vdrnfofs file
system. But I have no idea, if the *.nfo files are of any use to DLNA
devices. And it might be a little bit slow if you have a lot of VDR
recordings.

 Does it support H264 vdr recordings?

It supports VDR 1.6 (001.vdr) and VDR 1.7.x (0001.ts). It doesn't care
about the encoding. The VDR files are just virtually concatenated and
presented as a single *.mpg file.

Tobias

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-03 Thread ty...@gmx.com
I tried to set up a dlna server with an earlier version of vdr-nfofs a few 
months ago. It kinda worked but there were some performance problems in regard 
to file system operations. I hacked a file descriptor cache into the python 
code which helped a bit. Tobi might have included this in the new version.

Cya, Ed
-- 
Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.



Tobi listacco...@e-tobi.net schrieb:

On 03.10.2011 11:39, Stuart Morris wrote:

 vdr-nfofs looks interesting. Can it be used in conjunction with a DLNA server 
 like MiniDLNA? 

Should work. Just make MiniDLNA's config point to the vdrnfofs file
system. But I have no idea, if the *.nfo files are of any use to DLNA
devices. And it might be a little bit slow if you have a lot of VDR
recordings.

 Does it support H264 vdr recordings?

It supports VDR 1.6 (001.vdr) and VDR 1.7.x (0001.ts). It doesn't care
about the encoding. The VDR files are just virtually concatenated and
presented as a single *.mpg file.

Tobias

_

vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr-checkts + vdrnfofs

2011-10-03 Thread Ed Hein
Hi,

 I tried to set up a dlna server with an earlier version of vdr-nfofs a few
 months ago. It kinda worked but there were some performance problems in
 regard to file system operations. I hacked a file descriptor cache into the
 python code which helped a bit. Tobi might have included this in the new
 version.

Looks like my patches haven't been accepted for 0.7. You can try my patchset 
but I haven't worked on that for some months now. Patch is not minimal and not 
cleanly separated, so you should pick the tidbits you like.

Cya, Ed
diff -ur vdrnfofs-0.6/vdrnfofs/concatenated_file_reader.py vdrnfofs-0.6.tyger1//vdrnfofs/concatenated_file_reader.py
--- vdrnfofs-0.6/vdrnfofs/concatenated_file_reader.py	2011-04-14 23:59:21.0 +0200
+++ vdrnfofs-0.6.tyger1//vdrnfofs/concatenated_file_reader.py	2011-04-18 22:35:43.776907385 +0200
@@ -20,32 +20,37 @@
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 import os
+from threading import Lock
+from cStringIO import StringIO
 
 class ConcatenatedFileReader:
 def __init__(self, filenames):
 self.files = [(f, os.path.getsize(f)) for f in filenames]
 self.current_filename = None
 self.current_file = None
+self.rwlock = Lock()
 
 def read(self, offset, size):
-buffer = 
+buffer = StringIO()
 ptr = offset
-while (len(buffer)  size):
-(filename, file_offset) = self.filename_from_offset(ptr)
-if filename:
-if (self.current_filename != filename):
-if self.current_file:
-self.current_file.close()
-self.current_filename = filename
-self.current_file = open(filename, 'r')
-self.current_file.seek(file_offset)
-buffer += self.current_file.read(size - len(buffer))
-ptr = offset + len(buffer)
-else:
-break
-return buffer
+with self.rwlock:
+while (buffer.tell()  size):
+(filename, file_offset) = self.filename_from_offset(ptr)
+if filename:
+if (self.current_filename != filename):
+if self.current_file:
+self.current_file.close()
+self.current_filename = filename
+self.current_file = open(filename, 'r')
+self.current_file.seek(file_offset)
+buffer.write(self.current_file.read(size - buffer.tell()))
+ptr = offset + buffer.tell()
+else:
+break
+return buffer.getvalue()
 
-def release(self):
+def __del__(self):
+# print CFR::DEL
 if self.current_file:
 self.current_file.close()
 
Only in vdrnfofs-0.6.tyger1//vdrnfofs: concatenated_file_reader.py~
diff -ur vdrnfofs-0.6/vdrnfofs/filesystemnodes.py vdrnfofs-0.6.tyger1//vdrnfofs/filesystemnodes.py
--- vdrnfofs-0.6/vdrnfofs/filesystemnodes.py	2011-04-14 23:27:02.0 +0200
+++ vdrnfofs-0.6.tyger1//vdrnfofs/filesystemnodes.py	2011-04-18 22:39:19.540905997 +0200
@@ -26,6 +26,7 @@
 
 from concatenated_file_reader import *
 from vdr import *
+from threading import Lock
 
 class NodeAttributes(fuse.Stat):
 def __init__(self):
@@ -40,40 +41,90 @@
 self.st_mtime = 0
 self.st_ctime = 0
 
+
 class MpgNode:
+cachesize = 20
+cachelock = Lock()
+cache = []
+
+@classmethod
+def create(cls, path, cache):
+if not cache:
+return cls(path)
+with cls.cachelock:
+index = next((i for i in xrange(len(cls.cache)-1, -1, -1) if cls.cache[i].key == path), None)
+if index is not None:
+# print %s HIT % cls.__name__
+node = cls.cache.pop(index)
+else:
+# print %s MISS % cls.__name__
+node = cls(path)
+if len(cls.cache)  cls.cachesize:
+del cls.cache[0]
+cls.cache.append(node)
+# print %s cache size: %d %(cls.__name__, len(cls.cache))
+return node
+
 def __init__(self, path):
+# print MpgNode::init %s % path
+self.key = path
 self.path = os.path.normpath(path)
 self.mpeg_files = glob.glob(path + '/[0-9]*.vdr')
 if not self.mpeg_files:
 self.mpeg_files = glob.glob(path + '/[0-9]*.ts')
 self.mpeg_files.sort()
-self.file_system_name = os.path.basename(os.path.abspath(path + '/..')) + '_' + os.path.basename(path) + '.mpg'
+self.file_system_name =%s_%s.mpg % (os.path.basename(os.path.abspath(path + '/..')), os.path.basename(path)) 
 self.reader = ConcatenatedFileReader(self.mpeg_files)
-
-def size(self):
 size = 0
 for file in self.mpeg_files:
 size += os.path.getsize(file)
-return size
+

Re: [vdr] vdr-checkts + vdrnfofs

2011-10-03 Thread Manfred Schmidt-Voigt

Am 02.10.2011 23:21, schrieb Tobi:

Hi,

Just in case someone finds them useful, I've just put two tiny tools online:

vdr-checkts: checks VDR recordings for continuity errors

http://projects.vdr-developer.org/git/vdr-checkts.git
http://projects.vdr-developer.org/git/vdr-checkts.git/tree/README
http://projects.vdr-developer.org/git/vdr-checkts.git/snapshot/vdr-checkts-0.1.tar.gz



vdr-nfofs: A Fuse file system for VDR recordings, mapping them to
*.mpg/*.nfo files

http://projects.vdr-developer.org/git/vdrnfofs.git/
http://projects.vdr-developer.org/git/vdrnfofs.git/tree/README
http://projects.vdr-developer.org/git/vdrnfofs.git/snapshot/vdrnfofs-0.7.tar.gz

Have fun,

Tobias

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr



Hi Tobi,

I like this vdrnfofs. But I miss one thing. When you create the filename 
you include the Recording-Timestamp at the end of the filename. So you 
can only sort these files in the browser alphabetically. But it would be 
nice to have these timestamps as the creation time of the mpeg-file and 
not only 1.1.1970 1:00. Then you it would be possible to sort also 
based on the date column. I would prefer this because I normaly look the 
oldest unseen recordings first.


Is it possible to include this in one of the next versions?

Kind regards
Manfred



--
---   Manfred Schmidt-Voigt  ---
-www.mannitec.de   -
---  mailto:manfred.schmidt-vo...@mannitec.de---

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


[vdr] vdr-checkts + vdrnfofs

2011-10-02 Thread Tobi
Hi,

Just in case someone finds them useful, I've just put two tiny tools online:

vdr-checkts: checks VDR recordings for continuity errors

http://projects.vdr-developer.org/git/vdr-checkts.git
http://projects.vdr-developer.org/git/vdr-checkts.git/tree/README
http://projects.vdr-developer.org/git/vdr-checkts.git/snapshot/vdr-checkts-0.1.tar.gz



vdr-nfofs: A Fuse file system for VDR recordings, mapping them to
*.mpg/*.nfo files

http://projects.vdr-developer.org/git/vdrnfofs.git/
http://projects.vdr-developer.org/git/vdrnfofs.git/tree/README
http://projects.vdr-developer.org/git/vdrnfofs.git/snapshot/vdrnfofs-0.7.tar.gz

Have fun,

Tobias

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr