libquicktime

lqt_atoms.h

00001 /*******************************************************************************
00002  lqt_atoms.h
00003 
00004  libquicktime - A library for reading and writing quicktime/avi/mp4 files.
00005  http://libquicktime.sourceforge.net
00006 
00007  Copyright (C) 2002 Heroine Virtual Ltd.
00008  Copyright (C) 2002-2011 Members of the libquicktime project.
00009 
00010  This library is free software; you can redistribute it and/or modify it under
00011  the terms of the GNU Lesser General Public License as published by the Free
00012  Software Foundation; either version 2.1 of the License, or (at your option)
00013  any later version.
00014 
00015  This library is distributed in the hope that it will be useful, but WITHOUT
00016  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00017  FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
00018  details.
00019 
00020  You should have received a copy of the GNU Lesser General Public License along
00021  with this library; if not, write to the Free Software Foundation, Inc., 51
00022  Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00023 *******************************************************************************/
00024 
00025 #ifndef _LQT_ATOMS_H_
00026 #define _LQT_ATOMS_H_
00027 
00028 
00029 
00030 #ifdef __GNUC__
00031 #pragma GCC visibility push(default)
00032 #endif
00033 
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif /* __cplusplus */
00037 
00038 #define LQT_COLR_NCLC 0x6E636C63
00039 #define LQT_COLR_PROF 0x70726F66
00040 
00041 /* Fine tuning of quicktime atoms. Use with caution */
00042 
00070 int lqt_set_fiel(quicktime_t *file, int track, int nfields, int dominance);
00071 
00087 int lqt_get_fiel(quicktime_t *file, int track, int *nfields, int *dominance);
00088 
00089 /* pasp atom */
00090 
00094 typedef struct
00095 {
00097         int32_t hSpacing;
00099         int32_t vSpacing;
00100 } quicktime_pasp_t;
00101 
00109 int  lqt_set_pasp(quicktime_t *file, int track, quicktime_pasp_t *pasp);
00110 
00118 int  lqt_get_pasp(quicktime_t *file, int track, quicktime_pasp_t *pasp);
00119 
00123 typedef struct
00124 {
00126         int32_t cleanApertureWidthN;
00128         int32_t cleanApertureWidthD;
00130         int32_t cleanApertureHeightN;
00132         int32_t cleanApertureHeightD;
00134         int32_t horizOffN;
00136         int32_t horizOffD;
00138         int32_t vertOffN;
00140         int32_t vertOffD;
00141 } quicktime_clap_t;
00142 
00156 int  lqt_set_clap(quicktime_t *file, int track, quicktime_clap_t *clap);
00157 
00172 int  lqt_get_clap(quicktime_t *file, int track, quicktime_clap_t *clap);
00173 
00177 typedef struct
00178 {
00180         int32_t colorParamType;
00182         int16_t primaries;
00184         int16_t transferFunction;
00186         int16_t matrix;
00187 } quicktime_colr_t;
00188 
00202 int  lqt_set_colr(quicktime_t *file, int track, quicktime_colr_t *colr);
00203 
00217 int  lqt_get_colr(quicktime_t *file, int track, quicktime_colr_t *colr);
00218 
00219 #ifdef __cplusplus
00220 }
00221 #endif /* __cplusplus */
00222 
00223 #ifdef __GNUC__
00224 #pragma GCC visibility pop
00225 #endif
00226 
00227 #endif /* _LQT_ATOMS_H_ */