Mercurial > libedl
view 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 |
line wrap: on
line source
#ifndef __edl__edl_h #define __edl__edl_h #ifdef __cplusplus extern "C" { #endif #include <stdbool.h> /* C99 required */ #include <stddef.h> typedef enum { MEDIATYPE_VIDEO, MEDIATYPE_AUDIO, MEDIATYPE_UNKNOWN } EDL_media_type_t; typedef enum { EDL_PARSE_ERROR_SUCCESS = 0, EDL_PARSE_ERROR_OUT_OF_MEMORY } EDL_parse_error_t; typedef struct { int id; int track; double start_time; double length; double play_rate; bool locked; bool normalized; int stretch_method; bool looped; bool on_ruler; EDL_media_type_t media_type; char* filename; int stream; double stream_start; double stream_length; double fade_time_in; double fade_time_out; double sustain_gain; int curve_in; double gain_in; int curve_out; double gain_out; int layer; int color; int curve_in_r; int curve_out_r; double play_pitch; bool lock_pitch; int first_channel; int channels; } EDL_line; typedef struct { EDL_line* arr; size_t capacity; size_t size; } EDL; EDL_parse_error_t EDL_parse(EDL* edl, const char* text, size_t length); int EDL_reallocate(EDL* edl, size_t new_capacity); char* EDL_dump(const EDL* edl); void EDL_free(EDL* edl); #ifdef __cplusplus } #endif #endif