📄 lqt_funcprotos.h
字号:
int frame_w, int frame_h, int frame_duration, int time_scale, char *compressor);int quicktime_trak_init_audio(quicktime_t *file, quicktime_trak_t *trak, int channels, int sample_rate, int bits, char *compressor); int quicktime_trak_init_qtvr(quicktime_t *file, quicktime_trak_t *trak, int track_type, int width, int height, int timescale, int frame_duration);int quicktime_trak_init_text(quicktime_t * file, quicktime_trak_t * trak, int timescale);int quicktime_trak_init_tx3g(quicktime_t * file, quicktime_trak_t * trak, int timescale);int quicktime_trak_init_timecode(quicktime_t *file, quicktime_trak_t *trak, int time_scale, int frame_duration, int num_frames, int frame_w, int frame_h, uint32_t flags);int quicktime_trak_init_panorama(quicktime_t *file, quicktime_trak_t *trak, int width, int height, int timescale, int frame_duration);int quicktime_trak_delete(quicktime_trak_t *trak);int quicktime_trak_dump(quicktime_trak_t *trak);quicktime_trak_t* quicktime_add_trak(quicktime_t *file);int quicktime_delete_trak(quicktime_moov_t *moov);int quicktime_read_trak(quicktime_t *file, quicktime_trak_t *trak, quicktime_atom_t *trak_atom);int quicktime_write_trak(quicktime_t *file, quicktime_trak_t *trak);int64_t quicktime_track_samples(quicktime_t *file, quicktime_trak_t *trak);long quicktime_sample_of_chunk(quicktime_trak_t *trak, long chunk);/* translation.c */void lqt_translation_init();/* useratoms.c */LQT_EXTERN uint8_t *quicktime_user_atoms_get_atom(quicktime_user_atoms_t * u, char * name, uint32_t * len);LQT_EXTERN void quicktime_user_atoms_add_atom(quicktime_user_atoms_t * u, char * name, uint8_t * data, uint32_t len);void quicktime_user_atoms_read_atom(quicktime_t * file, quicktime_user_atoms_t * u, quicktime_atom_t * leaf_atom);void quicktime_user_atoms_delete(quicktime_user_atoms_t * u);void quicktime_write_user_atoms(quicktime_t * file, quicktime_user_atoms_t * u);void quicktime_user_atoms_dump(quicktime_user_atoms_t * u);/* For AVI */int quicktime_avg_chunk_samples(quicktime_t *file, quicktime_trak_t *trak);/* For seeking in CBR audio files: Get the chunk index for a specified sample. On return, chunk_sample will contain the first sample of the returned chunk */LQT_EXTERN int quicktime_chunk_of_sample(int64_t *chunk_sample, int64_t *chunk, quicktime_trak_t *trak, int64_t sample);int64_t quicktime_chunk_to_offset(quicktime_t *file, quicktime_trak_t *trak, long chunk);long quicktime_offset_to_chunk(int64_t *chunk_offset, quicktime_trak_t *trak, int64_t offset);int64_t quicktime_sample_range_size(quicktime_trak_t *trak, long chunk_sample, long sample);int64_t quicktime_sample_to_offset(quicktime_t *file, quicktime_trak_t *trak, long sample);LQT_EXTERN void quicktime_write_chunk_header(quicktime_t *file, quicktime_trak_t *trak, quicktime_atom_t *chunk);LQT_EXTERN void quicktime_write_chunk_footer(quicktime_t *file, quicktime_trak_t *trak, int current_chunk, quicktime_atom_t *chunk, int samples);int quicktime_trak_duration(quicktime_trak_t *trak, int64_t *duration, int *timescale);int quicktime_trak_fix_counts(quicktime_t *file, quicktime_trak_t *trak, int moov_time_scale);LQT_EXTERN long quicktime_chunk_samples(quicktime_trak_t *trak, long chunk);int quicktime_trak_shift_offsets(quicktime_trak_t *trak, int64_t offset);/* tcmi.c */void quicktime_read_tcmi(quicktime_t *file, quicktime_tcmi_t *tcmi);void quicktime_write_tcmi(quicktime_t *file, quicktime_tcmi_t *tcmi);void quicktime_tcmi_dump(quicktime_tcmi_t *tcmi);void quicktime_tcmi_delete(quicktime_tcmi_t *tcmi);void quicktime_tcmi_init(quicktime_tcmi_t *tcmi);/* timecode.c */void lqt_flush_timecode(quicktime_t * file, int track, int64_t time, int force);/* tmcd.c */void quicktime_tmcd_dump(quicktime_tmcd_t *tmcd);void quicktime_tmcd_init(quicktime_tmcd_t *tmcd);void quicktime_tmcd_delete(quicktime_tmcd_t *tmcd);void quicktime_read_tmcd(quicktime_t *file, quicktime_tmcd_t *tmcd, quicktime_atom_t *parent_atom);void quicktime_write_tmcd(quicktime_t *file, quicktime_tmcd_t *tmcd);/* tref.c */int quicktime_tref_init(quicktime_tref_t *tref);int quicktime_tref_delete(quicktime_tref_t *tref);void quicktime_tref_dump(quicktime_tref_t *tref);int quicktime_read_tref(quicktime_t *file, quicktime_tref_t *tref, quicktime_atom_t *tref_atom);void quicktime_write_tref(quicktime_t *file, quicktime_tref_t *tref);int quicktime_tref_init_qtvr(quicktime_tref_t *tref, int track_type);int quicktime_tref_init_chap(quicktime_tref_t * tref, int track_id);int quicktime_tref_init_tmcd(quicktime_tref_t * tref, int track_id);/* udta.c */int quicktime_udta_init(quicktime_udta_t *udta);int quicktime_udta_delete(quicktime_udta_t *udta);void quicktime_udta_dump(quicktime_udta_t *udta);int quicktime_read_udta(quicktime_t *file, quicktime_udta_t *udta, quicktime_atom_t *udta_atom);void quicktime_write_udta(quicktime_t *file, quicktime_udta_t *udta);int quicktime_set_udta_string(char **string, int *size, char *new_string);int quicktime_read_udta_string(quicktime_t *file, char **string, int *size, int ilst);intquicktime_write_udta_string(quicktime_t *file, const char * string, int ilst, lqt_charset_converter_t ** cnv);/* vmhd.c */void quicktime_vmhd_init(quicktime_vmhd_t *vmhd);void quicktime_vmhd_init_video(quicktime_t *file, quicktime_vmhd_t *vmhd, int frame_w, int frame_h, int frame_duration, int timescale);void quicktime_vmhd_delete(quicktime_vmhd_t *vmhd);void quicktime_vmhd_dump(quicktime_vmhd_t *vmhd);void quicktime_read_vmhd(quicktime_t *file, quicktime_vmhd_t *vmhd);void quicktime_write_vmhd(quicktime_t *file, quicktime_vmhd_t *vmhd);/* vrni.c */int quicktime_vrni_init(quicktime_vrni_t *vrni);int quicktime_vrni_delete(quicktime_vrni_t *vrni);void quicktime_vrni_dump(quicktime_vrni_t *vrni);int quicktime_read_vrni(quicktime_t *file, quicktime_vrni_t *vrni, quicktime_qtatom_t *vrni_atom);void quicktime_write_vrni(quicktime_t *file, quicktime_vrni_t *vrni);/* vrnp.c */int quicktime_vrnp_init(quicktime_vrnp_t *vrnp);int quicktime_vrnp_delete(quicktime_vrnp_t *vrnp);void quicktime_vrnp_dump(quicktime_vrnp_t *vrnp);int quicktime_read_vrnp(quicktime_t *file, quicktime_vrnp_t *vrnp, quicktime_qtatom_t *vrnp_atom);void quicktime_write_vrnp(quicktime_t *file, quicktime_vrnp_t *vrnp);/* vrsc.c */int quicktime_vrsc_init(quicktime_vrsc_t *vrsc);int quicktime_vrsc_delete(quicktime_vrsc_t *vrsc);void quicktime_vrsc_dump(quicktime_vrsc_t *vrsc);int quicktime_read_vrsc(quicktime_t *file, quicktime_vrsc_t *vrsc, quicktime_qtatom_t *vrsc_atom);void quicktime_write_vrsc(quicktime_t *file, quicktime_vrsc_t *vrsc);/* wave.c */void quicktime_read_wave(quicktime_t *file, quicktime_wave_t *wave, quicktime_atom_t *wave_atom);void quicktime_write_wave(quicktime_t *file, quicktime_wave_t *wave);void quicktime_wave_dump(quicktime_wave_t *wave);void quicktime_wave_delete(quicktime_wave_t *wave);LQT_EXTERN uint8_t * quicktime_wave_get_user_atom(quicktime_trak_t * trak, char * name, uint32_t * len);LQT_EXTERN void quicktime_wave_set_user_atom(quicktime_trak_t * trak, char * name, uint8_t * data, uint32_t len);/* util.c *//* Disk I/O */int64_t quicktime_get_file_length(const char *path);int quicktime_file_open(quicktime_t *file, const char *path, int rd, int wr);int quicktime_file_close(quicktime_t *file);int64_t quicktime_ftell(quicktime_t *file);int quicktime_fseek(quicktime_t *file, int64_t offset);LQT_EXTERN int quicktime_read_data(quicktime_t *file, uint8_t *data, int64_t size);LQT_EXTERN int quicktime_write_data(quicktime_t *file, const uint8_t *data, int size);int64_t quicktime_byte_position(quicktime_t *file);void quicktime_read_pascal(quicktime_t *file, char *data);void quicktime_write_pascal(quicktime_t *file, char *data);float quicktime_read_fixed32(quicktime_t *file);int quicktime_write_fixed32(quicktime_t *file, float number);float quicktime_read_float32(quicktime_t *file);double quicktime_read_double64(quicktime_t *file);int quicktime_write_float32(quicktime_t *file, float value);int quicktime_write_double64(quicktime_t *file, double value);int quicktime_write_int64(quicktime_t *file, int64_t value);int quicktime_write_int64_le(quicktime_t *file, int64_t value);int quicktime_write_int32(quicktime_t *file, long value);int quicktime_write_int32_le(quicktime_t *file, long value);int quicktime_write_char32(quicktime_t *file, char *string);float quicktime_read_fixed16(quicktime_t *file);int quicktime_write_fixed16(quicktime_t *file, float number);unsigned long quicktime_read_uint32(quicktime_t *file);long quicktime_read_int32(quicktime_t *file);long quicktime_read_int32_le(quicktime_t *file);int64_t quicktime_read_int64(quicktime_t *file);int64_t quicktime_read_int64_le(quicktime_t *file);long quicktime_read_int24(quicktime_t *file);int quicktime_write_int24(quicktime_t *file, long number);int quicktime_read_int16(quicktime_t *file);int quicktime_read_int16_le(quicktime_t *file);int quicktime_write_int16(quicktime_t *file, int number);int quicktime_write_int16_le(quicktime_t *file, int number);int quicktime_read_char(quicktime_t *file);int quicktime_write_char(quicktime_t *file, char x);void quicktime_read_char32(quicktime_t *file, char *string);int64_t quicktime_position(quicktime_t *file);int quicktime_set_position(quicktime_t *file, int64_t position);void quicktime_copy_char32(char *output, char *input);void quicktime_print_chars(char *desc, uint8_t *input, int len);unsigned long quicktime_current_time(void);LQT_EXTERN int quicktime_match_32(void *input, void *output);int quicktime_match_24(char *input, char *output);void lqt_hexdump(uint8_t * data, int len, int linebreak);void lqt_hexdump_stdout(uint8_t * data, int len, int linebreak);void lqt_dump_time(uint64_t t);/* lqt_quicktime.c */int quicktime_init(quicktime_t *file);quicktime_trak_t* quicktime_add_track(quicktime_t *);int quicktime_get_timescale(double frame_rate);int quicktime_init_audio_map(quicktime_t * file, quicktime_audio_map_t *atrack, quicktime_trak_t *trak, int encode, lqt_codec_info_t * info);int quicktime_delete_audio_map(quicktime_audio_map_t *atrack);int quicktime_init_video_map(quicktime_video_map_t *vtrack, quicktime_trak_t *trak, int encode, lqt_codec_info_t * info);int quicktime_delete_video_map(quicktime_video_map_t *vtrack);void quicktime_init_maps(quicktime_t * file);void lqt_update_frame_position(quicktime_video_map_t * track);LQT_EXTERN void lqt_start_audio_vbr_chunk(quicktime_t * file, int track);LQT_EXTERN void lqt_init_vbr_audio(quicktime_t * file, int track);LQT_EXTERN int lqt_chunk_of_sample_vbr(int64_t *chunk_sample, int64_t *chunk, quicktime_trak_t *trak, int64_t sample);/* Read all the information about the file. *//* Requires a MOOV atom be present in the file. *//* If no MOOV atom exists return 1 else return 0. */int quicktime_read_info(quicktime_t *file);/* * Set the default codec parameters from the registry * Works for reading and writing */void lqt_set_default_video_parameters(quicktime_t * file, int track);void lqt_set_default_audio_parameters(quicktime_t * file, int track);/* Before and after writing subsequent frames, we must call quicktime_write_chunk_[header|footer] */LQT_EXTERN void lqt_start_audio_vbr_frame(quicktime_t * file, int track);LQT_EXTERN void lqt_finish_audio_vbr_frame(quicktime_t * file, int track, int num_samples);/* * Convenience function: Returns an array of chunk sizes * for a track. This is expecially useful for compressing audio * codecs since the chunk size cannot quickly be determined from * the tables. * Call this function in the constructor of the codec and free() * the returned array, when it's no longer needed */int64_t * lqt_get_chunk_sizes(quicktime_t * file, quicktime_trak_t *trak);/* lqt_codecs.c */int quicktime_init_vcodec(quicktime_video_map_t *vtrack, int encode, lqt_codec_info_t * info);int quicktime_init_acodec(quicktime_audio_map_t *atrack, int encode, lqt_codec_info_t * info);int quicktime_delete_vcodec(quicktime_video_map_t *vtrack);int quicktime_delete_acodec(quicktime_audio_map_t *vtrack);int quicktime_codecs_flush(quicktime_t *file);/* workarounds.c */int64_t quicktime_add3(int64_t a, int64_t b, int64_t c);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -