Code Monkey home page Code Monkey logo

Comments (10)

clsid2 avatar clsid2 commented on August 17, 2024

Someone else would need to contribute a patch for that. I don't have time nor interest for this.

from mpc-hc.

Dr-Flay avatar Dr-Flay commented on August 17, 2024

Why can't you just use unrar.dll ?
Works for WACUP just fine.

from mpc-hc.

clsid2 avatar clsid2 commented on August 17, 2024

I need someone who wants to write code. Anything else isn't helpful as I am not working on this.

from mpc-hc.

adipose avatar adipose commented on August 17, 2024

I have a solution for this. However, it requires changes to the RARFileSource subproject, and has a dependency of the unrar source. Since there is already an mpc-hc fork of RARFileSource, might you (@clsid2) want to fork it again--or just import the RARFIleSource into mpc-hc tree.

RARFIleSource is not really maintained anymore, and the core logic of it I have removed entirely in favor of generic calls to unrar, which works for all version of RAR rather than v4. In theory, even future versions could work.

@Dr-Flay, the unrar DLL is not suitable for this task, really, because it allows little more than access to archive extraction to disk. Although that could work, RARFileSource worked by reading directly from the archive rather than extracting it first, which is much faster, more efficient, and saves disk space. However, with one small change to unrar source, I was able to use the static library to do the same thing for versions up to RAR5.

from mpc-hc.

Dr-Flay avatar Dr-Flay commented on August 17, 2024

@adipose Much more preferable indeed (the unpacking of an archive collection each time I play 1 tracker mod is annoying) I didn't think you could do that with RAR due to the way it is made. I guess opinions have been based of the official unrar, rather than 3rd party options.
A current RARFileSource would be very handy for other projects that prefer not to spaff a load of temp files all the time (especially in an era of SSDs)

from mpc-hc.

adipose avatar adipose commented on August 17, 2024

@Dr-Flay "store-only" means the data sits unmodified in the archive, so other than jumping between multi-volume sets, it's just a question of reading the right data.

It's stupidly ambitious, but I did lay the groundwork for extracting a compressed rar in memory, but didn't finish that part yet (maybe never). The basic problem there is, you have to start from the beginning due to the way huffman encoding works, so it can be slow (read: extract the whole archive) to get to the end. On the other hand, 90% of the time you probably wanted to start from 0:00 anyway, so it could work pretty well for the basic scenario.

Other option is just extract to disk first, then play. But if you wanted to do that, you could have just done it to begin with!

from mpc-hc.

clsid2 avatar clsid2 commented on August 17, 2024

Importing it into the tree would be fine.

from mpc-hc.

adipose avatar adipose commented on August 17, 2024

PR here:

#170

Test build here:

https://mega.nz/#!Aco2jI7b!ZsFVz7BIY68DKKPjvatEeoE3PBFFL6ecYv0FimEvPFk

This should work with RAR4/RAR5 uncompressed archives.

@clsid2, I am not sure how to test the asynchronous reading part of OutputPin in mpc-hc. If you can comment on that.

from mpc-hc.

clsid2 avatar clsid2 commented on August 17, 2024

Patch has been committed.

I don't know about async stuff either.

from mpc-hc.

Tsoccerguy3 avatar Tsoccerguy3 commented on August 17, 2024

Could you post a new release for this . thank you

from mpc-hc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.