Mercurial > libedl
annotate include/edl.h @ 8:0c98b46eaf73 v2.0
*: update API to 2.0, big changes
all APIs now use pointers to an EDL object. it is up to the
user to make sure that the pointer is valid.
additionally, many things have been separated into new files
to make it easier to digest
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Sun, 03 Mar 2024 17:56:58 -0500 |
parents | fee08fa622e1 |
children | 0cc2555db371 |
rev | line source |
---|---|
2
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
1 #ifndef __edl__edl_h |
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
2 #define __edl__edl_h |
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
3 |
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
4 #ifdef __cplusplus |
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
5 extern "C" { |
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
6 #endif |
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
7 |
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
8 #include <stdbool.h> /* C99 required */ |
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
9 #include <stddef.h> |
0 | 10 |
11 typedef enum { | |
2
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
12 MEDIATYPE_VIDEO, |
4
c2408abb258a
*: add dumping to string, rename EDL_file to EDL
Paper <mrpapersonic@gmail.com>
parents:
2
diff
changeset
|
13 MEDIATYPE_AUDIO, |
c2408abb258a
*: add dumping to string, rename EDL_file to EDL
Paper <mrpapersonic@gmail.com>
parents:
2
diff
changeset
|
14 MEDIATYPE_UNKNOWN |
8
0c98b46eaf73
*: update API to 2.0, big changes
Paper <paper@paper.us.eu.org>
parents:
7
diff
changeset
|
15 } EDL_media_type_t; |
0c98b46eaf73
*: update API to 2.0, big changes
Paper <paper@paper.us.eu.org>
parents:
7
diff
changeset
|
16 |
0c98b46eaf73
*: update API to 2.0, big changes
Paper <paper@paper.us.eu.org>
parents:
7
diff
changeset
|
17 typedef enum { |
0c98b46eaf73
*: update API to 2.0, big changes
Paper <paper@paper.us.eu.org>
parents:
7
diff
changeset
|
18 EDL_PARSE_ERROR_SUCCESS = 0, |
0c98b46eaf73
*: update API to 2.0, big changes
Paper <paper@paper.us.eu.org>
parents:
7
diff
changeset
|
19 EDL_PARSE_ERROR_OUT_OF_MEMORY |
0c98b46eaf73
*: update API to 2.0, big changes
Paper <paper@paper.us.eu.org>
parents:
7
diff
changeset
|
20 } EDL_parse_error_t; |
0 | 21 |
22 typedef struct { | |
23 int id; | |
24 int track; | |
25 double start_time; | |
26 double length; | |
27 double play_rate; | |
28 bool locked; | |
29 bool normalized; | |
30 int stretch_method; | |
31 bool looped; | |
32 bool on_ruler; | |
8
0c98b46eaf73
*: update API to 2.0, big changes
Paper <paper@paper.us.eu.org>
parents:
7
diff
changeset
|
33 EDL_media_type_t media_type; |
2
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
34 char* filename; |
0 | 35 int stream; |
36 double stream_start; | |
37 double stream_length; | |
38 double fade_time_in; | |
39 double fade_time_out; | |
40 double sustain_gain; | |
41 int curve_in; | |
42 double gain_in; | |
43 int curve_out; | |
44 double gain_out; | |
45 int layer; | |
46 int color; | |
47 int curve_in_r; | |
48 int curve_out_r; | |
49 double play_pitch; | |
50 bool lock_pitch; | |
51 int first_channel; | |
52 int channels; | |
53 } EDL_line; | |
54 | |
55 typedef struct { | |
2
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
56 EDL_line* arr; |
7
fee08fa622e1
automake: don't expose private strings API
Paper <mrpapersonic@gmail.com>
parents:
6
diff
changeset
|
57 size_t capacity; |
fee08fa622e1
automake: don't expose private strings API
Paper <mrpapersonic@gmail.com>
parents:
6
diff
changeset
|
58 size_t size; |
4
c2408abb258a
*: add dumping to string, rename EDL_file to EDL
Paper <mrpapersonic@gmail.com>
parents:
2
diff
changeset
|
59 } EDL; |
2
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
60 |
8
0c98b46eaf73
*: update API to 2.0, big changes
Paper <paper@paper.us.eu.org>
parents:
7
diff
changeset
|
61 EDL_parse_error_t EDL_parse(EDL* edl, const char* text, size_t length); |
6
7137fbac0b85
edl: expose EDL_reallocate() API to allow resizing the array
Paper <mrpapersonic@gmail.com>
parents:
4
diff
changeset
|
62 int EDL_reallocate(EDL* edl, size_t new_capacity); |
8
0c98b46eaf73
*: update API to 2.0, big changes
Paper <paper@paper.us.eu.org>
parents:
7
diff
changeset
|
63 char* EDL_dump(const EDL* edl); |
0c98b46eaf73
*: update API to 2.0, big changes
Paper <paper@paper.us.eu.org>
parents:
7
diff
changeset
|
64 void EDL_free(EDL* edl); |
2
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
65 |
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
66 #ifdef __cplusplus |
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
67 } |
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
68 #endif |
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
69 |
d00bc412900e
*: fix up lots of stuff and make the thing actually usable
Paper <mrpapersonic@gmail.com>
parents:
0
diff
changeset
|
70 #endif |