gmerlin
edl.h
1 /*****************************************************************
2  * gmerlin - a general purpose multimedia framework and applications
3  *
4  * Copyright (c) 2001 - 2011 Members of the Gmerlin project
5  * gmerlin-general@lists.sourceforge.net
6  * http://gmerlin.sourceforge.net
7  *
8  * This program is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program. If not, see <http://www.gnu.org/licenses/>.
20  * *****************************************************************/
21 
22 #ifndef __BG_EDL_H_
23 #define __BG_EDL_H_
24 
25 #include <gmerlin/parameter.h>
26 #include <gmerlin/streaminfo.h>
27 
57 typedef struct bg_edl_s bg_edl_t;
58 
59 
63 typedef struct
64  {
65  char * url;
66 
67  int track;
68  int stream;
69  int timescale;
70 
71  int64_t src_time;
72 
73  /* Time and duration within the destination in destination
74  timescale */
75  int64_t dst_time;
76  int64_t dst_duration;
77 
78  /* */
79  int32_t speed_num;
80  int32_t speed_den;
82 
86 typedef struct
87  {
90  int timescale;
92 
96 typedef struct
97  {
98  char * name;
99 
100  gavl_metadata_t metadata;
101 
104 
107 
110 
113 
114  } bg_edl_track_t;
115 
119 struct bg_edl_s
120  {
123  char * url;
124  };
125 
131 
138 
145 
152 
159 
166 
173 
179 bg_edl_t * bg_edl_copy(const bg_edl_t * e);
180 
185 void bg_edl_destroy(bg_edl_t * e);
186 
193 void bg_edl_dump(const bg_edl_t * e);
194 
202 void bg_edl_save(const bg_edl_t * e, const char * filename);
203 
209 bg_edl_t * bg_edl_load(const char * filename);
210 
229  const bg_track_info_t * info, const char * url,
230  int index, int num_tracks, const char * name);
231 
237 #endif // __BG_EDL_H_