faac.h   faac.h 
skipping to change at line 19 skipping to change at line 19
* *
* This library is distributed in the hope that it will be useful, * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details. * Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software * License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A
* *
* $Id: faac.h,v 1.33 2004/07/04 12:12:05 corrados Exp $ * $Id: faac.h,v 1.36 2009/01/25 18:50:32 menno Exp $
*/ */
#ifndef _FAAC_H_ #ifndef _FAAC_H_
#define _FAAC_H_ #define _FAAC_H_
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
#ifdef WIN32 #if defined(_WIN32) && !defined(__MINGW32__)
# ifndef FAACAPI # ifndef FAACAPI
# define FAACAPI __stdcall # define FAACAPI __stdcall
# endif # endif
#else #else
# ifndef FAACAPI # ifndef FAACAPI
# define FAACAPI # define FAACAPI
# endif # endif
#endif #endif
#pragma pack(push, 1) #pragma pack(push, 1)
skipping to change at line 52 skipping to change at line 52
void *ptr; void *ptr;
char *name; char *name;
} }
psymodellist_t; psymodellist_t;
#include "faaccfg.h" #include "faaccfg.h"
typedef void *faacEncHandle; typedef void *faacEncHandle;
#ifndef HAVE_INT32_T #ifndef HAVE_INT32_T
typedef int int32_t; typedef signed int int32_t;
#endif #endif
/* /*
Allows an application to get FAAC version info. This is intended Allows an application to get FAAC version info. This is intended
purely for informative purposes. purely for informative purposes.
Returns FAAC_CFG_VERSION. Returns FAAC_CFG_VERSION.
*/ */
int FAACAPI faacEncGetVersion(char **faac_id_string, int FAACAPI faacEncGetVersion(char **faac_id_string,
char **faac_copyright_string); char **faac_copyright_string);
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 mp4.h   mp4.h 
skipping to change at line 16 skipping to change at line 16
* *
* Software distributed under the License is distributed on an "AS * Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing * implied. See the License for the specific language governing
* rights and limitations under the License. * rights and limitations under the License.
* *
* The Original Code is MPEG4IP. * The Original Code is MPEG4IP.
* *
* The Initial Developer of the Original Code is Cisco Systems Inc. * The Initial Developer of the Original Code is Cisco Systems Inc.
* Portions created by Cisco Systems Inc. are * Portions created by Cisco Systems Inc. are
* Copyright (C) Cisco Systems Inc. 2001 - 2004. All Rights Reserved. * Copyright (C) Cisco Systems Inc. 2001 - 2005. All Rights Reserved.
* *
* 3GPP features implementation is based on 3GPP's TS26.234-v5.60, * 3GPP features implementation is based on 3GPP's TS26.234-v5.60,
* and was contributed by Ximpo Group Ltd. * and was contributed by Ximpo Group Ltd.
* *
* Portions created by Ximpo Group Ltd. are * Portions created by Ximpo Group Ltd. are
* Copyright (C) Ximpo Group Ltd. 2003, 2004. All Rights Reserved. * Copyright (C) Ximpo Group Ltd. 2003, 2004. All Rights Reserved.
* *
* Contributor(s): * Contributor(s):
* Dave Mackie dmackie@cisco.com * Dave Mackie dmackie@cisco.com
* Alix Marchandise-Franquet alix@cisco.com * Alix Marchandise-Franquet alix@cisco.com
* Ximpo Group Ltd. mp4v2@ximpo.com * Ximpo Group Ltd. mp4v2@ximpo.com
* Bill May wmay@cisco.com
*/ */
#ifndef __MP4_INCLUDED__ #ifndef __MP4_INCLUDED__
#define __MP4_INCLUDED__ #define __MP4_INCLUDED__
/* include system and project specific headers */ /* include system and project specific headers */
#include "mpeg4ip.h" #include "mpeg4ip.h"
#include <math.h> /* to define float HUGE_VAL and/or NAN */ #include <math.h> /* to define float HUGE_VAL and/or NAN */
#ifndef NAN #ifndef NAN
#define NAN HUGE_VAL #define NAN HUGE_VAL
#endif #endif
#ifndef DEFAULT
#ifdef __cplusplus #ifdef __cplusplus
/* exploit C++ ability of default values for function parameters */ /* exploit C++ ability of default values for function parameters */
#define DEFAULT(x) =x #define DEFAULT(x) =x
#else #else
#define DEFAULT(x) #define DEFAULT(x)
#endif #endif
#endif
/* MP4 API types */ /* MP4 API types */
typedef void* MP4FileHandle; typedef void* MP4FileHandle;
typedef u_int32_t MP4TrackId; typedef u_int32_t MP4TrackId;
typedef u_int32_t MP4SampleId; typedef u_int32_t MP4SampleId;
typedef u_int64_t MP4Timestamp; typedef u_int64_t MP4Timestamp;
typedef u_int64_t MP4Duration; typedef u_int64_t MP4Duration;
typedef u_int32_t MP4EditId; typedef u_int32_t MP4EditId;
typedef u_int64_t (*VIRTUALIO_GETFILELENGTH)(void *user); // return file le
ngth in bytes
typedef int (*VIRTUALIO_SETPOSITION)(void *user, u_int64_t position); // re
turn 0 on success
typedef int (*VIRTUALIO_GETPOSITION)(void *user, u_int64_t *position); // f
ill position, return 0 on success
typedef size_t (*VIRTUALIO_READ)(void *user, void *buffer, size_t size); //
return number of bytes actually read
typedef size_t (*VIRTUALIO_WRITE)(void *user, void *buffer, size_t size); /
/ return number of bytes actually written
typedef int (*VIRTUALIO_ENDOFFILE)(void *user); // return 1 if file hit EOF
typedef int (*VIRTUALIO_CLOSE)(void *user); // return 0 on success
typedef struct Virtual_IO
{
VIRTUALIO_GETFILELENGTH GetFileLength;
VIRTUALIO_SETPOSITION SetPosition;
VIRTUALIO_GETPOSITION GetPosition;
VIRTUALIO_READ Read;
VIRTUALIO_WRITE Write;
VIRTUALIO_ENDOFFILE EndOfFile;
VIRTUALIO_CLOSE Close;
} Virtual_IO_t;
/* Invalid values for API types */ /* Invalid values for API types */
#define MP4_INVALID_FILE_HANDLE ((MP4FileHandle)NULL) #define MP4_INVALID_FILE_HANDLE ((MP4FileHandle)NULL)
#define MP4_INVALID_TRACK_ID ((MP4TrackId)0) #define MP4_INVALID_TRACK_ID ((MP4TrackId)0)
#define MP4_INVALID_SAMPLE_ID ((MP4SampleId)0) #define MP4_INVALID_SAMPLE_ID ((MP4SampleId)0)
#define MP4_INVALID_TIMESTAMP ((MP4Timestamp)-1) #define MP4_INVALID_TIMESTAMP ((MP4Timestamp)-1)
#define MP4_INVALID_DURATION ((MP4Duration)-1) #define MP4_INVALID_DURATION ((MP4Duration)-1)
#define MP4_INVALID_EDIT_ID ((MP4EditId)0) #define MP4_INVALID_EDIT_ID ((MP4EditId)0)
/* Macros to test for API type validity */ /* Macros to test for API type validity */
#define MP4_IS_VALID_FILE_HANDLE(x) ((x) != MP4_INVALID_FILE_HANDLE) #define MP4_IS_VALID_FILE_HANDLE(x) ((x) != MP4_INVALID_FILE_HANDLE)
skipping to change at line 101 skipping to change at line 122
* MP4 Known track type names - e.g. MP4GetNumberOfTracks(type) * MP4 Known track type names - e.g. MP4GetNumberOfTracks(type)
* *
* Note this first group of track types should be created * Note this first group of track types should be created
* via the MP4Add<Type>Track() functions, and not MP4AddTrack(type) * via the MP4Add<Type>Track() functions, and not MP4AddTrack(type)
*/ */
#define MP4_OD_TRACK_TYPE "odsm" #define MP4_OD_TRACK_TYPE "odsm"
#define MP4_SCENE_TRACK_TYPE "sdsm" #define MP4_SCENE_TRACK_TYPE "sdsm"
#define MP4_AUDIO_TRACK_TYPE "soun" #define MP4_AUDIO_TRACK_TYPE "soun"
#define MP4_VIDEO_TRACK_TYPE "vide" #define MP4_VIDEO_TRACK_TYPE "vide"
#define MP4_HINT_TRACK_TYPE "hint" #define MP4_HINT_TRACK_TYPE "hint"
#define MP4_CNTL_TRACK_TYPE "cntl"
#define MP4_TEXT_TRACK_TYPE "text"
/* /*
* This second set of track types should be created * This second set of track types should be created
* via MP4AddSystemsTrack(type) * via MP4AddSystemsTrack(type)
*/ */
#define MP4_CLOCK_TRACK_TYPE "crsm" #define MP4_CLOCK_TRACK_TYPE "crsm"
#define MP4_MPEG7_TRACK_TYPE "m7sm" #define MP4_MPEG7_TRACK_TYPE "m7sm"
#define MP4_OCI_TRACK_TYPE "ocsm" #define MP4_OCI_TRACK_TYPE "ocsm"
#define MP4_IPMP_TRACK_TYPE "ipsm" #define MP4_IPMP_TRACK_TYPE "ipsm"
#define MP4_MPEGJ_TRACK_TYPE "mjsm" #define MP4_MPEGJ_TRACK_TYPE "mjsm"
#define MP4_IS_VIDEO_TRACK_TYPE(type) \ #define MP4_IS_VIDEO_TRACK_TYPE(type) \
(!strcasecmp(type, MP4_VIDEO_TRACK_TYPE)) (!strcasecmp(type, MP4_VIDEO_TRACK_TYPE))
#define MP4_IS_AUDIO_TRACK_TYPE(type) \ #define MP4_IS_AUDIO_TRACK_TYPE(type) \
(!strcasecmp(type, MP4_AUDIO_TRACK_TYPE)) (!strcasecmp(type, MP4_AUDIO_TRACK_TYPE))
#define MP4_IS_CNTL_TRACK_TYPE(type) \
(!strcasecmp(type, MP4_CNTL_TRACK_TYPE))
#define MP4_IS_OD_TRACK_TYPE(type) \ #define MP4_IS_OD_TRACK_TYPE(type) \
(!strcasecmp(type, MP4_OD_TRACK_TYPE)) (!strcasecmp(type, MP4_OD_TRACK_TYPE))
#define MP4_IS_SCENE_TRACK_TYPE(type) \ #define MP4_IS_SCENE_TRACK_TYPE(type) \
(!strcasecmp(type, MP4_SCENE_TRACK_TYPE)) (!strcasecmp(type, MP4_SCENE_TRACK_TYPE))
#define MP4_IS_HINT_TRACK_TYPE(type) \ #define MP4_IS_HINT_TRACK_TYPE(type) \
(!strcasecmp(type, MP4_HINT_TRACK_TYPE)) (!strcasecmp(type, MP4_HINT_TRACK_TYPE))
#define MP4_IS_SYSTEMS_TRACK_TYPE(type) \ #define MP4_IS_SYSTEMS_TRACK_TYPE(type) \
skipping to change at line 158 skipping to change at line 184
#define MP4_ULAW_AUDIO_TYPE 0xE4 /* a private definition */ #define MP4_ULAW_AUDIO_TYPE 0xE4 /* a private definition */
#define MP4_G723_AUDIO_TYPE 0xE5 /* a privat e definition */ #define MP4_G723_AUDIO_TYPE 0xE5 /* a privat e definition */
#define MP4_PCM16_BIG_ENDIAN_AUDIO_TYPE 0xE6 /* a private definitio n */ #define MP4_PCM16_BIG_ENDIAN_AUDIO_TYPE 0xE6 /* a private definitio n */
/* MP4 MPEG-4 Audio types from 14496-3 Table 1.5.1 */ /* MP4 MPEG-4 Audio types from 14496-3 Table 1.5.1 */
#define MP4_MPEG4_INVALID_AUDIO_TYPE 0 #define MP4_MPEG4_INVALID_AUDIO_TYPE 0
#define MP4_MPEG4_AAC_MAIN_AUDIO_TYPE 1 #define MP4_MPEG4_AAC_MAIN_AUDIO_TYPE 1
#define MP4_MPEG4_AAC_LC_AUDIO_TYPE 2 #define MP4_MPEG4_AAC_LC_AUDIO_TYPE 2
#define MP4_MPEG4_AAC_SSR_AUDIO_TYPE 3 #define MP4_MPEG4_AAC_SSR_AUDIO_TYPE 3
#define MP4_MPEG4_AAC_LTP_AUDIO_TYPE 4 #define MP4_MPEG4_AAC_LTP_AUDIO_TYPE 4
#define MP4_MPEG4_AAC_HE_AUDIO_TYPE 5
#define MP4_MPEG4_AAC_SCALABLE_AUDIO_TYPE 6 #define MP4_MPEG4_AAC_SCALABLE_AUDIO_TYPE 6
#define MP4_MPEG4_CELP_AUDIO_TYPE 8 #define MP4_MPEG4_CELP_AUDIO_TYPE 8
#define MP4_MPEG4_HVXC_AUDIO_TYPE 9 #define MP4_MPEG4_HVXC_AUDIO_TYPE 9
#define MP4_MPEG4_TTSI_AUDIO_TYPE 12 #define MP4_MPEG4_TTSI_AUDIO_TYPE 12
#define MP4_MPEG4_MAIN_SYNTHETIC_AUDIO_TYPE 13 #define MP4_MPEG4_MAIN_SYNTHETIC_AUDIO_TYPE 13
#define MP4_MPEG4_WAVETABLE_AUDIO_TYPE 14 #define MP4_MPEG4_WAVETABLE_AUDIO_TYPE 14
#define MP4_MPEG4_MIDI_AUDIO_TYPE 15 #define MP4_MPEG4_MIDI_AUDIO_TYPE 15
#define MP4_MPEG4_ALGORITHMIC_FX_AUDIO_TYPE 16 #define MP4_MPEG4_ALGORITHMIC_FX_AUDIO_TYPE 16
#define MP4_MPEG4_ALS_AUDIO_TYPE 31
#define MP4_MPEG4_LAYER1_AUDIO_TYPE 32
#define MP4_MPEG4_LAYER2_AUDIO_TYPE 33
#define MP4_MPEG4_LAYER3_AUDIO_TYPE 34
#define MP4_MPEG4_SLS_AUDIO_TYPE 35
/* MP4 Audio type utilities following common usage */ /* MP4 Audio type utilities following common usage */
#define MP4_IS_MP3_AUDIO_TYPE(type) \ #define MP4_IS_MP3_AUDIO_TYPE(type) \
((type) == MP4_MPEG1_AUDIO_TYPE || (type) == MP4_MPEG2_AUDIO_TYPE) ((type) == MP4_MPEG1_AUDIO_TYPE || (type) == MP4_MPEG2_AUDIO_TYPE)
#define MP4_IS_MPEG2_AAC_AUDIO_TYPE(type) \ #define MP4_IS_MPEG2_AAC_AUDIO_TYPE(type) \
(((type) >= MP4_MPEG2_AAC_MAIN_AUDIO_TYPE \ (((type) >= MP4_MPEG2_AAC_MAIN_AUDIO_TYPE \
&& (type) <= MP4_MPEG2_AAC_SSR_AUDIO_TYPE)) && (type) <= MP4_MPEG2_AAC_SSR_AUDIO_TYPE))
#define MP4_IS_MPEG4_AAC_AUDIO_TYPE(mpeg4Type) \ #define MP4_IS_MPEG4_AAC_AUDIO_TYPE(mpeg4Type) \
(((mpeg4Type) >= MP4_MPEG4_AAC_MAIN_AUDIO_TYPE \ (((mpeg4Type) >= MP4_MPEG4_AAC_MAIN_AUDIO_TYPE \
&& (mpeg4Type) <= MP4_MPEG4_AAC_LTP_AUDIO_TYPE) \ && (mpeg4Type) <= MP4_MPEG4_AAC_HE_AUDIO_TYPE) \
|| (mpeg4Type) == MP4_MPEG4_AAC_SCALABLE_AUDIO_TYPE \ || (mpeg4Type) == MP4_MPEG4_AAC_SCALABLE_AUDIO_TYPE \
|| (mpeg4Type) == 17) || (mpeg4Type) == 17)
#define MP4_IS_AAC_AUDIO_TYPE(type) \ #define MP4_IS_AAC_AUDIO_TYPE(type) \
(MP4_IS_MPEG2_AAC_AUDIO_TYPE(type) \ (MP4_IS_MPEG2_AAC_AUDIO_TYPE(type) \
|| (type) == MP4_MPEG4_AUDIO_TYPE) || (type) == MP4_MPEG4_AUDIO_TYPE)
/* MP4 Video track types - see MP4AddVideoTrack() */ /* MP4 Video track types - see MP4AddVideoTrack() */
#define MP4_INVALID_VIDEO_TYPE 0x00 #define MP4_INVALID_VIDEO_TYPE 0x00
#define MP4_MPEG1_VIDEO_TYPE 0x6A #define MP4_MPEG1_VIDEO_TYPE 0x6A
skipping to change at line 199 skipping to change at line 231
#define MP4_MPEG2_MAIN_VIDEO_TYPE 0x61 #define MP4_MPEG2_MAIN_VIDEO_TYPE 0x61
#define MP4_MPEG2_SNR_VIDEO_TYPE 0x62 #define MP4_MPEG2_SNR_VIDEO_TYPE 0x62
#define MP4_MPEG2_SPATIAL_VIDEO_TYPE 0x63 #define MP4_MPEG2_SPATIAL_VIDEO_TYPE 0x63
#define MP4_MPEG2_HIGH_VIDEO_TYPE 0x64 #define MP4_MPEG2_HIGH_VIDEO_TYPE 0x64
#define MP4_MPEG2_442_VIDEO_TYPE 0x65 #define MP4_MPEG2_442_VIDEO_TYPE 0x65
#define MP4_MPEG2_VIDEO_TYPE MP4_MPEG2_MAIN_VIDEO_TYPE #define MP4_MPEG2_VIDEO_TYPE MP4_MPEG2_MAIN_VIDEO_TYPE
#define MP4_MPEG4_VIDEO_TYPE 0x20 #define MP4_MPEG4_VIDEO_TYPE 0x20
#define MP4_JPEG_VIDEO_TYPE 0x6C #define MP4_JPEG_VIDEO_TYPE 0x6C
#define MP4_PRIVATE_VIDEO_TYPE 0xD0 #define MP4_PRIVATE_VIDEO_TYPE 0xD0
#define MP4_YUV12_VIDEO_TYPE 0xF0 /* a private definit ion */ #define MP4_YUV12_VIDEO_TYPE 0xF0 /* a private definit ion */
#define MP4_H264_VIDEO_TYPE 0xF1 /* a private definition */
#define MP4_H263_VIDEO_TYPE 0xF2 /* a private definition */ #define MP4_H263_VIDEO_TYPE 0xF2 /* a private definition */
#define MP4_H261_VIDEO_TYPE 0xF3 /* a private definition */ #define MP4_H261_VIDEO_TYPE 0xF3 /* a private definition */
/* MP4 Video type utilities */ /* MP4 Video type utilities */
#define MP4_IS_MPEG1_VIDEO_TYPE(type) \ #define MP4_IS_MPEG1_VIDEO_TYPE(type) \
((type) == MP4_MPEG1_VIDEO_TYPE) ((type) == MP4_MPEG1_VIDEO_TYPE)
#define MP4_IS_MPEG2_VIDEO_TYPE(type) \ #define MP4_IS_MPEG2_VIDEO_TYPE(type) \
(((type) >= MP4_MPEG2_SIMPLE_VIDEO_TYPE \ (((type) >= MP4_MPEG2_SIMPLE_VIDEO_TYPE \
&& (type) <= MP4_MPEG2_442_VIDEO_TYPE) \ && (type) <= MP4_MPEG2_442_VIDEO_TYPE) \
skipping to change at line 291 skipping to change at line 322
/* file operations */ /* file operations */
#define MP4_CREATE_64BIT_DATA (0x01) #define MP4_CREATE_64BIT_DATA (0x01)
#define MP4_CREATE_64BIT_TIME (0x02) // Quicktime is not compatible with th is #define MP4_CREATE_64BIT_TIME (0x02) // Quicktime is not compatible with th is
#define MP4_CREATE_64BIT (MP4_CREATE_64BIT_DATA | MP4_CREATE_64BIT_TIME) #define MP4_CREATE_64BIT (MP4_CREATE_64BIT_DATA | MP4_CREATE_64BIT_TIME)
#define MP4_CREATE_EXTENSIBLE_FORMAT (0x04) #define MP4_CREATE_EXTENSIBLE_FORMAT (0x04)
MP4FileHandle MP4Create( MP4FileHandle MP4Create(
const char* fileName, const char* fileName,
u_int32_t verbosity DEFAULT(0), u_int32_t verbosity DEFAULT(0),
u_int32_t flags DEFAULT(0)); u_int32_t flags DEFAULT(0));
MP4FileHandle MP4CreateEx( MP4FileHandle MP4CreateEx(
const char* fileName, const char *fileName,
u_int32_t verbosity DEFAULT(0), u_int32_t verbosity DEFAULT(0),
u_int32_t flags DEFAULT(0), u_int32_t flags DEFAULT(0),
char* majorBrand DEFAULT(0), int add_ftyp DEFAULT(1),
u_int32_t minorVersion DEFAULT(0), int add_iods DEFAULT(1),
char** supportedBrands DEFAULT(0), char* majorBrand DEFAULT(0),
u_int32_t supportedBrandsCount DEFAULT(0)); u_int32_t minorVersion DEFAULT(0),
char** supportedBrands DEFAULT(0),
u_int32_t supportedBrandsCount DEFAULT(0));
MP4FileHandle MP4Modify( MP4FileHandle MP4Modify(
const char* fileName, const char* fileName,
u_int32_t verbosity DEFAULT(0), u_int32_t verbosity DEFAULT(0),
u_int32_t flags DEFAULT(0)); u_int32_t flags DEFAULT(0));
MP4FileHandle MP4Read( MP4FileHandle MP4Read(
const char* fileName, const char* fileName,
u_int32_t verbosity DEFAULT(0)); u_int32_t verbosity DEFAULT(0));
bool MP4Close( // benski>
MP4FileHandle MP4ReadEx(const char* fileName,
void *user,
Virtual_IO_t *virtual_IO,
u_int32_t verbosity DEFAULT(0));
void MP4Close(
MP4FileHandle hFile); MP4FileHandle hFile);
bool MP4Optimize( bool MP4Optimize(
const char* existingFileName, const char* existingFileName,
const char* newFileName DEFAULT(NULL), const char* newFileName DEFAULT(NULL),
u_int32_t verbosity DEFAULT(0)); u_int32_t verbosity DEFAULT(0));
bool MP4Dump( bool MP4Dump(
MP4FileHandle hFile, MP4FileHandle hFile,
FILE* pDumpFile DEFAULT(NULL), FILE* pDumpFile DEFAULT(NULL),
skipping to change at line 337 skipping to change at line 375
char* MP4FileInfo( char* MP4FileInfo(
const char* fileName, const char* fileName,
MP4TrackId trackId DEFAULT(MP4_INVALID_TRACK_ID)); MP4TrackId trackId DEFAULT(MP4_INVALID_TRACK_ID));
/* file properties */ /* file properties */
/* specific file properties */ /* specific file properties */
u_int32_t MP4GetVerbosity(MP4FileHandle hFile); u_int32_t MP4GetVerbosity(MP4FileHandle hFile);
bool MP4SetVerbosity(MP4FileHandle hFile, u_int32_t verbosity); void MP4SetVerbosity(MP4FileHandle hFile, u_int32_t verbosity);
MP4Duration MP4GetDuration(MP4FileHandle hFile); MP4Duration MP4GetDuration(MP4FileHandle hFile);
u_int32_t MP4GetTimeScale(MP4FileHandle hFile); u_int32_t MP4GetTimeScale(MP4FileHandle hFile);
bool MP4SetTimeScale(MP4FileHandle hFile, u_int32_t value); bool MP4SetTimeScale(MP4FileHandle hFile, u_int32_t value);
u_int8_t MP4GetODProfileLevel(MP4FileHandle hFile); u_int8_t MP4GetODProfileLevel(MP4FileHandle hFile);
bool MP4SetODProfileLevel(MP4FileHandle hFile, u_int8_t value); bool MP4SetODProfileLevel(MP4FileHandle hFile, u_int8_t value);
u_int8_t MP4GetSceneProfileLevel(MP4FileHandle hFile); u_int8_t MP4GetSceneProfileLevel(MP4FileHandle hFile);
bool MP4SetSceneProfileLevel(MP4FileHandle hFile, u_int8_t value); bool MP4SetSceneProfileLevel(MP4FileHandle hFile, u_int8_t value);
u_int8_t MP4GetVideoProfileLevel(MP4FileHandle hFile); u_int8_t MP4GetVideoProfileLevel(MP4FileHandle hFile,
MP4TrackId trackId DEFAULT(MP4_INVALID_TRAC
K_ID));
bool MP4SetVideoProfileLevel(MP4FileHandle hFile, u_int8_t value); void MP4SetVideoProfileLevel(MP4FileHandle hFile, u_int8_t value);
u_int8_t MP4GetAudioProfileLevel(MP4FileHandle hFile); u_int8_t MP4GetAudioProfileLevel(MP4FileHandle hFile);
bool MP4SetAudioProfileLevel(MP4FileHandle hFile, u_int8_t value); void MP4SetAudioProfileLevel(MP4FileHandle hFile, u_int8_t value);
u_int8_t MP4GetGraphicsProfileLevel(MP4FileHandle hFile); u_int8_t MP4GetGraphicsProfileLevel(MP4FileHandle hFile);
bool MP4SetGraphicsProfileLevel(MP4FileHandle hFile, u_int8_t value); bool MP4SetGraphicsProfileLevel(MP4FileHandle hFile, u_int8_t value);
/* generic file properties */ /* generic file properties */
bool MP4HaveAtom(MP4FileHandle hFile,
const char *atomName);
u_int64_t MP4GetIntegerProperty( bool MP4GetIntegerProperty(
MP4FileHandle hFile, MP4FileHandle hFile,
const char* propName); const char* propName,
u_int64_t *retval );
bool MP4HaveTrackIntegerProperty(
MP4FileHandle hFile, MP4TrackId trackId,
const char* propName);
float MP4GetFloatProperty( bool MP4GetFloatProperty(
MP4FileHandle hFile, MP4FileHandle hFile,
const char* propName); const char* propName,
float *retvalue);
const char* MP4GetStringProperty( bool MP4GetStringProperty(
MP4FileHandle hFile, MP4FileHandle hFile,
const char* propName); const char* propName,
const char **retvalue);
void MP4GetBytesProperty( bool MP4GetBytesProperty(
MP4FileHandle hFile, MP4FileHandle hFile,
const char* propName, const char* propName,
u_int8_t** ppValue, u_int8_t** ppValue,
u_int32_t* pValueSize); u_int32_t* pValueSize);
bool MP4SetIntegerProperty( bool MP4SetIntegerProperty(
MP4FileHandle hFile, MP4FileHandle hFile,
const char* propName, const char* propName,
int64_t value); int64_t value);
skipping to change at line 434 skipping to change at line 474
u_int32_t timeScale, u_int32_t timeScale,
MP4Duration sampleDuration, MP4Duration sampleDuration,
u_int8_t audioType DEFAULT(MP4_MPEG4_AUDIO_TYPE)); u_int8_t audioType DEFAULT(MP4_MPEG4_AUDIO_TYPE));
typedef struct mp4v2_ismacryp_session_params { typedef struct mp4v2_ismacryp_session_params {
u_int32_t scheme_type; u_int32_t scheme_type;
u_int16_t scheme_version; u_int16_t scheme_version;
u_int8_t key_ind_len; u_int8_t key_ind_len;
u_int8_t iv_len; u_int8_t iv_len;
u_int8_t selective_enc; u_int8_t selective_enc;
char *kms_uri; const char *kms_uri;
} mp4v2_ismacrypParams; } mp4v2_ismacrypParams;
// API to initialize ismacryp properties to sensible defaults
// if input param is null then mallocs a params struct
mp4v2_ismacrypParams *MP4DefaultISMACrypParams(mp4v2_ismacrypParams *ptr);
MP4TrackId MP4AddEncAudioTrack( MP4TrackId MP4AddEncAudioTrack(
MP4FileHandle hFile, MP4FileHandle hFile,
u_int32_t timeScale, u_int32_t timeScale,
MP4Duration sampleDuration, MP4Duration sampleDuration,
mp4v2_ismacrypParams *icPp, mp4v2_ismacrypParams *icPp,
u_int8_t audioType DEFAULT(MP4_MPEG4_AUDIO_TYPE)); u_int8_t audioType DEFAULT(MP4_MPEG4_AUDIO_TYPE));
MP4TrackId MP4AddAmrAudioTrack( MP4TrackId MP4AddAmrAudioTrack(
MP4FileHandle hFile, MP4FileHandle hFile,
u_int32_t timeScale, u_int32_t timeScale,
u_int16_t modeSet, u_int16_t modeSet,
u_int8_t modeChangePeriod, u_int8_t modeChangePeriod,
u_int8_t framesPerSample, u_int8_t framesPerSample,
bool isAmrWB); bool isAmrWB);
void MP4SetAmrVendor( void MP4SetAmrVendor(
MP4FileHandle hFile, MP4FileHandle hFile,
skipping to change at line 461 skipping to change at line 506
void MP4SetAmrVendor( void MP4SetAmrVendor(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId, MP4TrackId trackId,
u_int32_t vendor); u_int32_t vendor);
void MP4SetAmrDecoderVersion( void MP4SetAmrDecoderVersion(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId, MP4TrackId trackId,
u_int8_t decoderVersion); u_int8_t decoderVersion);
void MP4SetAmrModeSet( void MP4SetAmrModeSet(MP4FileHandle hFile, MP4TrackId trakId, uint16_t mode
MP4FileHandle hFile, Set);
MP4TrackId trackId, uint16_t MP4GetAmrModeSet(MP4FileHandle hFile, MP4TrackId trackId);
u_int16_t modeSet);
MP4TrackId MP4AddHrefTrack(MP4FileHandle hFile,
uint32_t timeScale,
MP4Duration sampleDuration,
const char *base_url DEFAULT(NULL));
const char *MP4GetHrefTrackBaseUrl(MP4FileHandle hFile,
MP4TrackId trackId);
MP4TrackId MP4AddVideoTrack( MP4TrackId MP4AddVideoTrack(
MP4FileHandle hFile, MP4FileHandle hFile,
u_int32_t timeScale, u_int32_t timeScale,
MP4Duration sampleDuration, MP4Duration sampleDuration,
u_int16_t width, u_int16_t width,
u_int16_t height, u_int16_t height,
u_int8_t videoType DEFAULT(MP4_MPEG4_VIDEO_TYPE)); u_int8_t videoType DEFAULT(MP4_MPEG4_VIDEO_TYPE));
MP4TrackId MP4AddEncVideoTrack( MP4TrackId MP4AddEncVideoTrack(
MP4FileHandle hFile, MP4FileHandle hFile,
u_int32_t timeScale, u_int32_t timeScale,
MP4Duration sampleDuration, MP4Duration sampleDuration,
u_int16_t width, u_int16_t width,
u_int16_t height, u_int16_t height,
mp4v2_ismacrypParams *icPp, mp4v2_ismacrypParams *icPp,
u_int8_t videoType DEFAULT(MP4_MPEG4_VIDEO_TYPE)); u_int8_t videoType DEFAULT(MP4_MPEG4_VIDEO_TYPE),
const char *oFormat DEFAULT(NULL));
MP4TrackId MP4AddH264VideoTrack(
MP4FileHandle hFile,
u_int32_t timeScale,
MP4Duration sampleDuration,
u_int16_t width,
u_int16_t height,
uint8_t AVCProfileIndication,
uint8_t profile_compat,
uint8_t AVCLevelIndication,
uint8_t sampleLenFieldSizeMinusOne);
MP4TrackId MP4AddEncH264VideoTrack(
MP4FileHandle dstFile,
u_int32_t timeScale,
MP4Duration sampleDuration,
u_int16_t width,
u_int16_t height,
MP4FileHandle srcFile,
MP4TrackId srcTrackId,
mp4v2_ismacrypParams *icPp);
void MP4AddH264SequenceParameterSet(MP4FileHandle hFile,
MP4TrackId trackId,
const uint8_t *pSequence,
uint16_t sequenceLen);
void MP4AddH264PictureParameterSet(MP4FileHandle hFile,
MP4TrackId trackId,
const uint8_t *pPict,
uint16_t pictLen);
void MP4SetH263Vendor( void MP4SetH263Vendor(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId, MP4TrackId trackId,
u_int32_t vendor); u_int32_t vendor);
void MP4SetH263DecoderVersion( void MP4SetH263DecoderVersion(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId, MP4TrackId trackId,
u_int8_t decoderVersion); u_int8_t decoderVersion);
skipping to change at line 514 skipping to change at line 594
u_int16_t height, u_int16_t height,
u_int8_t h263Level, u_int8_t h263Level,
u_int8_t h263Profile, u_int8_t h263Profile,
u_int32_t avgBitrate, u_int32_t avgBitrate,
u_int32_t maxBitrate); u_int32_t maxBitrate);
MP4TrackId MP4AddHintTrack( MP4TrackId MP4AddHintTrack(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId refTrackId); MP4TrackId refTrackId);
MP4TrackId MP4AddTextTrack(
MP4FileHandle hFile,
MP4TrackId refTrackId);
MP4TrackId MP4AddChapterTextTrack(
MP4FileHandle hFile,
MP4TrackId refTrackId);
MP4TrackId MP4CloneTrack( MP4TrackId MP4CloneTrack(
MP4FileHandle srcFile, MP4FileHandle srcFile,
MP4TrackId srcTrackId, MP4TrackId srcTrackId,
MP4FileHandle dstFile DEFAULT(MP4_INVALID_FILE_HANDLE), MP4FileHandle dstFile DEFAULT(MP4_INVALID_FILE_HANDLE),
MP4TrackId dstHintTrackReferenceTrack DEFAULT(MP4_INVALID_TRACK_ID)) ; MP4TrackId dstHintTrackReferenceTrack DEFAULT(MP4_INVALID_TRACK_ID)) ;
MP4TrackId MP4EncAndCloneTrack( MP4TrackId MP4EncAndCloneTrack(
MP4FileHandle srcFile, MP4FileHandle srcFile,
MP4TrackId srcTrackId, MP4TrackId srcTrackId,
mp4v2_ismacrypParams *icPp, mp4v2_ismacrypParams *icPp,
skipping to change at line 546 skipping to change at line 634
MP4TrackId MP4EncAndCopyTrack( MP4TrackId MP4EncAndCopyTrack(
MP4FileHandle srcFile, MP4FileHandle srcFile,
MP4TrackId srcTrackId, MP4TrackId srcTrackId,
mp4v2_ismacrypParams *icPp, mp4v2_ismacrypParams *icPp,
encryptFunc_t encfcnp, encryptFunc_t encfcnp,
u_int32_t encfcnparam1, u_int32_t encfcnparam1,
MP4FileHandle dstFile DEFAULT(MP4_INVALID_FILE_HANDLE), MP4FileHandle dstFile DEFAULT(MP4_INVALID_FILE_HANDLE),
bool applyEdits DEFAULT(false), bool applyEdits DEFAULT(false),
MP4TrackId dstHintTrackReferenceTrack DEFAULT(MP4_INVALID_TRACK_ID)) ; MP4TrackId dstHintTrackReferenceTrack DEFAULT(MP4_INVALID_TRACK_ID)) ;
bool MP4DeleteTrack( void MP4DeleteTrack(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
u_int32_t MP4GetNumberOfTracks( u_int32_t MP4GetNumberOfTracks(
MP4FileHandle hFile, MP4FileHandle hFile,
const char* type DEFAULT(NULL), const char* type DEFAULT(NULL),
u_int8_t subType DEFAULT(0)); u_int8_t subType DEFAULT(0));
MP4TrackId MP4FindTrackId( MP4TrackId MP4FindTrackId(
MP4FileHandle hFile, MP4FileHandle hFile,
skipping to change at line 569 skipping to change at line 657
u_int8_t subType DEFAULT(0)); u_int8_t subType DEFAULT(0));
u_int16_t MP4FindTrackIndex( u_int16_t MP4FindTrackIndex(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
/* track properties */ /* track properties */
/* specific track properties */ /* specific track properties */
bool MP4HaveTrackAtom(MP4FileHandle hFile,
MP4TrackId trackId,
const char *atomname);
const char* MP4GetTrackType( const char* MP4GetTrackType(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
const char *MP4GetTrackMediaDataName(MP4FileHandle hFile,
MP4TrackId trackId);
// MP4GetTrackMediaDataOriginalFormat is to be used to get the original
// MediaDataName if a track has been encrypted.
bool MP4GetTrackMediaDataOriginalFormat(MP4FileHandle hFile,
MP4TrackId trackId, char *originalFormat, u_int32_t buflen);
MP4Duration MP4GetTrackDuration( MP4Duration MP4GetTrackDuration(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
u_int32_t MP4GetTrackTimeScale( u_int32_t MP4GetTrackTimeScale(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
bool MP4SetTrackTimeScale( void MP4SetTrackTimeScale(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId, MP4TrackId trackId,
u_int32_t value); u_int32_t value);
// Should not be used, replace with MP4GetTrackEsdsObjectTypeId
u_int8_t MP4GetTrackAudioType(
MP4FileHandle hFile,
MP4TrackId trackId);
u_int8_t MP4GetTrackAudioMpeg4Type( u_int8_t MP4GetTrackAudioMpeg4Type(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
// Should not be used, replace with MP4GetTrackEsdsObjectTypeId
u_int8_t MP4GetTrackVideoType(
MP4FileHandle hFile,
MP4TrackId trackId);
u_int8_t MP4GetTrackEsdsObjectTypeId( u_int8_t MP4GetTrackEsdsObjectTypeId(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
/* returns MP4_INVALID_DURATION if track samples do not have a fixed durati on */ /* returns MP4_INVALID_DURATION if track samples do not have a fixed durati on */
MP4Duration MP4GetTrackFixedSampleDuration( MP4Duration MP4GetTrackFixedSampleDuration(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
u_int32_t MP4GetTrackBitRate( u_int32_t MP4GetTrackBitRate(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
bool MP4GetTrackVideoMetadata(MP4FileHandle hFile,
MP4TrackId trackId,
uint8_t **ppConfig,
uint32_t *pConfigSize);
bool MP4GetTrackESConfiguration( bool MP4GetTrackESConfiguration(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId, MP4TrackId trackId,
u_int8_t** ppConfig, u_int8_t** ppConfig,
u_int32_t* pConfigSize); u_int32_t* pConfigSize);
bool MP4SetTrackESConfiguration( bool MP4SetTrackESConfiguration(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId, MP4TrackId trackId,
const u_int8_t* pConfig, const u_int8_t* pConfig,
u_int32_t configSize); u_int32_t configSize);
/* h264 information routines */
bool MP4GetTrackH264ProfileLevel(MP4FileHandle hFile,
MP4TrackId trackId,
uint8_t *pProfile,
uint8_t *pLevel);
void MP4GetTrackH264SeqPictHeaders(MP4FileHandle hFile,
MP4TrackId trackId,
uint8_t ***pSeqHeaders,
uint32_t **pSeqHeaderSize,
uint8_t ***pPictHeader,
uint32_t **pPictHeaderSize);
bool MP4GetTrackH264LengthSize(MP4FileHandle hFile,
MP4TrackId trackId,
uint32_t *pLength);
MP4SampleId MP4GetTrackNumberOfSamples( MP4SampleId MP4GetTrackNumberOfSamples(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
u_int16_t MP4GetTrackVideoWidth( u_int16_t MP4GetTrackVideoWidth(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
u_int16_t MP4GetTrackVideoHeight( u_int16_t MP4GetTrackVideoHeight(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
float MP4GetTrackVideoFrameRate( double MP4GetTrackVideoFrameRate(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
int MP4GetTrackAudioChannels(MP4FileHandle hFile,
MP4TrackId trackId);
bool MP4IsIsmaCrypMediaTrack( bool MP4IsIsmaCrypMediaTrack(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId); MP4TrackId trackId);
/* generic track properties */ /* generic track properties */
u_int64_t MP4GetTrackIntegerProperty( bool MP4HaveTrackAtom(MP4FileHandle hFile,
MP4TrackId trackId,
const char *atomName);
bool MP4GetTrackIntegerProperty(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId, MP4TrackId trackId,
const char* propName); const char* propName,
u_int64_t *retvalue);
float MP4GetTrackFloatProperty( bool MP4GetTrackFloatProperty(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId, MP4TrackId trackId,
const char* propName); const char* propName,
float *ret_value);
const char* MP4GetTrackStringProperty( bool MP4GetTrackStringProperty(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId, MP4TrackId trackId,
const char* propName); const char* propName,
const char **retvalue);
void MP4GetTrackBytesProperty( bool MP4GetTrackBytesProperty(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId, MP4TrackId trackId,
const char* propName, const char* propName,
u_int8_t** ppValue, u_int8_t** ppValue,
u_int32_t* pValueSize); u_int32_t* pValueSize);
bool MP4SetTrackIntegerProperty( bool MP4SetTrackIntegerProperty(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId, MP4TrackId trackId,
const char* propName, const char* propName,
skipping to change at line 1048 skipping to change at line 1167
MP4SampleId MP4GetSampleIdFromEditTime( MP4SampleId MP4GetSampleIdFromEditTime(
MP4FileHandle hFile, MP4FileHandle hFile,
MP4TrackId trackId, MP4TrackId trackId,
MP4Timestamp when, MP4Timestamp when,
MP4Timestamp* pStartTime DEFAULT(NULL), MP4Timestamp* pStartTime DEFAULT(NULL),
MP4Duration* pDuration DEFAULT(NULL)); MP4Duration* pDuration DEFAULT(NULL));
/* iTunes metadata handling */ /* iTunes metadata handling */
bool MP4MetadataDelete(MP4FileHandle hFile); bool MP4MetadataDelete(MP4FileHandle hFile);
bool MP4GetMetadataByIndex(MP4FileHandle hFile, u_int32_t index, bool MP4GetMetadataByIndex(MP4FileHandle hFile, u_int32_t index,
const char** ppName, char** ppName, // need to free memory
u_int8_t** ppValue, u_int32_t* pValueSize); u_int8_t** ppValue, // need to free
u_int32_t* pValueSize);
bool MP4SetMetadataName(MP4FileHandle hFile, const char* value); bool MP4SetMetadataName(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataName(MP4FileHandle hFile, char** value); bool MP4GetMetadataName(MP4FileHandle hFile, char** value);
bool MP4DeleteMetadataName(MP4FileHandle hFile);
bool MP4SetMetadataArtist(MP4FileHandle hFile, const char* value); bool MP4SetMetadataArtist(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataArtist(MP4FileHandle hFile, char** value); bool MP4GetMetadataArtist(MP4FileHandle hFile, char** value);
bool MP4DeleteMetadataArtist(MP4FileHandle hFile);
bool MP4SetMetadataWriter(MP4FileHandle hFile, const char* value); bool MP4SetMetadataWriter(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataWriter(MP4FileHandle hFile, char** value); bool MP4GetMetadataWriter(MP4FileHandle hFile, char** value);
bool MP4DeleteMetadataWriter(MP4FileHandle hFile);
bool MP4SetMetadataComment(MP4FileHandle hFile, const char* value); bool MP4SetMetadataComment(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataComment(MP4FileHandle hFile, char** value); bool MP4GetMetadataComment(MP4FileHandle hFile, char** value);
bool MP4DeleteMetadataComment(MP4FileHandle hFile);
bool MP4SetMetadataTool(MP4FileHandle hFile, const char* value); bool MP4SetMetadataTool(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataTool(MP4FileHandle hFile, char** value); bool MP4GetMetadataTool(MP4FileHandle hFile, char** value);
bool MP4DeleteMetadataTool(MP4FileHandle hFile);
bool MP4SetMetadataYear(MP4FileHandle hFile, const char* value); bool MP4SetMetadataYear(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataYear(MP4FileHandle hFile, char** value); bool MP4GetMetadataYear(MP4FileHandle hFile, char** value);
bool MP4DeleteMetadataYear(MP4FileHandle hFile);
bool MP4SetMetadataAlbum(MP4FileHandle hFile, const char* value); bool MP4SetMetadataAlbum(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataAlbum(MP4FileHandle hFile, char** value); bool MP4GetMetadataAlbum(MP4FileHandle hFile, char** value);
bool MP4DeleteMetadataAlbum(MP4FileHandle hFile);
bool MP4SetMetadataTrack(MP4FileHandle hFile, bool MP4SetMetadataTrack(MP4FileHandle hFile,
u_int16_t track, u_int16_t totalTracks); u_int16_t track, u_int16_t totalTracks);
bool MP4GetMetadataTrack(MP4FileHandle hFile, bool MP4GetMetadataTrack(MP4FileHandle hFile,
u_int16_t* track, u_int16_t* totalTracks); u_int16_t* track, u_int16_t* totalTracks);
bool MP4DeleteMetadataTrack(MP4FileHandle hFile);
bool MP4SetMetadataDisk(MP4FileHandle hFile, bool MP4SetMetadataDisk(MP4FileHandle hFile,
u_int16_t disk, u_int16_t totalDisks); u_int16_t disk, u_int16_t totalDisks);
bool MP4GetMetadataDisk(MP4FileHandle hFile, bool MP4GetMetadataDisk(MP4FileHandle hFile,
u_int16_t* disk, u_int16_t* totalDisks); u_int16_t* disk, u_int16_t* totalDisks);
bool MP4DeleteMetadataDisk(MP4FileHandle hFile);
bool MP4SetMetadataGenre(MP4FileHandle hFile, const char *genre); bool MP4SetMetadataGenre(MP4FileHandle hFile, const char *genre);
bool MP4GetMetadataGenre(MP4FileHandle hFile, char **genre); bool MP4GetMetadataGenre(MP4FileHandle hFile, char **genre);
bool MP4DeleteMetadataGenre(MP4FileHandle hFile);
bool MP4SetMetadataGrouping(MP4FileHandle hFile, const char *grouping);
bool MP4GetMetadataGrouping(MP4FileHandle hFile, char **grouping);
bool MP4DeleteMetadataGrouping(MP4FileHandle hFile);
bool MP4SetMetadataTempo(MP4FileHandle hFile, u_int16_t tempo); bool MP4SetMetadataTempo(MP4FileHandle hFile, u_int16_t tempo);
bool MP4GetMetadataTempo(MP4FileHandle hFile, u_int16_t* tempo); bool MP4GetMetadataTempo(MP4FileHandle hFile, u_int16_t* tempo);
bool MP4DeleteMetadataTempo(MP4FileHandle hFile);
bool MP4SetMetadataCompilation(MP4FileHandle hFile, u_int8_t cpl); bool MP4SetMetadataCompilation(MP4FileHandle hFile, u_int8_t cpl);
bool MP4GetMetadataCompilation(MP4FileHandle hFile, u_int8_t* cpl); bool MP4GetMetadataCompilation(MP4FileHandle hFile, u_int8_t* cpl);
bool MP4DeleteMetadataCompilation(MP4FileHandle hFile);
bool MP4SetMetadataPartOfGaplessAlbum(MP4FileHandle hFile, uint8_t pgap);
bool MP4GetMetadataPartOfGaplessAlbum(MP4FileHandle hFile, uint8_t *pgap);
bool MP4DeleteMetadataPartOfGaplessAlbum(MP4FileHandle hFile);
bool MP4SetMetadataCoverArt(MP4FileHandle hFile, bool MP4SetMetadataCoverArt(MP4FileHandle hFile,
u_int8_t *coverArt, u_int32_t size); u_int8_t *coverArt, u_int32_t size);
bool MP4GetMetadataCoverArt(MP4FileHandle hFile, bool MP4GetMetadataCoverArt(MP4FileHandle hFile,
u_int8_t **coverArt, u_int32_t* size); u_int8_t **coverArt, u_int32_t* size,
bool MP4SetMetadataFreeForm(MP4FileHandle hFile, char *name, uint32_t index DEFAULT(0));
u_int8_t* pValue, u_int32_t valueSize); u_int32_t MP4GetMetadataCoverArtCount(MP4FileHandle hFile);
bool MP4GetMetadataFreeForm(MP4FileHandle hFile, char *name, bool MP4DeleteMetadataCoverArt(MP4FileHandle hFile);
u_int8_t** pValue, u_int32_t* valueSize); bool MP4SetMetadataAlbumArtist(MP4FileHandle hFile, const char* value);
bool MP4GetMetadataAlbumArtist(MP4FileHandle hFile, char** value);
bool MP4DeleteMetadataAlbumArtist(MP4FileHandle hFile);
bool MP4SetMetadataFreeForm(MP4FileHandle hFile, const char *name,
const u_int8_t* pValue, u_int32_t valueSize, con
st char *owner DEFAULT(NULL));
bool MP4GetMetadataFreeForm(MP4FileHandle hFile, const char *name,
u_int8_t** pValue, u_int32_t* valueSize, const c
har *owner DEFAULT(NULL));
bool MP4DeleteMetadataFreeForm(MP4FileHandle hFile, const char *name, const
char *owner DEFAULT(NULL));
/* time conversion utilties */ /* time conversion utilties */
/* predefined values for timeScale parameter below */ /* predefined values for timeScale parameter below */
#define MP4_SECONDS_TIME_SCALE 1 #define MP4_SECONDS_TIME_SCALE 1
#define MP4_MILLISECONDS_TIME_SCALE 1000 #define MP4_MILLISECONDS_TIME_SCALE 1000
#define MP4_MICROSECONDS_TIME_SCALE 1000000 #define MP4_MICROSECONDS_TIME_SCALE 1000000
#define MP4_NANOSECONDS_TIME_SCALE 1000000000 #define MP4_NANOSECONDS_TIME_SCALE 1000000000
#define MP4_SECS_TIME_SCALE MP4_SECONDS_TIME_SCALE #define MP4_SECS_TIME_SCALE MP4_SECONDS_TIME_SCALE
skipping to change at line 1137 skipping to change at line 1283
u_int32_t timeScale); u_int32_t timeScale);
char* MP4BinaryToBase16( char* MP4BinaryToBase16(
const u_int8_t* pData, const u_int8_t* pData,
u_int32_t dataSize); u_int32_t dataSize);
char* MP4BinaryToBase64( char* MP4BinaryToBase64(
const u_int8_t* pData, const u_int8_t* pData,
u_int32_t dataSize); u_int32_t dataSize);
uint8_t *Base64ToBinary(const char *pData,
uint32_t decodeSize,
uint32_t *pDataSize);
void MP4Free(void *p);
void MP4SetLibFunc(lib_message_func_t libfunc);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
/* undefined our utlity macro to avoid conflicts */ /* undefined our utlity macro to avoid conflicts */
#undef DEFAULT #undef DEFAULT
#endif /* __MP4_INCLUDED__ */ #endif /* __MP4_INCLUDED__ */
 End of changes. 67 change blocks. 
61 lines changed or deleted 224 lines changed or added


 mpeg4ip.h   mpeg4ip.h 
skipping to change at line 16 skipping to change at line 16
* *
* Software distributed under the License is distributed on an "AS * Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing * implied. See the License for the specific language governing
* rights and limitations under the License. * rights and limitations under the License.
* *
* The Original Code is MPEG4IP. * The Original Code is MPEG4IP.
* *
* The Initial Developer of the Original Code is Cisco Systems Inc. * The Initial Developer of the Original Code is Cisco Systems Inc.
* Portions created by Cisco Systems Inc. are * Portions created by Cisco Systems Inc. are
* Copyright (C) Cisco Systems Inc. 2000, 2001. All Rights Reserved. * Copyright (C) Cisco Systems Inc. 2000-2005. All Rights Reserved.
* *
* Contributor(s): * Contributor(s):
* Dave Mackie dmackie@cisco.com * Dave Mackie dmackie@cisco.com
* Bill May wmay@cisco.com
*/ */
#ifndef __MPEG4IP_INCLUDED__ #ifndef __MPEG4IP_INCLUDED__
#define __MPEG4IP_INCLUDED__ #define __MPEG4IP_INCLUDED__
/* project wide applicable stuff here */ /* project wide applicable stuff here */
#ifdef WIN32 #ifndef _WIN32
#define HAVE_IN_PORT_T #ifdef PACKAGE_BUGREPORT
#define HAVE_SOCKLEN_T #define TEMP_PACKAGE_BUGREPORT PACKAGE_BUGREPORT
#define NEED_SDL_VIDEO_IN_MAIN_THREAD #define TEMP_PACKAGE_NAME PACKAGE_NAME
#define TEMP_PACKAGE_STRING PACKAGE_STRING
#define TEMP_PACKAGE_TARNAME PACKAGE_TARNAME
#define TEMP_PACKAGE_VERSION PACKAGE_VERSION
#undef PACKAGE_BUGREPORT
#undef PACKAGE_NAME
#undef PACKAGE_STRING
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
#include <mpeg4ip_config.h>
#undef PACKAGE_BUGREPORT
#undef PACKAGE_NAME
#undef PACKAGE_STRING
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
#define PACKAGE_BUGREPORT TEMP_PACKAGE_BUGREPORT
#define PACKAGE_NAME TEMP_PACKAGE_NAME
#define PACKAGE_STRING TEMP_PACKAGE_STRING
#define PACKAGE_TARNAME TEMP_PACKAGE_TARNAME
#define PACKAGE_VERSION TEMP_PACKAGE_VERSION
#else #else
#undef PACKAGE
#undef VERSION
#include <mpeg4ip_config.h> #include <mpeg4ip_config.h>
#undef PACKAGE #endif
#undef VERSION
// so these don't propogate
#endif #endif
// the mpeg4ip_package and mpeg4ip_version are always in this // the mpeg4ip_package and mpeg4ip_version are always in this
// file // file
#include "mpeg4ip_version.h" #include "mpeg4ip_version.h"
#ifdef WIN32 #ifdef _WIN32
#include "mpeg4ip_win32.h"
#define _WIN32_WINNT 0x0400 #include "mpeg4ip_version.h"
#define _WINSOCKAPI_
#include <windows.h>
#include <winsock2.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <time.h>
#include <limits.h>
typedef unsigned __int64 uint64_t;
typedef unsigned __int32 uint32_t;
typedef unsigned __int16 uint16_t;
typedef unsigned __int8 uint8_t;
typedef unsigned __int64 u_int64_t;
typedef unsigned __int32 u_int32_t;
typedef unsigned __int16 u_int16_t;
typedef unsigned __int8 u_int8_t;
typedef __int64 int64_t;
typedef __int32 int32_t;
typedef __int16 int16_t;
typedef __int8 int8_t;
typedef unsigned short in_port_t;
typedef int socklen_t;
typedef int ssize_t;
#define snprintf _snprintf
#define strncasecmp _strnicmp
#define strcasecmp _stricmp
#include <io.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#define write _write
#define lseek _lseek
#define close _close
#define open _open
#define access _access
#define vsnprintf _vsnprintf
#define F_OK 0
#define OPEN_RDWR (_O_RDWR | _O_BINARY)
#define OPEN_CREAT (_O_CREAT | _O_BINARY)
#define OPEN_RDONLY (_O_RDONLY | _O_BINARY)
#define srandom srand
#define random rand
#define IOSBINARY ios::binary
#ifdef __cplusplus
extern "C" {
#endif
int gettimeofday(struct timeval *t, void *);
#ifdef __cplusplus
}
#endif
#define PATH_MAX MAX_PATH
#define MAX_UINT64 -1
#define D64F "I64d"
#define U64F "I64u"
#define X64F "I64x"
#define TO_D64(a) (a##I64)
#define TO_U64(a) (a##UI64)
#define LOG_EMERG 0
#define LOG_ALERT 1
#define LOG_CRIT 2
#define LOG_ERR 3
#define LOG_WARNING 4
#define LOG_NOTICE 5
#define LOG_INFO 6
#define LOG_DEBUG 7
#if !__STDC__ && _INTEGRAL_MAX_BITS >= 64
#define VAR_TO_FPOS(fpos, var) (fpos) = (var)
#define FPOS_TO_VAR(fpos, typed, var) (var) = (typed)(_FPOSOFF(fpos))
#else
#define VAR_TO_FPOS(fpos, var) (fpos).lopart = ((var) & UINT_MAX); (fpos).h
ipart = ((var) >> 32)
#define FPOS_TO_VAR(fpos, typed, var) (var) = (typed)((uint64_t)((fpos).hip
art ) << 32 | (fpos).lopart)
#endif
#define __STRING(expr) #expr
#define FOPEN_READ_BINARY "rb"
#define FOPEN_WRITE_BINARY "wb"
#define UINT64_TO_DOUBLE(a) ((double)((int64_t)(a)))
#else /* UNIX */ #else /* UNIX */
/************************************************************************** *** /************************************************************************** ***
* UNIX LIKE DEFINES BELOW THIS POINT * UNIX LIKE DEFINES BELOW THIS POINT
************************************************************************** ***/ ************************************************************************** ***/
#ifdef sun #ifdef sun
#include <sys/feature_tests.h> #include <sys/feature_tests.h>
#endif #endif
#ifndef _FILE_OFFSET_BITS #ifndef _FILE_OFFSET_BITS
#define _FILE_OFFSET_BITS 64 #define _FILE_OFFSET_BITS 64
skipping to change at line 165 skipping to change at line 94
#include <stdio.h> #include <stdio.h>
#include <errno.h> #include <errno.h>
#include <stdlib.h> #include <stdlib.h>
#ifdef HAVE_INTTYPES_H #ifdef HAVE_INTTYPES_H
#include <inttypes.h> #include <inttypes.h>
#endif #endif
#ifdef HAVE_STDINT_H #ifdef HAVE_STDINT_H
#include <stdint.h> #include <stdint.h>
#endif #endif
#if !defined(HAVE_INTTYPES_H) || !defined(HAVE_STDINT_H) #if !defined(HAVE_INTTYPES_H) && !defined(HAVE_STDINT_H)
#error "Don't have stdint.h or inttypes.h - no way to get uint8_t" #error "Don't have stdint.h or inttypes.h - no way to get uint8_t"
#endif #endif
#include <unistd.h> #include <unistd.h>
#include <fcntl.h> #include <fcntl.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <arpa/inet.h> #include <arpa/inet.h>
skipping to change at line 193 skipping to change at line 122
#include <time.h> #include <time.h>
#else #else
#ifdef HAVE_SYS_TIME_H #ifdef HAVE_SYS_TIME_H
#include <sys/time.h> #include <sys/time.h>
#else #else
#include <time.h> #include <time.h>
#endif #endif
#endif #endif
#include <sys/param.h> #include <sys/param.h>
#ifdef __cplusplus
extern "C" {
#endif
char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif
#define OPEN_RDWR O_RDWR #define OPEN_RDWR O_RDWR
#define OPEN_CREAT O_CREAT #define OPEN_CREAT O_CREAT
#define OPEN_RDONLY O_RDONLY #define OPEN_RDONLY O_RDONLY
#define closesocket close #define closesocket close
#define IOSBINARY ios::bin #define IOSBINARY ios::bin
#if SIZEOF_LONG == 8 #if SIZEOF_LONG == 8
#define MAX_UINT64 -1LU #define MAX_UINT64 -1LU
#define D64F "ld" #define D64F "ld"
#define U64F "lu" #define U64F "lu"
#define X64F "lx" #define X64F "lx"
#define TO_D64(a) (a##LD) #define TO_D64(a) (a##L)
#define TO_U64(a) (a##LU) #define TO_U64(a) (a##LU)
#else #else
#define MAX_UINT64 -1LLU #define MAX_UINT64 -1LLU
#define D64F "lld" #define D64F "lld"
#define U64F "llu" #define U64F "llu"
#define X64F "llx" #define X64F "llx"
#define TO_D64(a) (a##LLD) #define TO_D64(a) (a##LL)
#define TO_U64(a) (a##LLU) #define TO_U64(a) (a##LLU)
#endif #endif
#ifdef HAVE_FPOS_T___POS #ifdef HAVE_FPOS_T___POS
#define FPOS_TO_VAR(fpos, typed, var) (var) = (typed)((fpos).__pos) #define FPOS_TO_VAR(fpos, typed, var) (var) = (typed)((fpos).__pos)
#define VAR_TO_FPOS(fpos, var) (fpos).__pos = (var) #define VAR_TO_FPOS(fpos, var) (fpos).__pos = (var)
#else #else
#define FPOS_TO_VAR(fpos, typed, var) (var) = (typed)(fpos) #define FPOS_TO_VAR(fpos, typed, var) (var) = (typed)(fpos)
#define VAR_TO_FPOS(fpos, var) (fpos) = (var) #define VAR_TO_FPOS(fpos, var) (fpos) = (var)
#endif #endif
skipping to change at line 335 skipping to change at line 272
#ifndef FALSE #ifndef FALSE
#define FALSE 0 #define FALSE 0
#endif #endif
#ifndef TRUE #ifndef TRUE
#define TRUE 1 #define TRUE 1
#endif #endif
#ifndef __cplusplus #ifndef __cplusplus
#ifndef bool #ifndef bool
typedef unsigned char bool; #if SIZEOF_BOOL == 8
typedef uint64_t bool;
#else
#if SIZEOF_BOOL == 4
typedef uint32_t bool;
#else
#if SIZEOF_BOOL == 2
typedef uint16_t bool;
#else
typedef unsigned char bool;
#endif
#endif
#endif
#ifndef false
#define false FALSE
#endif
#ifndef true
#define true TRUE
#endif
#endif #endif
#endif #endif
#ifndef ROUND #ifndef ROUND
# ifdef HAVE_RINT # ifdef HAVE_RINT
# define ROUND(f) rint(f) # define ROUND(f) rint(f)
# else # else
# define ROUND(f) (int)(floor((f) + 0.5)) # define ROUND(f) (int)(floor((f) + 0.5))
# endif # endif
#endif #endif
skipping to change at line 363 skipping to change at line 320
#endif #endif
#ifndef UINT32_MAX #ifndef UINT32_MAX
# define UINT32_MAX (4294967295U) # define UINT32_MAX (4294967295U)
#endif #endif
#ifndef UINT64_MAX #ifndef UINT64_MAX
# define UINT64_MAX TO_U64(0xffffffffffffffff) # define UINT64_MAX TO_U64(0xffffffffffffffff)
#endif #endif
typedef enum audio_format_t {
AUDIO_FMT_U8 = 0,
AUDIO_FMT_S8,
AUDIO_FMT_U16LSB,
AUDIO_FMT_S16LSB,
AUDIO_FMT_U16MSB,
AUDIO_FMT_S16MSB,
AUDIO_FMT_U16,
AUDIO_FMT_S16,
AUDIO_FMT_FLOAT,
AUDIO_FMT_HW_AC3,
} audio_format_t;
#endif /* __MPEG4IP_INCLUDED__ */ #endif /* __MPEG4IP_INCLUDED__ */
 End of changes. 14 change blocks. 
106 lines changed or deleted 74 lines changed or added


 mpeg4ip_config.h   mpeg4ip_config.h 
/* config.h. Generated from config.h.in by configure. */ /* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.in by autoheader. */ /* config.h.in. Generated from configure.in by autoheader. */
/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */
/* Define if you want to encode for DRM */ /* Define if you want to encode for DRM */
/* #undef DRM */ /* #undef DRM */
/* Define to 1 if you have the declaration of `MP4Create', and to 0 if you /* Define to 1 if you have the declaration of `MP4Create', and to 0 if you
don't. */ don't. */
#define HAVE_DECL_MP4CREATE 0 #define HAVE_DECL_MP4CREATE 0
/* Define to 1 if you have the declaration of `MP4MetadataDelete', and to 0 if /* Define to 1 if you have the declaration of `MP4MetadataDelete', and to 0 if
you don't. */ you don't. */
#define HAVE_DECL_MP4METADATADELETE 0 #define HAVE_DECL_MP4METADATADELETE 0
/* Define to 1 if you have the <dlfcn.h> header file. */ /* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1 #define HAVE_DLFCN_H 1
/* Define to 1 if you have the <float.h> header file. */ /* Define to 1 if you have the <float.h> header file. */
#define HAVE_FLOAT_H 1 #define HAVE_FLOAT_H 1
/* Define to 1 if `__pos' is a member of `fpos_t'. */ /* Define to 1 if `__pos' is member of `fpos_t'. */
#define HAVE_FPOS_T___POS 1 #define HAVE_FPOS_T___POS 1
/* Define to 1 if you have the <getopt.h> header file. */ /* Define to 1 if you have the <getopt.h> header file. */
#define HAVE_GETOPT_H 1 #define HAVE_GETOPT_H 1
/* Define to 1 if the system has the type `int16_t'. */ /* Define to 1 if the system has the type `int16_t'. */
#define HAVE_INT16_T 1 #define HAVE_INT16_T 1
/* Define to 1 if the system has the type `int32_t'. */ /* Define to 1 if the system has the type `int32_t'. */
#define HAVE_INT32_T 1 #define HAVE_INT32_T 1
skipping to change at line 99 skipping to change at line 96
/* Define to 1 if you have the <unistd.h> header file. */ /* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1 #define HAVE_UNISTD_H 1
/* Define to 1 if the system has the type `u_int16_t'. */ /* Define to 1 if the system has the type `u_int16_t'. */
#define HAVE_U_INT16_T 1 #define HAVE_U_INT16_T 1
/* Define to 1 if the system has the type `u_int32_t'. */ /* Define to 1 if the system has the type `u_int32_t'. */
#define HAVE_U_INT32_T 1 #define HAVE_U_INT32_T 1
/* Define to the sub-directory in which libtool stores uninstalled librarie
s.
*/
#define LT_OBJDIR ".libs/"
/* Name of package */ /* Name of package */
#define PACKAGE "faac" #define PACKAGE "faac"
/* Define to the address where bug reports for this package should be sent. */ /* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "faac-dev@lists.sourceforge.net" #define PACKAGE_BUGREPORT "faac-dev@lists.sourceforge.net"
/* Define to the full name of this package. */ /* Define to the full name of this package. */
#define PACKAGE_NAME "FAAC" #define PACKAGE_NAME "FAAC"
/* Define to the full name and version of this package. */ /* Define to the full name and version of this package. */
#define PACKAGE_STRING "FAAC 1.25" #define PACKAGE_STRING "FAAC 1.28"
/* Define to the one symbol short name of this package. */ /* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "faac" #define PACKAGE_TARNAME "faac"
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */ /* Define to the version of this package. */
#define PACKAGE_VERSION "1.25" #define PACKAGE_VERSION "1.28"
/* Define to 1 if you have the ANSI C header files. */ /* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1 #define STDC_HEADERS 1
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#define TIME_WITH_SYS_TIME 1 #define TIME_WITH_SYS_TIME 1
/* Version number of package */ /* Version number of package */
#define VERSION "1.25" #define VERSION "1.28"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most /* Define to 1 if your processor stores words with the most significant byt
significant byte first (like Motorola and SPARC, unlike Intel). */ e
#if defined AC_APPLE_UNIVERSAL_BUILD first (like Motorola and SPARC, unlike Intel and VAX). */
# if defined __BIG_ENDIAN__ /* #undef WORDS_BIGENDIAN */
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
/* # undef WORDS_BIGENDIAN */
# endif
#endif
/* Number of bits in a file offset, on hosts where this is settable. */ /* Number of bits in a file offset, on hosts where this is settable. */
#define _FILE_OFFSET_BITS 64 #define _FILE_OFFSET_BITS 64
/* Define for large files, on AIX-style hosts. */ /* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */ /* #undef _LARGE_FILES */
/* Define to `long int' if <sys/types.h> does not define. */ /* Define to `long int' if <sys/types.h> does not define. */
/* #undef off_t */ /* #undef off_t */
 End of changes. 8 change blocks. 
26 lines changed or deleted 8 lines changed or added


 mpeg4ip_version.h   mpeg4ip_version.h 
#define MPEG4IP_PACKAGE "mpeg4ip" #define MPEG4IP_PACKAGE "mpeg4ip"
#define MPEG4IP_VERSION "1.1.3" #define MPEG4IP_VERSION "1.6.1"
#define MPEG4IP_MAJOR_VERSION 0x1
#define MPEG4IP_MINOR_VERSION 0x6
#define MPEG4IP_CVS_VERSION 0x1
#define MPEG4IP_HEX_VERSION ((MPEG4IP_MAJOR_VERSION << 16) | (MPEG4IP_MINOR
_VERSION << 8) | MPEG4IP_CVS_VERSION)
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/