summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/libmpeg3/libmpeg3.c
Side-by-side diff
Diffstat (limited to 'core/multimedia/opieplayer/libmpeg3/libmpeg3.c') (more/less context) (show whitespace changes)
-rw-r--r--core/multimedia/opieplayer/libmpeg3/libmpeg3.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/core/multimedia/opieplayer/libmpeg3/libmpeg3.c b/core/multimedia/opieplayer/libmpeg3/libmpeg3.c
index acaecf7..c8cd3e2 100644
--- a/core/multimedia/opieplayer/libmpeg3/libmpeg3.c
+++ b/core/multimedia/opieplayer/libmpeg3/libmpeg3.c
@@ -1,94 +1,94 @@
#include "libmpeg3.h"
#include "mpeg3protos.h"
#include <stdlib.h>
#include <string.h>
#define MAX(a, b) ((a) > (b) ? (a) : (b))
mpeg3_t* mpeg3_new(char *path)
{
int i;
mpeg3_t *file = (mpeg3_t*)calloc(1, sizeof(mpeg3_t));
file->cpus = 1;
file->fs = mpeg3_new_fs(path);
file->have_mmx = mpeg3_mmx_test();
file->demuxer = mpeg3_new_demuxer(file, 0, 0, -1);
return file;
}
int mpeg3_delete(mpeg3_t *file)
{
int i;
for(i = 0; i < file->total_vstreams; i++)
mpeg3_delete_vtrack(file, file->vtrack[i]);
for(i = 0; i < file->total_astreams; i++)
mpeg3_delete_atrack(file, file->atrack[i]);
mpeg3_delete_fs(file->fs);
mpeg3_delete_demuxer(file->demuxer);
free(file);
}
int mpeg3_check_sig(char *path)
{
mpeg3_fs_t *fs;
unsigned int bits;
char *ext;
int result = 0;
fs = mpeg3_new_fs(path);
if(mpeg3io_open_file(fs))
{
/* File not found */
- return 0;
+ return mpeg3_delete_fs(fs);
}
bits = mpeg3io_read_int32(fs);
/* Test header */
if(bits == MPEG3_TOC_PREFIX || bits == MPEG3_TOC_PREFIXLOWER)
{
result = 1;
}
else
if((((bits >> 24) & 0xff) == MPEG3_SYNC_BYTE) ||
(bits == MPEG3_PACK_START_CODE) ||
((bits & 0xfff00000) == 0xfff00000) ||
(bits == MPEG3_SEQUENCE_START_CODE) ||
(bits == MPEG3_PICTURE_START_CODE) ||
(((bits & 0xffff0000) >> 16) == MPEG3_AC3_START_CODE) ||
((bits >> 8) == MPEG3_ID3_PREFIX) ||
(bits == MPEG3_RIFF_CODE))
{
result = 1;
ext = strrchr(path, '.');
if(ext)
{
/* Test file extension. */
if(strncasecmp(ext, ".mp2", 4) &&
// strncasecmp(ext, ".mp3", 4) &&
strncasecmp(ext, ".m1v", 4) &&
strncasecmp(ext, ".m2v", 4) &&
strncasecmp(ext, ".m2s", 4) &&
strncasecmp(ext, ".mpg", 4) &&
strncasecmp(ext, ".vob", 4) &&
strncasecmp(ext, ".mpeg", 4) &&
strncasecmp(ext, ".ac3", 4))
result = 0;
}
}
mpeg3io_close_file(fs);
mpeg3_delete_fs(fs);
return result;
}
mpeg3_t* mpeg3_open_copy(char *path, mpeg3_t *old_file)
{
mpeg3_t *file = 0;
unsigned int bits;
int i, done;