Re: [vdr] vdr-checkts + vdrnfofs
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
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
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
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
--- 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
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
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
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
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
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
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
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
--- 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
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
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
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
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
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