Streaming RAR files (1 Viewer)

jackjson

Portal Pro
December 8, 2007
70
24
Home Country
Sweden Sweden
I've build a C# application that emulates and mounts a (currently) FAT32 disk. The FAT32 disk contains the content of a selected uncompressed rar-archive. This way you can mount a uncompressed rar archive to a drive letter, and then browse (or playback) the rar content in real time. The application can handle splitted archives (rar,r00,r01,etc.).
Due to the limits of FAT32, mounting of rar archives containing large files ( >4gb) are NOT possible. Therefor I'm now trying to chnage from the FAT32 emulation to UDF 1.02. This will probably take some days.
I'm also working on a plugin for MP that will do the mounting and unmounting of uncompressed rar archives seemlessly.
/J
 

zag2me

Portal Pro
April 11, 2006
216
68
Home Country
England England
Thats great news jackson, we've all been jealous of this feature from of x-box media center for years :)
 

KingHippo

Portal Member
January 13, 2005
15
0
Sweden
Home Country
Sweden Sweden
I've build a C# application that emulates and mounts a (currently) FAT32 disk. The FAT32 disk contains the content of a selected uncompressed rar-archive. This way you can mount a uncompressed rar archive to a drive letter, and then browse (or playback) the rar content in real time. The application can handle splitted archives (rar,r00,r01,etc.).
Due to the limits of FAT32, mounting of rar archives containing large files ( >4gb) are NOT possible. Therefor I'm now trying to chnage from the FAT32 emulation to UDF 1.02. This will probably take some days.
I'm also working on a plugin for MP that will do the mounting and unmounting of uncompressed rar archives seemlessly.
/J

Good job!
Just an idea, if you already have a class for reading rar archives, isn't it easier to create a class that works lika a normal System.IO.Stream and reads the content of the .rar? Then you won't have to mount anything and can just change the usual code to something like below.

From:
FileStream sr = new FileStream("movie.avi");
Player.Play(sr);

To:
class RarStreamReader : Stream {...}
RarStreamReader rsr = new RarStreamReader("movie.r01");
Player.Play(rsr);

Im guessing now how the play function works but im guessing it takes some kind of stream
like Player.Play(Stream sr);

Just an idea, it'll be great both ways =)
 

jackjson

Portal Pro
December 8, 2007
70
24
Home Country
Sweden Sweden
I've build a C# application that emulates and mounts a (currently) FAT32 disk. The FAT32 disk contains the content of a selected uncompressed rar-archive. This way you can mount a uncompressed rar archive to a drive letter, and then browse (or playback) the rar content in real time. The application can handle splitted archives (rar,r00,r01,etc.).
Due to the limits of FAT32, mounting of rar archives containing large files ( >4gb) are NOT possible. Therefor I'm now trying to chnage from the FAT32 emulation to UDF 1.02. This will probably take some days.
I'm also working on a plugin for MP that will do the mounting and unmounting of uncompressed rar archives seemlessly.
/J

Good job!
Just an idea, if you already have a class for reading rar archives, isn't it easier to create a class that works lika a normal System.IO.Stream and reads the content of the .rar? Then you won't have to mount anything and can just change the usual code to something like below.

From:
FileStream sr = new FileStream("movie.avi");
Player.Play(sr);

To:
class RarStreamReader : Stream {...}
RarStreamReader rsr = new RarStreamReader("movie.r01");
Player.Play(rsr);

Im guessing now how the play function works but im guessing it takes some kind of stream
like Player.Play(Stream sr);

Just an idea, it'll be great both ways =)


You're right, that would be the best solution. But as far as I could tell MP isn't working with file streams at all. It simply tells the WMP9 object to play a specific file or url. Can somebody confirm this, please?
 

tourettes

Retired Team Member
  • Premium Supporter
  • January 7, 2005
    17,301
    4,800
    Directshow graphs that MP uses cannot use other than files as their sources so mounting is the best way to handle the .rar.
     

    KingHippo

    Portal Member
    January 13, 2005
    15
    0
    Sweden
    Home Country
    Sweden Sweden
    jackjson & tourettes: Oh, then a mountin will be the best idea. Looking forward to see this feature, if you can mount it you can probably just handle it like the .ISO mount with Daemon tools which works great.

    Thanks again.
     

    jackjson

    Portal Pro
    December 8, 2007
    70
    24
    Home Country
    Sweden Sweden
    Alpha version of RarMount can be found here:
    http://www.jackjson.se/rarmount/RarMountAlpha.zip
    (the file is big due to an included FAT32 header file)

    It's partly based on and-81's RarPlayer plugin. (Thx!)

    A ReadMe is included in the archive.
    From the ReadMe:

    What it can do
    **************
    - Mount uncompressed RAR archives!
    - Seemless intergration with Media Portal

    What it can't do
    ****************
    - The mounted RAR archive(s) may only contain ONE file,
    and that file must be smaller than 3,98 GB. I.E: No dvd imgs yet.


    /Jack
     

    Aoestein

    Portal Member
    October 31, 2006
    6
    0
    36
    Home Country
    Sweden Sweden
    Fire, the wheel, the integrated circut and finaly the RARmount plugin for mediaportal!
    It works superb with most of my uncompressed rars, very nice.
    But in some cases, only the first part of all the rar's are played, and skiping(FW) does'nt work either.
    In other cases nothing is played and mediaportal gets killed.

    Check with me if u want more info on the bugs.

    This was a great christmaspresent, good work man!
    :D
     

    mrkrad

    Portal Member
    August 24, 2007
    32
    0
    you should try out winmount to see how it compares to features. the xbox is unique that you can play damaged or missing rar sets and it will just skip; even allowing you to begin playing as soon as you download a video (assuming your xfer rate > bitrate of file). probably check out the xbox source code to see how they pull off this trick since it works so well. good work ! i'm praying the ole xbox1 will hold out a bit longer :)
     

    Users who are viewing this thread

    Top Bottom