summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/libmpeg3/mpeg3atrack.c
Unidiff
Diffstat (limited to 'core/multimedia/opieplayer/libmpeg3/mpeg3atrack.c') (more/less context) (show whitespace changes)
-rw-r--r--core/multimedia/opieplayer/libmpeg3/mpeg3atrack.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/core/multimedia/opieplayer/libmpeg3/mpeg3atrack.c b/core/multimedia/opieplayer/libmpeg3/mpeg3atrack.c
new file mode 100644
index 0000000..e1a900b
--- a/dev/null
+++ b/core/multimedia/opieplayer/libmpeg3/mpeg3atrack.c
@@ -0,0 +1,36 @@
1#include "libmpeg3.h"
2#include "mpeg3protos.h"
3
4#include <stdlib.h>
5
6mpeg3_atrack_t* mpeg3_new_atrack(mpeg3_t *file, int stream_id, int format, mpeg3_demuxer_t *demuxer)
7{
8 mpeg3_atrack_t *new_atrack;
9
10 new_atrack = (mpeg3_atrack_t*)calloc(1, sizeof(mpeg3_atrack_t));
11 new_atrack->channels = 0;
12 new_atrack->sample_rate = 0;
13 new_atrack->total_samples = 0;
14 new_atrack->current_position = 0;
15 new_atrack->demuxer = mpeg3_new_demuxer(file, 1, 0, stream_id);
16 if(demuxer) mpeg3demux_copy_titles(new_atrack->demuxer, demuxer);
17 new_atrack->audio = mpeg3audio_new(file, new_atrack, format);
18
19 if(!new_atrack->audio)
20 {
21/* Failed */
22 mpeg3_delete_atrack(file, new_atrack);
23 new_atrack = 0;
24 }
25 return new_atrack;
26}
27
28int mpeg3_delete_atrack(mpeg3_t *file, mpeg3_atrack_t *atrack)
29{
30 if(atrack->audio)
31 mpeg3audio_delete(atrack->audio);
32 if(atrack->demuxer)
33 mpeg3_delete_demuxer(atrack->demuxer);
34 free(atrack);
35}
36