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