[mythtv-commits] mythtv commit: r25858 - in trunk/mythtv by cpinkham

mythtv at cvs.mythtv.org mythtv at cvs.mythtv.org
Thu Aug 26 06:02:14 UTC 2010


      Author: cpinkham
        Date: 2010-08-26 06:02:14 +0000 (Thu, 26 Aug 2010)
New Revision: 25858
   Changeset: http://svn.mythtv.org/trac/changeset/25858

Log:

Add the ability to playback remote DVD and Blu-ray directory images and DVD
ISO files via MythTV's streaming protocol.  The full implementation is an
interim solution, parts of it will be changed in the future.
Post 0.24, we'll probably be moving the libraries into the new 'external'
subdir.  The desire is to coordinate a standard 'plugable' layout where can
plug in our RingBuffer wrapper routines without having to modify the upstream
library in any way.  the Blu-ray library already has partial support for this,
but it will need extending to fully allow us to use the library for remote
streaming without making any of our own changes to the code.

URI Examples (substitute in your favorite Storage Group and subdirectory):

Blu-ray image (BDMV subdirectory is under a 'Demos/x264_bluray_demo'
  directory in Storage Group)

  mythavtest myth://MyDiscImages@192.168.1.100/Demos/x264_bluray_demo

DVD image (VIDEO_TS subdirectory is under the 'Hot_Dogs_II' directory)

  mythavtest myth://MyDiscImages@192.168.1.100/Hot_Dogs_II

DVD ISO (ISO is in a 'Documentaries' sudirectory of the Storage Group

  mythavtest myth://MyISOs@192.168.1.100/Documentaries/Hot_Dogs_II.iso

ISO playback is by far the fastest, the libs do a lot of seeking around
which exposes some inefficiencies in our RingBuffer.  These are being
looked at, so performance should improve.  Directory image playback
does take longer to startup than ISO playback, but once playback
has started, they should both perform about the same since the RingBuffer
has a built-in read-ahead buffer.

Encrypted DVDs are not supported for remote streaming.  In other words,
you can't currently point a Backend's Storage Group at /dev/dvd or a
directory where you have a DVD mounted and expect to be able to watch
it on a remote frontend.


NOTE: This does modify the binary API, AND the protocol version, so make clean,
upgrade everything, etc..



Added:

   trunk/mythtv/libs/libmythbluray/file/dir_mythiowrapper.c
   trunk/mythtv/libs/libmythbluray/file/file_mythiowrapper.c
   trunk/mythtv/libs/libmythbluray/file/file_mythiowrapper.h
   trunk/mythtv/libs/libmythtv/mythiowrapper.cpp
   trunk/mythtv/libs/libmythtv/mythiowrapper.h

Modified:

   trunk/mythtv/bindings/perl/MythTV.pm
   trunk/mythtv/bindings/python/MythTV/static.py
   trunk/mythtv/libs/libmyth/programinfo.cpp
   trunk/mythtv/libs/libmyth/util.cpp
   trunk/mythtv/libs/libmyth/util.h
   trunk/mythtv/libs/libmythbluray/bluray.c
   trunk/mythtv/libs/libmythbluray/file/dir_posix.c
   trunk/mythtv/libs/libmythbluray/file/file_posix.c
   trunk/mythtv/libs/libmythbluray/libmythbluray.pro
   trunk/mythtv/libs/libmythdb/mythversion.h
   trunk/mythtv/libs/libmythdb/remotefile.cpp
   trunk/mythtv/libs/libmythdb/remotefile.h
   trunk/mythtv/libs/libmythdvdnav/dvdnav/vm/vm.c
   trunk/mythtv/libs/libmythdvdnav/dvdread/dvd_input.c
   trunk/mythtv/libs/libmythdvdnav/dvdread/dvd_input.h
   trunk/mythtv/libs/libmythdvdnav/dvdread/dvd_reader.c
   trunk/mythtv/libs/libmythdvdnav/libmythdvdnav.pro
   trunk/mythtv/libs/libmythtv/DVDRingBuffer.cpp
   trunk/mythtv/libs/libmythtv/RingBuffer.cpp
   trunk/mythtv/libs/libmythtv/RingBuffer.h
   trunk/mythtv/libs/libmythtv/libmythtv.pro
   trunk/mythtv/programs/mythbackend/filetransfer.cpp
   trunk/mythtv/programs/mythbackend/mainserver.cpp




More information about the mythtv-commits mailing list