#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
#ifdef _WIN32
#include <fcntl.h> 
#endif
 
int main(int argc, char **argv) {
        FILE* file;
        double length = 2; 
        double fps = 25;
        double sampleRate = 48000;
        char *filename;
 
        int total = 0;
 
        int vframe_cnt;
        int vframe_last;
 
 
        const char timezone[6] = "+0100";
 
 
 
        if (argc > 1) {
                filename = argv[1];
                if (argc > 2) {
                        sampleRate = atof(argv[2]);
                }
                if (argc > 3) {
                        fps = atof(argv[3]);
                }
                if (argc > 4) {
                        length = atof(argv[4]);
                }
        } else {
                printf("ltcencode - test/example application to encode LTC to a file\n\n");
                printf("Usage: ltcencode <filename> [sample rate [frame rate [duration in s]]]\n\n");
                printf("default-values:\n");
                printf(" sample rate: 48000.0 [SPS], frame rate: 25.0 [fps], duration: 2.0 [sec]\n");
                printf("Report bugs to Robin Gareus <robin@gareus.org>\n");
                return 1;
        }
 
#ifdef _WIN32
        
        
        _set_fmode(_O_BINARY);
#endif
 
        file = fopen(filename, "wb");
        if (!file) {
                fprintf(stderr, "Error: can not open file '%s' for writing.\n", filename);
                return 1;
        }
 
 
 
 
        printf("sample rate: %.2f\n", sampleRate);
        printf("frames/sec: %.2f\n", fps);
        printf("secs to write: %.2f\n", length);
        printf("sample format: 8bit unsigned mono\n");
 
        vframe_cnt = 0;
        vframe_last = length * fps;
 
        while (vframe_cnt++ < vframe_last) {
                int len;
 
 
 
                if (len > 0) {
                        total+=len;
                }
 
        }
        fclose(file);
 
        printf("Done: wrote %d samples to '%s'\n", total, filename);
 
        return 0;
}
libltc - en+decode linear timecode
void ltc_encoder_free(LTCEncoder *e)
unsigned char frame
sub-second frame 0..(FPS - 1)
Definition ltc.h:327
unsigned char ltcsnd_sample_t
Definition ltc.h:88
@ LTC_USE_DATE
LTCFrame <> SMPTETimecode converter and LTCFrame increment/decrement use date, also set BGF2 to '1' w...
Definition ltc.h:272
int ltc_encoder_inc_timecode(LTCEncoder *e)
void ltc_encoder_set_timecode(LTCEncoder *e, SMPTETimecode *t)
unsigned char months
valid months are 1..12
Definition ltc.h:321
unsigned char mins
minute 0..60
Definition ltc.h:325
struct LTCEncoder LTCEncoder
Definition ltc.h:346
unsigned char hours
hour 0..23
Definition ltc.h:324
void ltc_encoder_set_filter(LTCEncoder *e, double rise_time)
@ LTC_TV_625_50
25fps
Definition ltc.h:265
@ LTC_TV_525_60
30fps
Definition ltc.h:264
LTCEncoder * ltc_encoder_create(double sample_rate, double fps, enum LTC_TV_STANDARD standard, int flags)
int ltc_encoder_reinit(LTCEncoder *e, double sample_rate, double fps, enum LTC_TV_STANDARD standard, int flags)
unsigned char days
day of month 1..31
Definition ltc.h:322
char timezone[6]
the timezone 6bytes: "+HHMM" textual representation
Definition ltc.h:319
unsigned char secs
second 0..60
Definition ltc.h:326
int ltc_encoder_get_bufferptr(LTCEncoder *e, ltcsnd_sample_t **buf, int flush)
void ltc_encoder_encode_frame(LTCEncoder *e)
unsigned char years
LTC-date uses 2-digit year 00.99.
Definition ltc.h:320
int ltc_encoder_set_volume(LTCEncoder *e, double dBFS)
int ltc_encoder_set_buffersize(LTCEncoder *e, double sample_rate, double fps)