libquicktime
lqt.h
Go to the documentation of this file.
1/*******************************************************************************
2 lqt.h
3
4 libquicktime - A library for reading and writing quicktime/avi/mp4 files.
5 http://libquicktime.sourceforge.net
6
7 Copyright (C) 2002 Heroine Virtual Ltd.
8 Copyright (C) 2002-2011 Members of the libquicktime project.
9
10 This library is free software; you can redistribute it and/or modify it under
11 the terms of the GNU Lesser General Public License as published by the Free
12 Software Foundation; either version 2.1 of the License, or (at your option)
13 any later version.
14
15 This library is distributed in the hope that it will be useful, but WITHOUT
16 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
18 details.
19
20 You should have received a copy of the GNU Lesser General Public License along
21 with this library; if not, write to the Free Software Foundation, Inc., 51
22 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23*******************************************************************************/
24
25#ifndef _LQT_H_
26#define _LQT_H_
27
28#include "quicktime.h"
29#include "lqt_atoms.h"
30#include "compression.h"
31#include "lqt_codecinfo.h"
32#include "lqt_qtvr.h"
33
34#ifdef __GNUC__
35#pragma GCC visibility push(default)
36#endif
37
38
39#ifdef __cplusplus
40extern "C" {
41#endif /* __cplusplus */
42
48void *lqt_bufalloc(size_t size);
49
50
51
59
60
73
85void lqt_set_audio_parameter(quicktime_t *file,int track, const char *key,const void *value);
86
98void lqt_set_video_parameter(quicktime_t *file,int track, const char *key,const void *value);
99
110int lqt_get_pixel_aspect(quicktime_t *file, int track, int * pixel_width,
111 int * pixel_height);
112
123int lqt_set_pixel_aspect(quicktime_t *file, int track, int pixel_width,
124 int pixel_height);
125
139
154
155
162
174
182
194
202
214void lqt_set_channel_setup(quicktime_t * file, int track, lqt_channel_t * ch);
215
227
228
261int lqt_add_text_track(quicktime_t * file, int timescale);
262
272void lqt_set_text_language(quicktime_t * file, int track, const char * language);
273
284void lqt_set_chapter_track(quicktime_t * file, int track);
285
295void lqt_set_text_box(quicktime_t * file, int track,
296 uint16_t top, uint16_t left,
297 uint16_t bottom, uint16_t right);
298
311void lqt_set_text_fg_color(quicktime_t * file, int track,
312 uint16_t r, uint16_t g,
313 uint16_t b, uint16_t a);
314
328void lqt_set_text_bg_color(quicktime_t * file, int track,
329 uint16_t r, uint16_t g,
330 uint16_t b, uint16_t a);
331
332
333
334
343int lqt_write_text(quicktime_t * file, int track, const char * text, int64_t duration);
344
363
374int lqt_get_text_language(quicktime_t * file, int track, char * language);
375
382int lqt_text_time_scale(quicktime_t * file, int track);
383
393void lqt_get_text_box(quicktime_t * file, int track,
394 uint16_t * top, uint16_t * left,
395 uint16_t * bottom, uint16_t * right);
396
397
412int lqt_read_text(quicktime_t * file, int track, char ** text, int * text_alloc,
413 int64_t * timestamp, int64_t * duration);
414
422int lqt_is_chapter_track(quicktime_t * file, int track);
423
430int64_t lqt_text_samples(quicktime_t * file, int track);
431
438void lqt_set_text_position(quicktime_t * file, int track, int64_t position);
439
450void lqt_set_text_time(quicktime_t * file, int track, int64_t time);
451
463void lqt_get_text_fg_color(quicktime_t * file, int track,
464 uint16_t * r, uint16_t * g,
465 uint16_t * b, uint16_t * a);
466
478void lqt_get_text_bg_color(quicktime_t * file, int track,
479 uint16_t * r, uint16_t * g,
480 uint16_t * b, uint16_t * a);
481
497#define LQT_TIMECODE_DROP 0x0001
498#define LQT_TIMECODE_24HMAX 0x0002
499#define LQT_TIMECODE_NEG_OK 0x0004
500#define LQT_TIMECODE_COUNTER 0x0008
501
514void lqt_add_timecode_track(quicktime_t * file, int track,
515 uint32_t flags, int framerate);
516
526void lqt_write_timecode(quicktime_t * file, int track,
527 uint32_t timecode);
528
540 uint32_t * flags, int * framerate);
541
556int lqt_read_timecode(quicktime_t * file, int track,
557 uint32_t * timecode);
558
570const char * lqt_get_timecode_tape_name(quicktime_t * file, int track);
571
583 const char * tapename);
584
594
604 int enabled);
605
612/***********************************************
613 * Advanced colormodel handling.
614 * (defined in lqt_color.c)
615 ***********************************************/
616
622#define LQT_COLORMODEL_NONE -1
623
624/* Colormodel <-> string conversion (used by registry file routines) */
625
632const char * lqt_colormodel_to_string(int colormodel);
633
640int lqt_string_to_colormodel(const char * str);
641
642/* Query information about the colormodel */
643
650int lqt_colormodel_is_planar(int colormodel);
651
658int lqt_colormodel_has_alpha(int colormodel);
659
666int lqt_colormodel_is_rgb(int colormodel);
667
674int lqt_colormodel_is_yuv(int colormodel);
675
684void lqt_colormodel_get_chroma_sub(int colormodel, int * sub_h, int * sub_v);
685
693
707void lqt_get_default_rowspan(int colormodel, int width, int * rowspan, int * rowspan_uv);
708
721int lqt_colormodel_has_conversion(int in_cmodel, int out_cmodel);
722
723/* Query supported colormodels */
724
731
737const char * lqt_get_colormodel_string(int index);
738
745int lqt_get_colormodel(int index);
746
758
770int lqt_get_best_source_colormodel(int const* source_options, int target);
771
783int lqt_get_best_target_colormodel(int source, int const* target_options);
784
801int lqt_get_best_colormodel(quicktime_t * file, int track, int * supported);
802
813int lqt_get_cmodel(quicktime_t * file, int track);
814
830uint8_t ** lqt_rows_alloc(int width, int height, int colormodel, int * rowspan, int * rowspan_uv);
831
845void lqt_rows_copy(uint8_t **out_rows, uint8_t **in_rows, int width, int height, int in_rowspan, int in_rowspan_uv,
846 int out_rowspan, int out_rowspan_uv, int colormodel);
847
867void lqt_rows_copy_sub(uint8_t **out_rows, uint8_t **in_rows,
868 int width, int height, int in_rowspan,
869 int in_rowspan_uv, int out_rowspan,
870 int out_rowspan_uv, int colormodel, int src_x, int src_y, int dst_x, int dst_y);
871
888void lqt_rows_clear(uint8_t **rows,
889 int width, int height, int rowspan, int rowspan_uv, int colormodel);
890
891
897void lqt_rows_free(uint8_t ** rows);
898
899
900/**************************************
901 * Set streams for encoding
902 **************************************/
903
917int lqt_set_audio(quicktime_t *file, int channels,
918 long sample_rate, int bits,
919 lqt_codec_info_t * codec_info);
920
921
939int lqt_set_video(quicktime_t *file, int tracks,
940 int frame_w, int frame_h,
941 int frame_duration, int timescale,
942 lqt_codec_info_t * codec_info);
943
944
962 int channels, long sample_rate, int bits,
963 lqt_codec_info_t * codec_info);
964
972int lqt_set_audio_codec(quicktime_t *file, int track,
973 lqt_codec_info_t * info);
974
975
986void lqt_set_audio_language(quicktime_t * file, int track, const char * language);
987
1007 int frame_w, int frame_h,
1008 int frame_duration, int timescale,
1009 lqt_codec_info_t * codec_info);
1010
1019 lqt_codec_info_t * info);
1020
1021
1040 int pass, int total_passes,
1041 const char * stats_file, int track);
1042
1050int64_t lqt_get_frame_time(quicktime_t * file, int track, int frame);
1051
1062int64_t lqt_frame_time(quicktime_t * file, int track);
1063
1078 unsigned char **row_pointers, int track);
1079
1098 uint8_t ** buffer, int * buffer_alloc,
1099 int64_t frame, int64_t * time, int track);
1100
1117 unsigned char **row_pointers,
1118 int track, int64_t time);
1119
1138 unsigned char **row_pointers,
1139 int track, int64_t time, int duration);
1140
1149int lqt_frame_duration(quicktime_t * file, int track, int *constant);
1150
1158int lqt_video_time_scale(quicktime_t * file, int track);
1159
1169int64_t lqt_video_duration(quicktime_t * file, int track);
1170
1185void lqt_set_cmodel(quicktime_t *file, int track, int colormodel);
1186
1194
1202long lqt_video_edit_duration(quicktime_t * file, int track, int entry_index);
1203
1211long lqt_video_edit_time(quicktime_t * file, int track, int entry_index);
1212
1220float lqt_video_edit_rate(quicktime_t * file, int track, int entry_index);
1221
1232void lqt_set_row_span(quicktime_t *file, int track, int row_span);
1233
1244void lqt_set_row_span_uv(quicktime_t *file, int track, int row_span_uv);
1245
1271 int16_t **output_i,
1272 float **output_f,
1273 long samples);
1274
1287int64_t lqt_last_audio_position(quicktime_t * file, int track);
1288
1303 int16_t **output_i,
1304 float **output_f,
1305 long samples,
1306 int track);
1307
1326 int16_t **output_i,
1327 float **output_f,
1328 long samples,
1329 int track);
1330
1331/*
1332 * Query the internal sample format. Works for decoding (call after quicktime_open)
1333 * and encoding (call after lqt_add_audio_track, lqt_set_audio or quicktime_set_audio).
1334 */
1335
1343
1356
1357/* The following return the actual number of en-/decoded frames */
1358
1376 void * output,
1377 long samples,
1378 int track);
1379
1391int lqt_get_audio_language(quicktime_t * file, int track, char * language);
1392
1393
1408 void * input,
1409 long samples,
1410 int track);
1411
1423void lqt_seek_video(quicktime_t * file, int track,
1424 int64_t time);
1425
1433
1441long lqt_audio_edit_duration(quicktime_t * file, int track, int entry_index);
1442
1450long lqt_audio_edit_time(quicktime_t * file, int track, int entry_index);
1451
1459float lqt_audio_edit_rate(quicktime_t * file, int track, int entry_index);
1460
1461/*
1462 * AVI Specific stuff
1463 */
1464
1472
1483int lqt_get_wav_id(quicktime_t *file, int track);
1484
1496
1497/* Extended metadata support */
1498
1505void lqt_set_album(quicktime_t *file, char *string);
1506
1513void lqt_set_artist(quicktime_t *file, char *string);
1514
1521void lqt_set_genre(quicktime_t *file, char *string);
1522
1530void lqt_set_track(quicktime_t *file, char *string);
1531
1538void lqt_set_comment(quicktime_t *file, char *string);
1539
1546void lqt_set_author(quicktime_t *file, char *string);
1547
1554void lqt_set_creation_time(quicktime_t *file, unsigned long time);
1555
1556
1564
1571
1579
1586
1594
1601
1608
1609/* get track number from track id */
1610int lqt_track_from_id(quicktime_t *file, int track_id);
1611
1619
1627
1628
1636quicktime_t * lqt_open_read(const char * filename);
1637
1647 quicktime_t * lqt_open_read_with_log(const char * filename, lqt_log_callback_t cb, void * log_data);
1648
1657quicktime_t * lqt_open_write(const char * filename, lqt_file_type_t type);
1658
1670 lqt_log_callback_t cb, void * log_data);
1671
1683void lqt_set_max_riff_size(quicktime_t * file, int size);
1684
1685
1693void lqt_set_audio_pts_offset(quicktime_t * file, int track, int64_t offset);
1694
1702int64_t lqt_get_audio_pts_offset(quicktime_t * file, int track);
1703
1711void lqt_set_video_pts_offset(quicktime_t * file, int track, int64_t offset);
1712
1720int64_t lqt_get_video_pts_offset(quicktime_t * file, int track);
1721
1729void lqt_set_text_pts_offset(quicktime_t * file, int track, int64_t offset);
1730
1738int64_t lqt_get_text_pts_offset(quicktime_t * file, int track);
1739
1740#ifdef __cplusplus
1741}
1742#endif /* __cplusplus */
1743
1744#ifdef __GNUC__
1745#pragma GCC visibility pop
1746#endif
1747
1748#endif
int lqt_total_channels(quicktime_t *file)
Get the total number of audio channels across all tracks.
long lqt_audio_edit_time(quicktime_t *file, int track, int entry_index)
Get the time offset of a audio track edit segment.
long lqt_audio_edit_duration(quicktime_t *file, int track, int entry_index)
Get the duration of a audio track edit segment.
int lqt_decode_audio(quicktime_t *file, int16_t **output_i, float **output_f, long samples)
Decode all channels from all tracks at once.
int lqt_decode_audio_raw(quicktime_t *file, void *output, long samples, int track)
Decode audio in the native sampleformat of the codec.
int64_t lqt_last_audio_position(quicktime_t *file, int track)
Get the position of the last decoded sample.
long lqt_audio_edit_list_total_entries(quicktime_t *file, int track)
Get the number of audio track edit segments.
float lqt_audio_edit_rate(quicktime_t *file, int track, int entry_index)
Get the rate of a audio track edit segment.
int64_t lqt_get_audio_pts_offset(quicktime_t *file, int track)
Get an audio pts offset.
int lqt_get_audio_language(quicktime_t *file, int track, char *language)
Get the audio language.
int lqt_decode_audio_track(quicktime_t *file, int16_t **output_i, float **output_f, long samples, int track)
Decode a number of audio samples.
void lqt_set_audio_pts_offset(quicktime_t *file, int track, int64_t offset)
Set an audio pts offset.
int lqt_encode_audio_raw(quicktime_t *file, void *input, long samples, int track)
Encode audio in the native sampleformat of the codec.
int lqt_add_audio_track(quicktime_t *file, int channels, long sample_rate, int bits, lqt_codec_info_t *codec_info)
Add an audio track for encoding.
int lqt_set_audio(quicktime_t *file, int channels, long sample_rate, int bits, lqt_codec_info_t *codec_info)
Set up audio tracks for encoding.
int lqt_encode_audio_track(quicktime_t *file, int16_t **output_i, float **output_f, long samples, int track)
Encode a number of audio samples for the first track.
int lqt_set_audio_codec(quicktime_t *file, int track, lqt_codec_info_t *info)
Set a codec for an audio track.
void lqt_set_audio_language(quicktime_t *file, int track, const char *language)
Set the audio language.
lqt_sample_format_t
Sample format definitions for audio.
Definition: quicktime.h:295
void lqt_set_audio_parameter(quicktime_t *file, int track, const char *key, const void *value)
Set a codec parameter for an audio track.
lqt_sample_format_t lqt_get_sample_format(quicktime_t *file, int track)
Return the sample format used natively by the codec.
const char * lqt_sample_format_to_string(lqt_sample_format_t sampleformat)
Get a human readable description for a sample format.
int lqt_colormodel_has_alpha(int colormodel)
Check if a colormodel has an alpha (transperency) channel.
const char * lqt_colormodel_to_string(int colormodel)
Convert a colormodel to a human readable string.
int lqt_colormodel_has_conversion(int in_cmodel, int out_cmodel)
Check if a colormodel conversion is supported by libquicktime.
int lqt_get_best_target_colormodel(int source, int const *target_options)
Select a target colormodel from a provided list that is best for conversion from a specified source c...
const char * lqt_get_colormodel_string(int index)
Get a colormodel string.
int lqt_num_colormodels()
Get number of supported colormodels.
int lqt_colormodel_is_video_range(int colormodel)
Check, if a colormodel is video range or full range.
int lqt_get_best_source_colormodel(int const *source_options, int target)
Select a source colormodel from a provided list that is best for conversion into a specified target c...
int lqt_colormodel_is_planar(int colormodel)
Check if a colormodel is planar.
int lqt_colormodel_is_yuv(int colormodel)
Check, if a colormodel is YUV based.
void lqt_colormodel_get_chroma_sub(int colormodel, int *sub_h, int *sub_v)
Get the chroma subsampling factors.
void lqt_get_default_rowspan(int colormodel, int width, int *rowspan, int *rowspan_uv)
Get the default row span for a colormodel and an image width.
int lqt_string_to_colormodel(const char *str)
Convert a description string to a colormodel.
int lqt_get_colormodel(int index)
Get a colormodel.
int lqt_colormodel_is_rgb(int colormodel)
Check, if a colormodel is RGB based.
void lqt_set_max_riff_size(quicktime_t *file, int size)
Set the segment size for ODML AVIs.
quicktime_t * lqt_open_write_with_log(const char *filename, lqt_file_type_t type, lqt_log_callback_t cb, void *log_data)
Open a file for writing.
quicktime_t * lqt_open_write(const char *filename, lqt_file_type_t type)
Open a file for writing.
lqt_file_type_t lqt_get_file_type(quicktime_t *file)
Get the filetype.
quicktime_t * lqt_open_read(const char *filename)
Open a file for reading.
int lqt_get_codec_api_version()
Get the codec API version.
quicktime_t * lqt_open_read_with_log(const char *filename, lqt_log_callback_t cb, void *log_data)
Open a file for reading.
int lqt_fileno(quicktime_t *file)
Return the raw filedescriptor associated with the file.
int lqt_get_wav_id(quicktime_t *file, int track)
Get the WAVE id of an audio track.
int lqt_is_avi(quicktime_t *file)
Query if the function is an AVI.
const char * lqt_file_type_to_string(lqt_file_type_t type)
Get a human readable filetype.
struct quicktime_s quicktime_t
Quicktime handle.
Definition: quicktime.h:313
void(* lqt_log_callback_t)(lqt_log_level_t level, const char *domain, const char *message, void *data)
Log callback.
Definition: quicktime.h:142
void lqt_set_log_callback(lqt_log_callback_t cb, void *data)
Set callback for global logging.
char * lqt_get_comment(quicktime_t *file)
Get the comment from the file.
void lqt_set_album(quicktime_t *file, char *string)
Set the album for the file.
void lqt_set_genre(quicktime_t *file, char *string)
Set the genre for the file.
void lqt_set_author(quicktime_t *file, char *string)
Set the author for the file.
unsigned long lqt_get_creation_time(quicktime_t *file)
Get the creation time from the file.
char * lqt_get_genre(quicktime_t *file)
Get the genre from the file.
void lqt_set_track(quicktime_t *file, char *string)
Set the track number for the file.
char * lqt_get_author(quicktime_t *file)
Get the author from the file.
char * lqt_get_album(quicktime_t *file)
Get the album from the file.
void lqt_set_comment(quicktime_t *file, char *string)
Set the comment for the file.
void lqt_set_artist(quicktime_t *file, char *string)
Set the artist for the file.
char * lqt_get_track(quicktime_t *file)
Get the track number from the file.
char * lqt_get_artist(quicktime_t *file)
Get the artist from the file.
void lqt_set_creation_time(quicktime_t *file, unsigned long time)
Set the creation time for the file.
void lqt_set_channel_setup(quicktime_t *file, int track, lqt_channel_t *ch)
Set a channel setup for an audio track.
const lqt_channel_t * lqt_get_channel_setup(quicktime_t *file, int track)
Get a channel setup from a file.
const char * lqt_channel_to_string(lqt_channel_t ch)
Convert a channel identifier to a human readnable string.
lqt_channel_t
Channel definitions.
Definition: quicktime.h:178
int lqt_is_chapter_track(quicktime_t *file, int track)
Check if a track is a chapter track.
int lqt_text_tracks(quicktime_t *file)
Get the number of text tracks.
void lqt_get_text_box(quicktime_t *file, int track, uint16_t *top, uint16_t *left, uint16_t *bottom, uint16_t *right)
Set the text box of a text track.
int lqt_read_text(quicktime_t *file, int track, char **text, int *text_alloc, int64_t *timestamp, int64_t *duration)
Read a text sample.
void lqt_set_text_time(quicktime_t *file, int track, int64_t time)
Go to a specific time.
int lqt_get_text_language(quicktime_t *file, int track, char *language)
Get the text language.
void lqt_get_text_fg_color(quicktime_t *file, int track, uint16_t *r, uint16_t *g, uint16_t *b, uint16_t *a)
Get the foreground color of a text track.
int64_t lqt_text_samples(quicktime_t *file, int track)
Get the total number of text samples.
void lqt_set_text_position(quicktime_t *file, int track, int64_t position)
Go to a specific sample.
void lqt_get_text_bg_color(quicktime_t *file, int track, uint16_t *r, uint16_t *g, uint16_t *b, uint16_t *a)
Get the background color of a text track.
int64_t lqt_get_text_pts_offset(quicktime_t *file, int track)
Get an video pts offset.
int lqt_text_time_scale(quicktime_t *file, int track)
Get the timescale for a text track.
void lqt_set_chapter_track(quicktime_t *file, int track)
Make a text track a chapter track.
void lqt_set_text_language(quicktime_t *file, int track, const char *language)
Set the language for a text track.
void lqt_set_text_box(quicktime_t *file, int track, uint16_t top, uint16_t left, uint16_t bottom, uint16_t right)
Set the text box of a text track.
void lqt_set_text_pts_offset(quicktime_t *file, int track, int64_t offset)
Set an video pts offset.
void lqt_set_text_fg_color(quicktime_t *file, int track, uint16_t r, uint16_t g, uint16_t b, uint16_t a)
Set the foreground color of a text track.
int lqt_add_text_track(quicktime_t *file, int timescale)
Add a text track.
int lqt_write_text(quicktime_t *file, int track, const char *text, int64_t duration)
Write a text sample.
void lqt_set_text_bg_color(quicktime_t *file, int track, uint16_t r, uint16_t g, uint16_t b, uint16_t a)
Set the background color of a text track.
int lqt_read_timecode(quicktime_t *file, int track, uint32_t *timecode)
Read the timecode for the next frame to be decoded.
void lqt_set_timecode_track_enabled(quicktime_t *file, int track, int enabled)
Enable or disable a timecode track.
void lqt_set_timecode_tape_name(quicktime_t *file, int track, const char *tapename)
Set the tapename for a timecode track.
void lqt_write_timecode(quicktime_t *file, int track, uint32_t timecode)
Write a timecode for the next video frame to be encoded.
const char * lqt_get_timecode_tape_name(quicktime_t *file, int track)
Get the tape name stored in a timecode track.
int lqt_has_timecode_track(quicktime_t *file, int track, uint32_t *flags, int *framerate)
Check, if a video track has timecodes.
int lqt_get_timecode_track_enabled(quicktime_t *file, int track)
Get the enabled flag of a timecode track.
void lqt_add_timecode_track(quicktime_t *file, int track, uint32_t flags, int framerate)
Attach a timecode track to a video track.
long lqt_video_edit_time(quicktime_t *file, int track, int entry_index)
Get the time offset of a video track edit segment.
lqt_interlace_mode_t lqt_get_interlace_mode(quicktime_t *file, int track)
Get the interlace mode.
long lqt_video_edit_duration(quicktime_t *file, int track, int entry_index)
Get the duration of a video track edit segment.
lqt_chroma_placement_t lqt_get_chroma_placement(quicktime_t *file, int track)
Get the chroma placement.
long lqt_video_edit_list_total_entries(quicktime_t *file, int track)
Get the number of video track edit segments.
int lqt_get_pixel_aspect(quicktime_t *file, int track, int *pixel_width, int *pixel_height)
Get the pixel aspect ratio of a video track.
float lqt_video_edit_rate(quicktime_t *file, int track, int entry_index)
Get the rate of a video track edit segment.
int lqt_get_decoder_colormodel(quicktime_t *file, int track)
Get the native colormodel of the decoder.
int lqt_frame_duration(quicktime_t *file, int track, int *constant)
Get the duration of the NEXT frame to be decoded.
int lqt_read_video_frame(quicktime_t *file, uint8_t **buffer, int *buffer_alloc, int64_t frame, int64_t *time, int track)
Read a compressed video frame.
int lqt_video_time_scale(quicktime_t *file, int track)
Get the timescale of the track.
void lqt_seek_video(quicktime_t *file, int track, int64_t time)
Seek to a specific video time.
int64_t lqt_video_duration(quicktime_t *file, int track)
Get the duration of a video track.
int64_t lqt_frame_time(quicktime_t *file, int track)
Get the timestamp of the next frame to be decoded.
int lqt_decode_video(quicktime_t *file, unsigned char **row_pointers, int track)
Decode one video frame.
int64_t lqt_get_video_pts_offset(quicktime_t *file, int track)
Get an video pts offset.
int64_t lqt_get_frame_time(quicktime_t *file, int track, int frame)
Get the timestamp of a given frame.
int lqt_encode_video_d(quicktime_t *file, unsigned char **row_pointers, int track, int64_t time, int duration)
Encode one video frame.
int lqt_set_pixel_aspect(quicktime_t *file, int track, int pixel_width, int pixel_height)
Set the pixel aspect ratio of a video track.
int lqt_set_video_codec(quicktime_t *file, int track, lqt_codec_info_t *info)
Set a codec for an audio track.
void lqt_set_video_pts_offset(quicktime_t *file, int track, int64_t offset)
Set an video pts offset.
int lqt_set_interlace_mode(quicktime_t *file, int track, lqt_interlace_mode_t mode)
Set the interlace mode.
int lqt_add_video_track(quicktime_t *file, int frame_w, int frame_h, int frame_duration, int timescale, lqt_codec_info_t *codec_info)
Add a video track for encoding.
int lqt_encode_video(quicktime_t *file, unsigned char **row_pointers, int track, int64_t time)
Encode one video frame.
int lqt_set_video(quicktime_t *file, int tracks, int frame_w, int frame_h, int frame_duration, int timescale, lqt_codec_info_t *codec_info)
Set up video tracks for encoding.
int lqt_set_video_pass(quicktime_t *file, int pass, int total_passes, const char *stats_file, int track)
Enable multipass encoding.
int lqt_get_best_colormodel(quicktime_t *file, int track, int *supported)
Get the best colormodel out of a list of supported colormodels.
void lqt_rows_clear(uint8_t **rows, int width, int height, int rowspan, int rowspan_uv, int colormodel)
Clear a video frame.
lqt_chroma_placement_t
Chroma placement.
Definition: quicktime.h:279
const char * lqt_chroma_placement_to_string(lqt_chroma_placement_t chroma_placement)
Convert a chroma placement to a human readable string.
const char * lqt_interlace_mode_to_string(lqt_interlace_mode_t mode)
Convert an interlace mode to a human readable string.
lqt_interlace_mode_t
interlace modes
Definition: quicktime.h:263
void lqt_set_row_span_uv(quicktime_t *file, int track, int row_span_uv)
Set the row span for the chroma planes.
void lqt_set_cmodel(quicktime_t *file, int track, int colormodel)
Set the colormodel for en-/decoding.
int lqt_get_cmodel(quicktime_t *file, int track)
Get the colormodel, which will be valid for the next en-/decode call.
void lqt_set_row_span(quicktime_t *file, int track, int row_span)
Set the row span for the luma plane.
void lqt_set_video_parameter(quicktime_t *file, int track, const char *key, const void *value)
Set a codec parameter for a video track.
void lqt_rows_free(uint8_t **rows)
Free a frame allocated by lqt_rows_alloc.
void lqt_rows_copy(uint8_t **out_rows, uint8_t **in_rows, int width, int height, int in_rowspan, int in_rowspan_uv, int out_rowspan, int out_rowspan_uv, int colormodel)
Copy a video frame.
void lqt_rows_copy_sub(uint8_t **out_rows, uint8_t **in_rows, int width, int height, int in_rowspan, int in_rowspan_uv, int out_rowspan, int out_rowspan_uv, int colormodel, int src_x, int src_y, int dst_x, int dst_y)
Copy a subrectangle video frame.
uint8_t ** lqt_rows_alloc(int width, int height, int colormodel, int *rowspan, int *rowspan_uv)
Allocate a frame buffer for use with libquicktime.
lqt_file_type_t
File types.
Definition: quicktime.h:155
Structure describing a codec.
Definition: lqt_codecinfo.h:190