summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/libmpeg3/mpeg3vtrack.c
Unidiff
Diffstat (limited to 'core/multimedia/opieplayer/libmpeg3/mpeg3vtrack.c') (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/libmpeg3/mpeg3vtrack.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/core/multimedia/opieplayer/libmpeg3/mpeg3vtrack.c b/core/multimedia/opieplayer/libmpeg3/mpeg3vtrack.c
new file mode 100644
index 0000000..dffe9d0
--- a/dev/null
+++ b/core/multimedia/opieplayer/libmpeg3/mpeg3vtrack.c
@@ -0,0 +1,33 @@
1#include "libmpeg3.h"
2#include "mpeg3protos.h"
3
4#include <stdlib.h>
5
6mpeg3_vtrack_t* mpeg3_new_vtrack(mpeg3_t *file, int stream_id, mpeg3_demuxer_t *demuxer)
7{
8 int result = 0;
9 mpeg3_vtrack_t *new_vtrack;
10 new_vtrack = (mpeg3_vtrack_t*)calloc(1, sizeof(mpeg3_vtrack_t));
11 new_vtrack->demuxer = mpeg3_new_demuxer(file, 0, 1, stream_id);
12 if(demuxer) mpeg3demux_copy_titles(new_vtrack->demuxer, demuxer);
13 new_vtrack->current_position = 0;
14
15/* Get information about the track here. */
16 new_vtrack->video = mpeg3video_new(file, new_vtrack);
17 if(!new_vtrack->video)
18 {
19/* Failed */
20 mpeg3_delete_vtrack(file, new_vtrack);
21 new_vtrack = 0;
22 }
23 return new_vtrack;
24}
25
26int mpeg3_delete_vtrack(mpeg3_t *file, mpeg3_vtrack_t *vtrack)
27{
28 if(vtrack->video)
29 mpeg3video_delete(vtrack->video);
30 if(vtrack->demuxer)
31 mpeg3_delete_demuxer(vtrack->demuxer);
32 free(vtrack);
33}