Commit Graph

113 Commits

Author SHA1 Message Date
bnnm
b4884522d8 Optimize STDIO/FOO streamfiles slightly
Tries to simplify code, and buffer is not emptied unless we really read
more data (useful for edge reads). get_offset is now reliable (though
never used).
2018-08-24 18:48:42 +02:00
Christopher Snowhill
1294f515f2
Merge pull request #276 from Thealexbarney/msvc-fread-fix
Workaround MSVC fseek/fread bug
2018-08-19 16:15:54 -07:00
bnnm
a5656eaa2f Optimize buffer_streamfile EOF reads and fix get_offset behaviour 2018-08-19 22:31:12 +02:00
bnnm
7f424bb7e9 Disable dump_streamfile when debug isn't used, just in case 2018-08-12 13:58:48 +02:00
bnnm
b438b5fa01 Add debug util for easier custom IO testing 2018-08-11 17:58:16 +02:00
Alex Barney
c74b0841ca Workaround MSVC fseek/fread bug 2018-08-04 15:47:46 -05:00
bnnm
0fc5b466c8 Add some extra streamfile helpers 2018-08-04 20:42:00 +02:00
bnnm
5dc8d55c7f Add file_size fail check for +2GB files 2018-08-02 17:17:58 +02:00
bnnm
46f333cc8e Remove get_realname from streamfiles as it's not used anymore
It was implemented for Audacious only to open companion NWA files, but
current version has no need for it. In case there is some obscure thing
that needs it, Audacious's vfs.cc should translate or return realnames
transparently, without having to modify other streamfiles.
2018-04-19 22:54:45 +02:00
bnnm
d6ade4123f Add buffer_streamfile (for custom IO) and simplify stdio reads 2018-04-19 22:19:30 +02:00
Christopher Snowhill
35bede85fe
Merge pull request #209 from haspor/master
Android change for streamfile
2018-03-31 17:54:45 -07:00
bnnm
e4c819af2e Add size_callback to open_io_streamfile for more complex stuff 2018-03-30 18:10:23 +02:00
-
d5b095361c revert back the Android change. It seems that the 'dup' is not working perfectly with unistd.h either. 2018-03-30 08:22:03 +03:00
bnnm
92b9992552 Rename open_stream_ext/name to open_streamfile_by_ext/filename (cleanup) 2018-03-29 22:34:21 +02:00
bnnm
2b63d451d9 Minor tweaks to get_streamfile_name and co 2018-03-29 21:03:25 +02:00
bnnm
69fb29fc7a Return size_t in read_string for consistency 2018-03-29 20:42:52 +02:00
bnnm
49e62d2bcc Move read_pos_file to ffmpeg.c since it was only needed there 2018-03-29 20:38:06 +02:00
bnnm
a2acd045bf Fix missing nxap 2018-03-25 19:59:58 +02:00
bnnm
b97fc632be Fix minor compiler warnings 2018-03-03 19:07:59 +01:00
bnnm
c7173a6df5 Remove debug 2018-02-25 16:49:17 +01:00
bnnm
15ca185052 Add util to get base filename without path 2018-02-25 16:27:48 +01:00
bnnm
8c7eba151a Add STREAMFILE for segmented files 2018-01-27 13:58:46 +01:00
bnnm
861e1ea796 Add Koei Tecmo ATL3 subfiles [One Piece Pirate Warriors (PS3)] 2018-01-27 11:53:15 +01:00
bnnm
88999d570d Add STREAMFILE for fake names (used to call other meta) 2018-01-27 11:07:45 +01:00
bnnm
ae2ba1bc29 Update read_key_file for variable-sized keys 2018-01-20 20:06:15 +01:00
bnnm
dfbeee2cf3 Improve/add streamfile custom IO (subfiles, decryption, etc)
Adds some special streamfiles that do custom IO, meant to be chained
together.
2018-01-20 00:54:08 +01:00
bnnm
927a3b5f39 Remove PROFILE_STREAMFILE to simplify further changes, not used anymore 2018-01-19 00:16:14 +01:00
bnnm
5c4351aa86 Add VGM_LOG/ASSERT_ONCE macro for useful-but-repetitive error logging 2017-11-23 23:46:33 +01:00
bnnm
dbbbfcc9f5 Make get_streamfile_dos_line read CR/LF too and rename accordingly
CR used in some Falcom looping files as separator
2017-11-23 22:53:43 +01:00
bnnm
801383382d Add util to open stream in the same dir 2017-11-05 17:05:39 +01:00
bnnm
1ff0cecca8 Fix minor compiler warnings (missing const/static/case defaults/etc) 2017-10-28 01:34:32 +02:00
bnnm
f4f920482a Unify open_stdio usage and add opening by FILE 2017-08-13 19:58:01 +02:00
bnnm
c5dbece5ac Add string reader util 2017-08-12 11:14:16 +02:00
bnnm
0a39d7636e Add helper functions to get file name/path/ext 2017-07-15 11:28:42 +02:00
derselbst
2b5a1a249f minor bug in check_extensions()
cmp_len might not become negative on LP64 machines, since sizeof(int)==32bit, but we were subtracting pointers (64bit) that will become positive forcing them to 32bit int
2017-05-27 11:38:09 +02:00
bnnm
fd72f6120a Adjust EOF reads; minor cleanup
When reading over filesize (buggy metas that request more samples than
possible) it returned inconsistent results under some
conditions/interleave sizes (the effect was minimal though)
2017-04-29 16:03:11 +02:00
bnnm
2ec41eb054 Add option to set if zero-sized chunks stop find_chunk (for XVAG) 2017-04-02 12:23:42 +02:00
bnnm
ae26d35f0c Improve handling of different lengths in check_extensions 2017-03-10 17:57:28 +01:00
bnnm
4673050fcb Add find_chunk with configurable endianness 2017-02-18 15:19:25 +01:00
bnnm
782c5927f6 Cache filesize and check when reading over filesize
Improves performance especially for buggy metas (before it would try to
fread every streamfile.read call when offset > filesize)
2017-01-15 20:58:47 +01:00
bnnm
48fa7b7dc0 Added a few helper functions
- open_stream_ext: opens a streamfile based on the filename + ext
- find_chunk_be/le: finds chunk_offset in chunked headers
2017-01-14 01:37:53 +01:00
bnnm
c68608149c Moved check_extensions/open_stream to streamfile.c/vgmstream.c 2017-01-14 00:59:54 +01:00
bnnm
76dc236b41 Added .pos support for .vgmstream (FFmpeg) files not directly supported
The format is LE 4+4 [loop_start loop_end], or LE 4+4+4 [loop_start
loop_end num_samples] when FFmpeg can't determine correctly num_samples
2016-12-11 13:05:54 +01:00
bnnm
f5e8e8ad8e Open key using streamFile, needed to allow user-defined callbacks 2016-11-27 22:42:42 +01:00
bnnm
5a1a122698 Util to read encryption keys from external file based on a songname
The format is "(songname.ext)key" (per song), "(.ext)key" (per folder)
2016-11-27 19:35:26 +01:00
Chris Moeller
3dda6329fc Add include for PATH_LIMIT macro 2014-08-02 20:50:47 -07:00
Chris Moeller
7425dc2aad Fixed remaining path limit issues 2014-08-02 20:32:30 -07:00
halleyscometsw
98ebe15f45 safer file name copies
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@990 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2012-08-21 15:34:10 +00:00
halleyscometsw
deee95ab68 a more accurate streamfile error profiling
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@546 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-12-31 18:44:08 +00:00
halleyscometsw
70c7fb1532 dos2unix
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@383 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-08-02 03:15:24 +00:00
halleyscometsw
875c0d1eae MUS Playlists! ARGH!
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@353 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-07-20 23:28:16 +00:00
halleyscometsw
b058236064 Add get_realname() to streamfile, so that we can get the plain name of the file even if the file names handled by the streamfile are encoded somehow. Needed for nwa.
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@306 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-07-11 08:29:04 +00:00
halleyscometsw
f944267644 add error counting with STREAMFILE_PROFILE
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@280 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-07-03 20:08:02 +00:00
fastelbja
b462417ddf add support for VPK + various fix on VAG + ADS
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@206 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-06-07 21:11:33 +00:00
paladine
110938668a Fix to not include missing unistd.h in the Microsoft compiler.
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@187 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-05-20 19:27:09 +00:00
halleyscometsw
57e227e4c1 "profiling" for STREAMFILE, to see how much is actually being read
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@186 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-05-20 18:56:44 +00:00
halleyscometsw
5d36d9105a clean up mingw issues
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@183 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-05-20 18:19:02 +00:00
paladine
3ae797a88a Changed STREAMFILE to be an abstract structure with function pointers for file operations. These changes have been done to support the audacious plugin which will use audacious-VFS I/O instead of stdio. The winamp plugin uses stdio, and has been tested and is working.
stdio optimizations include the prevention of 'doubly opening' a file.  If a file is opened that is already opened, the file handle is duplicated instead of using the normal fopen call.  

git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@180 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-05-20 15:18:38 +00:00
halleyscometsw
017b6e9e83 revert to rev 68
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@70 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-04-04 01:24:57 +00:00
unknownfile
91dbfd36f8 extension list moved to util.c, winamp plugin now loops indefinitely. will want to change later
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@69 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-04-03 23:50:06 +00:00
halleyscometsw
a198784654 Turned optimization back on and fixed additional warnings found (uninitialized variable use, mostly spurious).
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@34 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-02-15 18:49:59 +00:00
halleyscometsw
b3633585e1 Inlined some common stuff for speed.
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@4 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-01-31 22:26:11 +00:00
halleyscometsw
354d29cf92 Move things into src/
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@2 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-01-31 06:09:11 +00:00