Mercurial > audlegacy-plugins
changeset 255:902605dec467 trunk
[svn] Port to NewVFS probe function.
author | chainsaw |
---|---|
date | Sat, 18 Nov 2006 11:20:57 -0800 |
parents | cdf9756d1528 |
children | acb93b546742 |
files | ChangeLog src/aac/src/libmp4.c |
diffstat | 2 files changed, 28 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sat Nov 18 11:00:22 2006 -0800 +++ b/ChangeLog Sat Nov 18 11:20:57 2006 -0800 @@ -1,3 +1,11 @@ +2006-11-18 19:00:22 +0000 Tony Vroon <chainsaw@gentoo.org> + revision [532] + Port to NewVFS file probe. + trunk/src/musepack/libmpc.cxx | 25 +++++++++++-------------- + trunk/src/musepack/libmpc.h | 2 +- + 2 files changed, 12 insertions(+), 15 deletions(-) + + 2006-11-18 18:02:24 +0000 Tony Vroon <chainsaw@gentoo.org> revision [524] Port to NewVFS file probe & add explicit cast to silence warning, thanks to spb.
--- a/src/aac/src/libmp4.c Sat Nov 18 11:00:22 2006 -0800 +++ b/src/aac/src/libmp4.c Sat Nov 18 11:20:57 2006 -0800 @@ -35,7 +35,7 @@ static void mp4_seek(int); static int mp4_getTime(void); static void mp4_cleanup(void); -static int mp4_IsOurFile(char *); +static int mp4_IsOurFD(char *, VFSFile *); static void mp4_getSongTitle(char *filename, char **, int *); static void* mp4Decode(void *); static TitleInput *mp4_get_song_tuple(char *); @@ -51,7 +51,7 @@ mp4_init, mp4_about, 0, // configuration - mp4_IsOurFile, + 0, 0, //scandir mp4_play, mp4_stop, @@ -70,6 +70,9 @@ 0, // info box 0, // to output plugin mp4_get_song_tuple, + 0, + 0, + mp4_IsOurFD, }; typedef struct _mp4cfg{ @@ -149,35 +152,26 @@ } } -static int mp4_IsOurFile(char *filename) +static int mp4_IsOurFD(char *filename, VFSFile* file) { - VFSFile *file; gchar* extension; gchar magic[8]; extension = strrchr(filename, '.'); - if ((file = vfs_fopen(filename, "rb"))) { - vfs_fread(magic, 1, 8, file); - if (!memcmp(magic, AAC_MAGIC, 4)) { - vfs_fclose(file); - return 1; - } - if (!memcmp(magic, "ID3", 3)) { // ID3 tag bolted to the front, obfuscated magic bytes - vfs_fclose(file); - if (extension &&( - !strcasecmp(extension, ".mp4") || // official extension - !strcasecmp(extension, ".m4a") || // Apple mp4 extension - !strcasecmp(extension, ".aac") // old MPEG2/4-AAC extension - )) - return 1; - else - return 0; - } - if (!memcmp(&magic[4], "ftyp", 4)) { - vfs_fclose(file); - return 1; - } - vfs_fclose(file); + vfs_fread(magic, 1, 8, file); + if (!memcmp(magic, AAC_MAGIC, 4)) + return 1; + if (!memcmp(&magic[4], "ftyp", 4)) + return 1; + if (!memcmp(magic, "ID3", 3)) { // ID3 tag bolted to the front, obfuscated magic bytes + if (extension &&( + !strcasecmp(extension, ".mp4") || // official extension + !strcasecmp(extension, ".m4a") || // Apple mp4 extension + !strcasecmp(extension, ".aac") // old MPEG2/4-AAC extension + )) + return 1; + else + return 0; } return 0; }