Commit 05368cee authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

MP4: FOURCC_* => ATOM_*

The atom names are like FOURCC, but they are not fourcc
parent 197852f8
......@@ -281,7 +281,7 @@ int drms_init( void *_p_drms, uint32_t i_type,
switch( i_type )
{
case FOURCC_user:
case ATOM_user:
if( i_len < sizeof(p_drms->i_user) )
{
i_ret = -2;
......@@ -291,7 +291,7 @@ int drms_init( void *_p_drms, uint32_t i_type,
p_drms->i_user = U32_AT( p_info );
break;
case FOURCC_key:
case ATOM_key:
if( i_len < sizeof(p_drms->i_key) )
{
i_ret = -2;
......@@ -301,7 +301,7 @@ int drms_init( void *_p_drms, uint32_t i_type,
p_drms->i_key = U32_AT( p_info );
break;
case FOURCC_iviv:
case ATOM_iviv:
if( i_len < sizeof(p_drms->p_key) )
{
i_ret = -2;
......@@ -311,7 +311,7 @@ int drms_init( void *_p_drms, uint32_t i_type,
memcpy( p_drms->p_iviv, p_info, 16 );
break;
case FOURCC_name:
case ATOM_name:
p_drms->p_name = (uint8_t*) strdup( (char *)p_info );
if( p_drms->p_name == NULL )
......@@ -320,7 +320,7 @@ int drms_init( void *_p_drms, uint32_t i_type,
}
break;
case FOURCC_priv:
case ATOM_priv:
{
uint32_t p_priv[ 64 ];
struct md5_s md5;
......
......@@ -44,7 +44,7 @@ static inline size_t mp4_box_headersize( MP4_Box_t *p_box )
{
return 8
+ ( p_box->i_shortsize == 1 ? 8 : 0 )
+ ( p_box->i_type == FOURCC_uuid ? 16 : 0 );
+ ( p_box->i_type == ATOM_uuid ? 16 : 0 );
}
#define MP4_GETX_PRIVATE(dst, code, size) do { \
......@@ -212,7 +212,7 @@ int MP4_ReadBoxCommon( stream_t *p_stream, MP4_Box_t *p_box )
/* XXX size of 0 means that the box extends to end of file */
}
if( p_box->i_type == FOURCC_uuid )
if( p_box->i_type == ATOM_uuid )
{
/* get extented type on 16 bytes */
GetUUID( &p_box->i_uuid, p_peek );
......@@ -335,7 +335,7 @@ static int MP4_ReadBoxSkip( stream_t *p_stream, MP4_Box_t *p_box )
/* XXX sometime moov is hiden in a free box */
if( p_box->p_father &&
p_box->p_father->i_type == VLC_FOURCC( 'r', 'o', 'o', 't' ) &&
p_box->i_type == FOURCC_free )
p_box->i_type == ATOM_free )
{
const uint8_t *p_peek;
int i_read;
......@@ -350,11 +350,11 @@ static int MP4_ReadBoxSkip( stream_t *p_stream, MP4_Box_t *p_box )
{
i_fcc = VLC_FOURCC( p_peek[0], p_peek[1], p_peek[2], p_peek[3] );
if( i_fcc == FOURCC_cmov || i_fcc == FOURCC_mvhd )
if( i_fcc == ATOM_cmov || i_fcc == ATOM_mvhd )
{
msg_Warn( p_stream, "detected moov hidden in a free box ..." );
p_box->i_type = FOURCC_foov;
p_box->i_type = ATOM_foov;
return MP4_ReadBoxContainer( p_stream, p_box );
}
}
......@@ -1443,7 +1443,7 @@ static int MP4_ReadBox_sample_soun( stream_t *p_stream, MP4_Box_t *p_box )
mp4_box_headersize( p_box ) + 28 );
}
if( p_box->i_type == FOURCC_drms )
if( p_box->i_type == ATOM_drms )
{
char *home = config_GetUserDir( VLC_HOME_DIR );
if( home != NULL )
......@@ -1454,7 +1454,7 @@ static int MP4_ReadBox_sample_soun( stream_t *p_stream, MP4_Box_t *p_box )
}
}
if( p_box->i_type == FOURCC_samr || p_box->i_type == FOURCC_sawb )
if( p_box->i_type == ATOM_samr || p_box->i_type == ATOM_sawb )
{
/* Ignore channelcount for AMR (3gpp AMRSpecificBox) */
p_box->data.p_sample_soun->i_channelcount = 1;
......@@ -1479,7 +1479,7 @@ static void MP4_FreeBox_sample_soun( MP4_Box_t *p_box )
{
FREENULL( p_box->data.p_sample_soun->p_qt_description );
if( p_box->i_type == FOURCC_drms )
if( p_box->i_type == ATOM_drms )
{
if( p_box->data.p_sample_soun->p_drms )
{
......@@ -1544,7 +1544,7 @@ int MP4_ReadBox_sample_vide( stream_t *p_stream, MP4_Box_t *p_box )
stream_Seek( p_stream, p_box->i_pos + mp4_box_headersize( p_box ) + 78);
if( p_box->i_type == FOURCC_drmi )
if( p_box->i_type == ATOM_drmi )
{
char *home = config_GetUserDir( VLC_HOME_DIR );
if( home != NULL )
......@@ -1572,7 +1572,7 @@ void MP4_FreeBox_sample_vide( MP4_Box_t *p_box )
{
FREENULL( p_box->data.p_sample_vide->p_qt_image_description );
if( p_box->i_type == FOURCC_drmi )
if( p_box->i_type == ATOM_drmi )
{
if( p_box->data.p_sample_vide->p_drms )
{
......@@ -1803,7 +1803,7 @@ static int MP4_ReadBox_stco_co64( stream_t *p_stream, MP4_Box_t *p_box )
for( i = 0; i < p_box->data.p_co64->i_entry_count; i++ )
{
if( p_box->i_type == FOURCC_stco )
if( p_box->i_type == ATOM_stco )
{
if( i_read < 4 )
{
......@@ -2158,8 +2158,8 @@ static int MP4_ReadBox_cmov( stream_t *p_stream, MP4_Box_t *p_box )
memset( p_box->data.p_cmov, 0, sizeof( MP4_Box_data_cmov_t ) );
if( !p_box->p_father ||
( p_box->p_father->i_type != FOURCC_moov &&
p_box->p_father->i_type != FOURCC_foov ) )
( p_box->p_father->i_type != ATOM_moov &&
p_box->p_father->i_type != ATOM_foov ) )
{
msg_Warn( p_stream, "Read box: \"cmov\" box alone" );
return 1;
......@@ -2178,7 +2178,7 @@ static int MP4_ReadBox_cmov( stream_t *p_stream, MP4_Box_t *p_box )
return 0;
}
if( p_dcom->data.p_dcom->i_algorithm != FOURCC_zlib )
if( p_dcom->data.p_dcom->i_algorithm != ATOM_zlib )
{
msg_Dbg( p_stream, "read box: \"cmov\" compression algorithm : %4.4s "
"not supported", (char*)&p_dcom->data.p_dcom->i_algorithm );
......@@ -2395,12 +2395,12 @@ static int MP4_ReadBox_drms( stream_t *p_stream, MP4_Box_t *p_box )
do
{
p_drms_box = p_drms_box->p_father;
} while( p_drms_box && p_drms_box->i_type != FOURCC_drms
&& p_drms_box->i_type != FOURCC_drmi );
} while( p_drms_box && p_drms_box->i_type != ATOM_drms
&& p_drms_box->i_type != ATOM_drmi );
if( p_drms_box && p_drms_box->i_type == FOURCC_drms )
if( p_drms_box && p_drms_box->i_type == ATOM_drms )
p_drms = p_drms_box->data.p_sample_soun->p_drms;
else if( p_drms_box && p_drms_box->i_type == FOURCC_drmi )
else if( p_drms_box && p_drms_box->i_type == ATOM_drmi )
p_drms = p_drms_box->data.p_sample_vide->p_drms;
if( p_drms_box && p_drms )
......@@ -2429,9 +2429,9 @@ static int MP4_ReadBox_drms( stream_t *p_stream, MP4_Box_t *p_box )
drms_free( p_drms );
if( p_drms_box->i_type == FOURCC_drms )
if( p_drms_box->i_type == ATOM_drms )
p_drms_box->data.p_sample_soun->p_drms = NULL;
else if( p_drms_box->i_type == FOURCC_drmi )
else if( p_drms_box->i_type == ATOM_drmi )
p_drms_box->data.p_sample_vide->p_drms = NULL;
}
}
......@@ -2711,26 +2711,26 @@ static int MP4_ReadBox_default( stream_t *p_stream, MP4_Box_t *p_box )
{
goto unknown;
}
if( p_box->p_father->i_type == FOURCC_stsd )
if( p_box->p_father->i_type == ATOM_stsd )
{
MP4_Box_t *p_mdia = MP4_BoxGet( p_box, "../../../.." );
MP4_Box_t *p_hdlr;
if( p_mdia == NULL || p_mdia->i_type != FOURCC_mdia ||
if( p_mdia == NULL || p_mdia->i_type != ATOM_mdia ||
(p_hdlr = MP4_BoxGet( p_mdia, "hdlr" )) == NULL )
{
goto unknown;
}
switch( p_hdlr->data.p_hdlr->i_handler_type )
{
case FOURCC_soun:
case ATOM_soun:
return MP4_ReadBox_sample_soun( p_stream, p_box );
case FOURCC_vide:
case ATOM_vide:
return MP4_ReadBox_sample_vide( p_stream, p_box );
case FOURCC_text:
case ATOM_text:
return MP4_ReadBox_sample_text( p_stream, p_box );
case FOURCC_tx3g:
case FOURCC_sbtl:
case ATOM_tx3g:
case ATOM_sbtl:
return MP4_ReadBox_sample_tx3g( p_stream, p_box );
default:
msg_Warn( p_stream,
......@@ -2764,209 +2764,209 @@ static const struct
} MP4_Box_Function [] =
{
/* Containers */
{ FOURCC_moov, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_trak, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_mdia, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_moof, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_minf, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_stbl, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_dinf, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_edts, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_udta, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_nmhd, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_hnti, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_rmra, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_rmda, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_tref, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_gmhd, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_wave, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_ilst, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_moov, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_trak, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_mdia, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_moof, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_minf, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_stbl, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_dinf, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_edts, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_udta, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_nmhd, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_hnti, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_rmra, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_rmda, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_tref, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_gmhd, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_wave, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_ilst, MP4_ReadBoxContainer, MP4_FreeBox_Common },
/* specific box */
{ FOURCC_ftyp, MP4_ReadBox_ftyp, MP4_FreeBox_ftyp },
{ FOURCC_cmov, MP4_ReadBox_cmov, MP4_FreeBox_Common },
{ FOURCC_mvhd, MP4_ReadBox_mvhd, MP4_FreeBox_Common },
{ FOURCC_tkhd, MP4_ReadBox_tkhd, MP4_FreeBox_Common },
{ FOURCC_mdhd, MP4_ReadBox_mdhd, MP4_FreeBox_Common },
{ FOURCC_hdlr, MP4_ReadBox_hdlr, MP4_FreeBox_hdlr },
{ FOURCC_vmhd, MP4_ReadBox_vmhd, MP4_FreeBox_Common },
{ FOURCC_smhd, MP4_ReadBox_smhd, MP4_FreeBox_Common },
{ FOURCC_hmhd, MP4_ReadBox_hmhd, MP4_FreeBox_Common },
{ FOURCC_url, MP4_ReadBox_url, MP4_FreeBox_url },
{ FOURCC_urn, MP4_ReadBox_urn, MP4_FreeBox_urn },
{ FOURCC_dref, MP4_ReadBox_dref, MP4_FreeBox_Common },
{ FOURCC_stts, MP4_ReadBox_stts, MP4_FreeBox_stts },
{ FOURCC_ctts, MP4_ReadBox_ctts, MP4_FreeBox_ctts },
{ FOURCC_stsd, MP4_ReadBox_stsd, MP4_FreeBox_Common },
{ FOURCC_stsz, MP4_ReadBox_stsz, MP4_FreeBox_stsz },
{ FOURCC_stsc, MP4_ReadBox_stsc, MP4_FreeBox_stsc },
{ FOURCC_stco, MP4_ReadBox_stco_co64, MP4_FreeBox_stco_co64 },
{ FOURCC_co64, MP4_ReadBox_stco_co64, MP4_FreeBox_stco_co64 },
{ FOURCC_stss, MP4_ReadBox_stss, MP4_FreeBox_stss },
{ FOURCC_stsh, MP4_ReadBox_stsh, MP4_FreeBox_stsh },
{ FOURCC_stdp, MP4_ReadBox_stdp, MP4_FreeBox_stdp },
{ FOURCC_padb, MP4_ReadBox_padb, MP4_FreeBox_padb },
{ FOURCC_elst, MP4_ReadBox_elst, MP4_FreeBox_elst },
{ FOURCC_cprt, MP4_ReadBox_cprt, MP4_FreeBox_cprt },
{ FOURCC_esds, MP4_ReadBox_esds, MP4_FreeBox_esds },
{ FOURCC_dcom, MP4_ReadBox_dcom, MP4_FreeBox_Common },
{ FOURCC_cmvd, MP4_ReadBox_cmvd, MP4_FreeBox_cmvd },
{ FOURCC_avcC, MP4_ReadBox_avcC, MP4_FreeBox_avcC },
{ FOURCC_dac3, MP4_ReadBox_dac3, MP4_FreeBox_Common },
{ FOURCC_enda, MP4_ReadBox_enda, MP4_FreeBox_Common },
{ FOURCC_gnre, MP4_ReadBox_gnre, MP4_FreeBox_Common },
{ FOURCC_trkn, MP4_ReadBox_trkn, MP4_FreeBox_Common },
{ FOURCC_iods, MP4_ReadBox_iods, MP4_FreeBox_Common },
{ ATOM_ftyp, MP4_ReadBox_ftyp, MP4_FreeBox_ftyp },
{ ATOM_cmov, MP4_ReadBox_cmov, MP4_FreeBox_Common },
{ ATOM_mvhd, MP4_ReadBox_mvhd, MP4_FreeBox_Common },
{ ATOM_tkhd, MP4_ReadBox_tkhd, MP4_FreeBox_Common },
{ ATOM_mdhd, MP4_ReadBox_mdhd, MP4_FreeBox_Common },
{ ATOM_hdlr, MP4_ReadBox_hdlr, MP4_FreeBox_hdlr },
{ ATOM_vmhd, MP4_ReadBox_vmhd, MP4_FreeBox_Common },
{ ATOM_smhd, MP4_ReadBox_smhd, MP4_FreeBox_Common },
{ ATOM_hmhd, MP4_ReadBox_hmhd, MP4_FreeBox_Common },
{ ATOM_url, MP4_ReadBox_url, MP4_FreeBox_url },
{ ATOM_urn, MP4_ReadBox_urn, MP4_FreeBox_urn },
{ ATOM_dref, MP4_ReadBox_dref, MP4_FreeBox_Common },
{ ATOM_stts, MP4_ReadBox_stts, MP4_FreeBox_stts },
{ ATOM_ctts, MP4_ReadBox_ctts, MP4_FreeBox_ctts },
{ ATOM_stsd, MP4_ReadBox_stsd, MP4_FreeBox_Common },
{ ATOM_stsz, MP4_ReadBox_stsz, MP4_FreeBox_stsz },
{ ATOM_stsc, MP4_ReadBox_stsc, MP4_FreeBox_stsc },
{ ATOM_stco, MP4_ReadBox_stco_co64, MP4_FreeBox_stco_co64 },
{ ATOM_co64, MP4_ReadBox_stco_co64, MP4_FreeBox_stco_co64 },
{ ATOM_stss, MP4_ReadBox_stss, MP4_FreeBox_stss },
{ ATOM_stsh, MP4_ReadBox_stsh, MP4_FreeBox_stsh },
{ ATOM_stdp, MP4_ReadBox_stdp, MP4_FreeBox_stdp },
{ ATOM_padb, MP4_ReadBox_padb, MP4_FreeBox_padb },
{ ATOM_elst, MP4_ReadBox_elst, MP4_FreeBox_elst },
{ ATOM_cprt, MP4_ReadBox_cprt, MP4_FreeBox_cprt },
{ ATOM_esds, MP4_ReadBox_esds, MP4_FreeBox_esds },
{ ATOM_dcom, MP4_ReadBox_dcom, MP4_FreeBox_Common },
{ ATOM_cmvd, MP4_ReadBox_cmvd, MP4_FreeBox_cmvd },
{ ATOM_avcC, MP4_ReadBox_avcC, MP4_FreeBox_avcC },
{ ATOM_dac3, MP4_ReadBox_dac3, MP4_FreeBox_Common },
{ ATOM_enda, MP4_ReadBox_enda, MP4_FreeBox_Common },
{ ATOM_gnre, MP4_ReadBox_gnre, MP4_FreeBox_Common },
{ ATOM_trkn, MP4_ReadBox_trkn, MP4_FreeBox_Common },
{ ATOM_iods, MP4_ReadBox_iods, MP4_FreeBox_Common },
/* Nothing to do with this box */
{ FOURCC_mdat, MP4_ReadBoxSkip, MP4_FreeBox_Common },
{ FOURCC_skip, MP4_ReadBoxSkip, MP4_FreeBox_Common },
{ FOURCC_free, MP4_ReadBoxSkip, MP4_FreeBox_Common },
{ FOURCC_wide, MP4_ReadBoxSkip, MP4_FreeBox_Common },
{ ATOM_mdat, MP4_ReadBoxSkip, MP4_FreeBox_Common },
{ ATOM_skip, MP4_ReadBoxSkip, MP4_FreeBox_Common },
{ ATOM_free, MP4_ReadBoxSkip, MP4_FreeBox_Common },
{ ATOM_wide, MP4_ReadBoxSkip, MP4_FreeBox_Common },
/* for codecs */
{ FOURCC_soun, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_ms02, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_ms11, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_ms55, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC__mp3, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_mp4a, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_twos, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_sowt, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_QDMC, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_QDM2, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_ima4, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_IMA4, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_dvi, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_alaw, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_ulaw, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_raw, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_MAC3, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_MAC6, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_Qclp, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_samr, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_sawb, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_OggS, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_alac, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_drmi, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_vide, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_mp4v, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_SVQ1, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_SVQ3, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_ZyGo, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_DIVX, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_XVID, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_h263, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_s263, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_cvid, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_3IV1, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_3iv1, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_3IV2, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_3iv2, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_3IVD, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_3ivd, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_3VID, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_3vid, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_mjpa, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_mjpb, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_qdrw, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_mp2v, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_hdv2, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_mjqt, MP4_ReadBox_default, NULL }, /* found in mjpa/b */
{ FOURCC_mjht, MP4_ReadBox_default, NULL },
{ FOURCC_dvc, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_dvp, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_dv5n, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_dv5p, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_VP31, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_vp31, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_h264, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_jpeg, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_avc1, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_yv12, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_yuv2, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ FOURCC_mp4s, MP4_ReadBox_sample_mp4s, MP4_FreeBox_Common },
{ ATOM_soun, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_ms02, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_ms11, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_ms55, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM__mp3, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_mp4a, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_twos, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_sowt, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_QDMC, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_QDM2, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_ima4, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_IMA4, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_dvi, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_alaw, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_ulaw, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_raw, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_MAC3, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_MAC6, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_Qclp, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_samr, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_sawb, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_OggS, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_alac, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_drmi, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_vide, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_mp4v, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_SVQ1, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_SVQ3, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_ZyGo, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_DIVX, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_XVID, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_h263, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_s263, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_cvid, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_3IV1, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_3iv1, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_3IV2, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_3iv2, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_3IVD, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_3ivd, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_3VID, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_3vid, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_mjpa, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_mjpb, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_qdrw, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_mp2v, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_hdv2, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_mjqt, MP4_ReadBox_default, NULL }, /* found in mjpa/b */
{ ATOM_mjht, MP4_ReadBox_default, NULL },
{ ATOM_dvc, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_dvp, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_dv5n, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_dv5p, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_VP31, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_vp31, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_h264, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_jpeg, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_avc1, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_yv12, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_yuv2, MP4_ReadBox_sample_vide, MP4_FreeBox_sample_vide },
{ ATOM_mp4s, MP4_ReadBox_sample_mp4s, MP4_FreeBox_Common },
/* XXX there is 2 box where we could find this entry stbl and tref*/
{ FOURCC_hint, MP4_ReadBox_default, MP4_FreeBox_Common },
{ ATOM_hint, MP4_ReadBox_default, MP4_FreeBox_Common },
/* found in tref box */
{ FOURCC_dpnd, MP4_ReadBox_default, NULL },
{ FOURCC_ipir, MP4_ReadBox_default, NULL },
{ FOURCC_mpod, MP4_ReadBox_default, NULL },
{ FOURCC_chap, MP4_ReadBox_tref_generic, MP4_FreeBox_tref_generic },
{ ATOM_dpnd, MP4_ReadBox_default, NULL },
{ ATOM_ipir, MP4_ReadBox_default, NULL },
{ ATOM_mpod, MP4_ReadBox_default, NULL },
{ ATOM_chap, MP4_ReadBox_tref_generic, MP4_FreeBox_tref_generic },
/* found in hnti */
{ FOURCC_rtp, MP4_ReadBox_default, NULL },
{ ATOM_rtp, MP4_ReadBox_default, NULL },
/* found in rmra */
{ FOURCC_rdrf, MP4_ReadBox_rdrf, MP4_FreeBox_rdrf },
{ FOURCC_rmdr, MP4_ReadBox_rmdr, MP4_FreeBox_Common },
{ FOURCC_rmqu, MP4_ReadBox_rmqu, MP4_FreeBox_Common },
{ FOURCC_rmvc, MP4_ReadBox_rmvc, MP4_FreeBox_Common },
{ FOURCC_drms, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ FOURCC_sinf, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_schi, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_user, MP4_ReadBox_drms, MP4_FreeBox_Common },
{ FOURCC_key, MP4_ReadBox_drms, MP4_FreeBox_Common },
{ FOURCC_iviv, MP4_ReadBox_drms, MP4_FreeBox_Common },
{ FOURCC_priv, MP4_ReadBox_drms, MP4_FreeBox_Common },
{ FOURCC_frma, MP4_ReadBox_frma, MP4_FreeBox_Common },
{ FOURCC_skcr, MP4_ReadBox_skcr, MP4_FreeBox_Common },
{ ATOM_rdrf, MP4_ReadBox_rdrf, MP4_FreeBox_rdrf },
{ ATOM_rmdr, MP4_ReadBox_rmdr, MP4_FreeBox_Common },
{ ATOM_rmqu, MP4_ReadBox_rmqu, MP4_FreeBox_Common },
{ ATOM_rmvc, MP4_ReadBox_rmvc, MP4_FreeBox_Common },
{ ATOM_drms, MP4_ReadBox_sample_soun, MP4_FreeBox_sample_soun },
{ ATOM_sinf, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_schi, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_user, MP4_ReadBox_drms, MP4_FreeBox_Common },
{ ATOM_key, MP4_ReadBox_drms, MP4_FreeBox_Common },
{ ATOM_iviv, MP4_ReadBox_drms, MP4_FreeBox_Common },
{ ATOM_priv, MP4_ReadBox_drms, MP4_FreeBox_Common },
{ ATOM_frma, MP4_ReadBox_frma, MP4_FreeBox_Common },
{ ATOM_skcr, MP4_ReadBox_skcr, MP4_FreeBox_Common },
/* found in udta */
{ FOURCC_0xa9nam, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9aut, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9cpy, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9swr, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9inf, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9ART, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9dir, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9cmt, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9req, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9day, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9des, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9fmt, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9prd, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9prf, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9src, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9alb, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9dis, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9enc, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9gen, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9trk, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9dsa, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9hst, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9url, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9ope, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9com, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9wrt, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9too, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9wrn, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9mak, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9mod, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9PRD, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9grp, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_0xa9lyr, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ FOURCC_chpl, MP4_ReadBox_chpl, MP4_FreeBox_chpl },
{ ATOM_0xa9nam, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9aut, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9cpy, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9swr, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9inf, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9ART, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9dir, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9cmt, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9req, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9day, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9des, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9fmt, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9prd, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9prf, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9src, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9alb, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9dis, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9enc, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9gen, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9trk, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9dsa, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9hst, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9url, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9ope, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9com, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9wrt, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9too, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9wrn, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9mak, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9mod, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9PRD, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9grp, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_0xa9lyr, MP4_ReadBox_0xa9xxx, MP4_FreeBox_0xa9xxx },
{ ATOM_chpl, MP4_ReadBox_chpl, MP4_FreeBox_chpl },
/* iTunes/Quicktime meta info */
{ FOURCC_meta, MP4_ReadBox_meta, MP4_FreeBox_Common },
{ FOURCC_name, MP4_ReadBox_name, MP4_FreeBox_name },
{ ATOM_meta, MP4_ReadBox_meta, MP4_FreeBox_Common },
{ ATOM_name, MP4_ReadBox_name, MP4_FreeBox_name },
/* found in smoothstreaming */
{ FOURCC_traf, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ FOURCC_mfhd, MP4_ReadBox_mfhd, MP4_FreeBox_Common },
{ FOURCC_tfhd, MP4_ReadBox_tfhd, MP4_FreeBox_Common },
{ FOURCC_trun, MP4_ReadBox_trun, MP4_FreeBox_trun },
{ ATOM_traf, MP4_ReadBoxContainer, MP4_FreeBox_Common },
{ ATOM_mfhd, MP4_ReadBox_mfhd, MP4_FreeBox_Common },
{ ATOM_tfhd, MP4_ReadBox_tfhd, MP4_FreeBox_Common },
{ ATOM_trun, MP4_ReadBox_trun, MP4_FreeBox_trun },
/* Last entry */
{ 0, MP4_ReadBox_default, NULL }
......@@ -3116,7 +3116,7 @@ MP4_Box_t *MP4_BoxGetRoot( stream_t *s )
( p_cmov = MP4_BoxGet( p_root, "foov/cmov" ) ) ) )
{
/* rename the compressed moov as a box to skip */
p_moov->i_type = FOURCC_skip;
p_moov->i_type = ATOM_skip;
/* get uncompressed p_moov */
p_moov = p_cmov->data.p_cmov->p_moov;
......
......@@ -23,217 +23,217 @@
#ifndef _VLC_MP4_H
#define _VLC_MP4_H 1
#define FOURCC_uuid VLC_FOURCC( 'u', 'u', 'i', 'd' )
#define FOURCC_ftyp VLC_FOURCC( 'f', 't', 'y', 'p' )
#define FOURCC_moov VLC_FOURCC( 'm', 'o', 'o', 'v' )
#define FOURCC_foov VLC_FOURCC( 'f', 'o', 'o', 'v' )
#define FOURCC_cmov VLC_FOURCC( 'c', 'm', 'o', 'v' )
#define FOURCC_dcom VLC_FOURCC( 'd', 'c', 'o', 'm' )
#define FOURCC_cmvd VLC_FOURCC( 'c', 'm', 'v', 'd' )
#define FOURCC_moof VLC_FOURCC( 'm', 'o', 'o', 'f' )
#define FOURCC_mdat VLC_FOURCC( 'm', 'd', 'a', 't' )
#define FOURCC_skip VLC_FOURCC( 's', 'k', 'i', 'p' )
#define FOURCC_free VLC_FOURCC( 'f', 'r', 'e', 'e' )
#define FOURCC_udta VLC_FOURCC( 'u', 'd', 't', 'a' )
#define FOURCC_wide VLC_FOURCC( 'w', 'i', 'd', 'e' )
#define FOURCC_trak VLC_FOURCC( 't', 'r', 'a', 'k' )
#define FOURCC_mvhd VLC_FOURCC( 'm', 'v', 'h', 'd' )
#define FOURCC_tkhd VLC_FOURCC( 't', 'k', 'h', 'd' )
#define FOURCC_tref VLC_FOURCC( 't', 'r', 'e', 'f' )
#define FOURCC_mdia VLC_FOURCC( 'm', 'd', 'i', 'a' )
#define FOURCC_mdhd VLC_FOURCC( 'm', 'd', 'h', 'd' )
#define FOURCC_hdlr VLC_FOURCC( 'h', 'd', 'l', 'r' )
#define FOURCC_minf VLC_FOURCC( 'm', 'i', 'n', 'f' )
#define FOURCC_vmhd VLC_FOURCC( 'v', 'm', 'h', 'd' )
#define FOURCC_smhd VLC_FOURCC( 's', 'm', 'h', 'd' )
#define FOURCC_hmhd VLC_FOURCC( 'h', 'm', 'h', 'd' )
#define FOURCC_dinf VLC_FOURCC( 'd', 'i', 'n', 'f' )
#define FOURCC_url VLC_FOURCC( 'u', 'r', 'l', ' ' )
#define FOURCC_urn VLC_FOURCC( 'u', 'r', 'n', ' ' )
#define FOURCC_dref VLC_FOURCC( 'd', 'r', 'e', 'f' )
#define FOURCC_stbl VLC_FOURCC( 's', 't', 'b', 'l' )
#define FOURCC_stts VLC_FOURCC( 's', 't', 't', 's' )
#define FOURCC_ctts VLC_FOURCC( 'c', 't', 't', 's' )
#define FOURCC_stsd VLC_FOURCC( 's', 't', 's', 'd' )
#define FOURCC_stsz VLC_FOURCC( 's', 't', 's', 'z' )
#define FOURCC_stz2 VLC_FOURCC( 's', 't', 'z', '2' )
#define FOURCC_stsc VLC_FOURCC( 's', 't', 's', 'c' )
#define FOURCC_stco VLC_FOURCC( 's', 't', 'c', 'o' )
#define FOURCC_co64 VLC_FOURCC( 'c', 'o', '6', '4' )
#define FOURCC_stss VLC_FOURCC( 's', 't', 's', 's' )
#define FOURCC_stsh VLC_FOURCC( 's', 't', 's', 'h' )
#define FOURCC_stdp VLC_FOURCC( 's', 't', 'd', 'p' )
#define FOURCC_padb VLC_FOURCC( 'p', 'a', 'd', 'b' )
#define FOURCC_edts VLC_FOURCC( 'e', 'd', 't', 's' )
#define FOURCC_elst VLC_FOURCC( 'e', 'l', 's', 't' )
#define FOURCC_mvex VLC_FOURCC( 'm', 'v', 'e', 'x' )
#define FOURCC_trex VLC_FOURCC( 't', 'r', 'e', 'x' )
#define FOURCC_mfhd VLC_FOURCC( 'm', 'f', 'h', 'd' )
#define FOURCC_traf VLC_FOURCC( 't', 'r', 'a', 'f' )
#define FOURCC_tfhd VLC_FOURCC( 't', 'f', 'h', 'd' )
#define FOURCC_trun VLC_FOURCC( 't', 'r', 'u', 'n' )
#define FOURCC_cprt VLC_FOURCC( 'c', 'p', 'r', 't' )
#define FOURCC_iods VLC_FOURCC( 'i', 'o', 'd', 's' )
#define FOURCC_nmhd VLC_FOURCC( 'n', 'm', 'h', 'd' )
#define FOURCC_mp2v VLC_FOURCC( 'm', 'p', '2', 'v' )
#define FOURCC_mp4v VLC_FOURCC( 'm', 'p', '4', 'v' )
#define FOURCC_mp4a VLC_FOURCC( 'm', 'p', '4', 'a' )
#define FOURCC_mp4s VLC_FOURCC( 'm', 'p', '4', 's' )
#define FOURCC_vide VLC_FOURCC( 'v', 'i', 'd', 'e' )
#define FOURCC_soun VLC_FOURCC( 's', 'o', 'u', 'n' )
#define FOURCC_hint VLC_FOURCC( 'h', 'i', 'n', 't' )
#define FOURCC_hdv2 VLC_FOURCC( 'h', 'd', 'v', '2' )
#define FOURCC_dpnd VLC_FOURCC( 'd', 'p', 'n', 'd' )
#define FOURCC_ipir VLC_FOURCC( 'i', 'p', 'i', 'r' )
#define FOURCC_mpod VLC_FOURCC( 'm', 'p', 'o', 'd' )
#define FOURCC_hnti VLC_FOURCC( 'h', 'n', 't', 'i' )
#define FOURCC_rtp VLC_FOURCC( 'r', 't', 'p', ' ' )
#define FOURCC_isom VLC_FOURCC( 'i', 's', 'o', 'm' )
#define FOURCC_3gp4 VLC_FOURCC( '3', 'g', 'p', '4' )
#define FOURCC_esds VLC_FOURCC( 'e', 's', 'd', 's' )
#define FOURCC__mp3 VLC_FOURCC( '.', 'm', 'p', '3' )
#define FOURCC_ms02 VLC_FOURCC( 'm', 's', 0x0, 0x02 )
#define FOURCC_ms11 VLC_FOURCC( 'm', 's', 0x0, 0x11 )
#define FOURCC_ms55 VLC_FOURCC( 'm', 's', 0x0, 0x55 )
#define FOURCC_twos VLC_FOURCC( 't', 'w', 'o', 's' )
#define FOURCC_sowt VLC_FOURCC( 's', 'o', 'w', 't' )
#define FOURCC_QDMC VLC_FOURCC( 'Q', 'D', 'M', 'C' )
#define FOURCC_QDM2 VLC_FOURCC( 'Q', 'D', 'M', '2' )
#define FOURCC_ima4 VLC_FOURCC( 'i', 'm', 'a', '4' )
#define FOURCC_IMA4 VLC_FOURCC( 'I', 'M', 'A', '4' )
#define FOURCC_dvi VLC_FOURCC( 'd', 'v', 'i', ' ' )
#define FOURCC_MAC3 VLC_FOURCC( 'M', 'A', 'C', '3' )
#define FOURCC_MAC6 VLC_FOURCC( 'M', 'A', 'C', '6' )
#define FOURCC_alaw VLC_FOURCC( 'a', 'l', 'a', 'w' )
#define FOURCC_ulaw VLC_FOURCC( 'u', 'l', 'a', 'w' )
#define FOURCC_Qclp VLC_FOURCC( 'Q', 'c', 'l', 'p' )
#define FOURCC_samr VLC_FOURCC( 's', 'a', 'm', 'r' )
#define FOURCC_sawb VLC_FOURCC( 's', 'a', 'w', 'b' )
#define FOURCC_OggS VLC_FOURCC( 'O', 'g', 'g', 'S' )
#define FOURCC_alac VLC_FOURCC( 'a', 'l', 'a', 'c' )
#define FOURCC_dac3 VLC_FOURCC( 'd', 'a', 'c', '3' )
#define FOURCC_dec3 VLC_FOURCC( 'd', 'e', 'c', '3' )
#define FOURCC_enda VLC_FOURCC( 'e', 'n', 'd', 'a' )
#define FOURCC_gnre VLC_FOURCC( 'g', 'n', 'r', 'e' )
#define FOURCC_trkn VLC_FOURCC( 't', 'r', 'k', 'n' )
#define FOURCC_zlib VLC_FOURCC( 'z', 'l', 'i', 'b' )
#define FOURCC_SVQ1 VLC_FOURCC( 'S', 'V', 'Q', '1' )
#define FOURCC_SVQ3 VLC_FOURCC( 'S', 'V', 'Q', '3' )
#define FOURCC_ZyGo VLC_FOURCC( 'Z', 'y', 'G', 'o' )
#define FOURCC_3IV1 VLC_FOURCC( '3', 'I', 'V', '1' )
#define FOURCC_3iv1 VLC_FOURCC( '3', 'i', 'v', '1' )
#define FOURCC_3IV2 VLC_FOURCC( '3', 'I', 'V', '2' )
#define FOURCC_3iv2 VLC_FOURCC( '3', 'i', 'v', '2' )
#define FOURCC_3IVD VLC_FOURCC( '3', 'I', 'V', 'D' )
#define FOURCC_3ivd VLC_FOURCC( '3', 'i', 'v', 'd' )
#define FOURCC_3VID VLC_FOURCC( '3', 'V', 'I', 'D' )
#define FOURCC_3vid VLC_FOURCC( '3', 'v', 'i', 'd' )
#define FOURCC_h263 VLC_FOURCC( 'h', '2', '6', '3' )
#define FOURCC_s263 VLC_FOURCC( 's', '2', '6', '3' )
#define FOURCC_DIVX VLC_FOURCC( 'D', 'I', 'V', 'X' )
#define FOURCC_XVID VLC_FOURCC( 'X', 'V', 'I', 'D' )
#define FOURCC_cvid VLC_FOURCC( 'c', 'v', 'i', 'd' )
#define FOURCC_mjpa VLC_FOURCC( 'm', 'j', 'p', 'a' )
#define FOURCC_mjpb VLC_FOURCC( 'm', 'j', 'q', 't' )
#define FOURCC_mjqt VLC_FOURCC( 'm', 'j', 'h', 't' )
#define FOURCC_mjht VLC_FOURCC( 'm', 'j', 'p', 'b' )
#define FOURCC_VP31 VLC_FOURCC( 'V', 'P', '3', '1' )
#define FOURCC_vp31 VLC_FOURCC( 'v', 'p', '3', '1' )
#define FOURCC_h264 VLC_FOURCC( 'h', '2', '6', '4' )
#define FOURCC_qdrw VLC_FOURCC( 'q', 'd', 'r', 'w' )
#define FOURCC_avc1 VLC_FOURCC( 'a', 'v', 'c', '1' )
#define FOURCC_avcC VLC_FOURCC( 'a', 'v', 'c', 'C' )
#define FOURCC_m4ds VLC_FOURCC( 'm', '4', 'd', 's' )
#define FOURCC_dvc VLC_FOURCC( 'd', 'v', 'c', ' ' )
#define FOURCC_dvp VLC_FOURCC( 'd', 'v', 'p', ' ' )
#define FOURCC_dv5n VLC_FOURCC( 'd', 'v', '5', 'n' )
#define FOURCC_dv5p VLC_FOURCC( 'd', 'v', '5', 'p' )
#define FOURCC_raw VLC_FOURCC( 'r', 'a', 'w', ' ' )
#define FOURCC_jpeg VLC_FOURCC( 'j', 'p', 'e', 'g' )
#define FOURCC_yv12 VLC_FOURCC( 'y', 'v', '1', '2' )
#define FOURCC_yuv2 VLC_FOURCC( 'y', 'u', 'v', '2' )
#define FOURCC_rmra VLC_FOURCC( 'r', 'm', 'r', 'a' )
#define FOURCC_rmda VLC_FOURCC( 'r', 'm', 'd', 'a' )
#define FOURCC_rdrf VLC_FOURCC( 'r', 'd', 'r', 'f' )
#define FOURCC_rmdr VLC_FOURCC( 'r', 'm', 'd', 'r' )
#define FOURCC_rmvc VLC_FOURCC( 'r', 'm', 'v', 'c' )
#define FOURCC_rmcd VLC_FOURCC( 'r', 'm', 'c', 'd' )
#define FOURCC_rmqu VLC_FOURCC( 'r', 'm', 'q', 'u' )
#define FOURCC_alis VLC_FOURCC( 'a', 'l', 'i', 's' )
#define FOURCC_gmhd VLC_FOURCC( 'g', 'm', 'h', 'd' )
#define FOURCC_wave VLC_FOURCC( 'w', 'a', 'v', 'e' )
#define FOURCC_drms VLC_FOURCC( 'd', 'r', 'm', 's' )
#define FOURCC_sinf VLC_FOURCC( 's', 'i', 'n', 'f' )
#define FOURCC_schi VLC_FOURCC( 's', 'c', 'h', 'i' )
#define FOURCC_user VLC_FOURCC( 'u', 's', 'e', 'r' )
#define FOURCC_key VLC_FOURCC( 'k', 'e', 'y', ' ' )
#define FOURCC_iviv VLC_FOURCC( 'i', 'v', 'i', 'v' )
#define FOURCC_name VLC_FOURCC( 'n', 'a', 'm', 'e' )
#define FOURCC_priv VLC_FOURCC( 'p', 'r', 'i', 'v' )
#define FOURCC_drmi VLC_FOURCC( 'd', 'r', 'm', 'i' )
#define FOURCC_frma VLC_FOURCC( 'f', 'r', 'm', 'a' )
#define FOURCC_skcr VLC_FOURCC( 's', 'k', 'c', 'r' )
#define FOURCC_text VLC_FOURCC( 't', 'e', 'x', 't' )
#define FOURCC_tx3g VLC_FOURCC( 't', 'x', '3', 'g' )
#define FOURCC_subp VLC_FOURCC( 's', 'u', 'b', 'p' )
#define FOURCC_sbtl VLC_FOURCC( 's', 'b', 't', 'l' )
#define FOURCC_0xa9nam VLC_FOURCC( 0xa9, 'n', 'a', 'm' )
#define FOURCC_0xa9aut VLC_FOURCC( 0xa9, 'a', 'u', 't' )
#define FOURCC_0xa9cpy VLC_FOURCC( 0xa9, 'c', 'p', 'y' )
#define FOURCC_0xa9inf VLC_FOURCC( 0xa9, 'i', 'n', 'f' )
#define FOURCC_0xa9ART VLC_FOURCC( 0xa9, 'A', 'R', 'T' )
#define FOURCC_0xa9des VLC_FOURCC( 0xa9, 'd', 'e', 's' )
#define FOURCC_0xa9dir VLC_FOURCC( 0xa9, 'd', 'i', 'r' )
#define FOURCC_0xa9cmt VLC_FOURCC( 0xa9, 'c', 'm', 't' )
#define FOURCC_0xa9req VLC_FOURCC( 0xa9, 'r', 'e', 'q' )
#define FOURCC_0xa9day VLC_FOURCC( 0xa9, 'd', 'a', 'y' )
#define FOURCC_0xa9fmt VLC_FOURCC( 0xa9, 'f', 'm', 't' )
#define FOURCC_0xa9prd VLC_FOURCC( 0xa9, 'p', 'r', 'd' )
#define FOURCC_0xa9prf VLC_FOURCC( 0xa9, 'p', 'r', 'f' )
#define FOURCC_0xa9src VLC_FOURCC( 0xa9, 's', 'r', 'c' )
#define FOURCC_0xa9alb VLC_FOURCC( 0xa9, 'a', 'l', 'b' )
#define FOURCC_0xa9dis VLC_FOURCC( 0xa9, 'd', 'i', 's' )
#define FOURCC_0xa9enc VLC_FOURCC( 0xa9, 'e', 'n', 'c' )
#define FOURCC_0xa9trk VLC_FOURCC( 0xa9, 't', 'r', 'k' )
#define FOURCC_0xa9url VLC_FOURCC( 0xa9, 'u', 'r', 'l' )
#define FOURCC_0xa9dsa VLC_FOURCC( 0xa9, 'd', 's', 'a' )
#define FOURCC_0xa9hst VLC_FOURCC( 0xa9, 'h', 's', 't' )
#define FOURCC_0xa9ope VLC_FOURCC( 0xa9, 'o', 'p', 'e' )
#define FOURCC_0xa9wrt VLC_FOURCC( 0xa9, 'w', 'r', 't' )
#define FOURCC_0xa9com VLC_FOURCC( 0xa9, 'c', 'o', 'm' )
#define FOURCC_0xa9gen VLC_FOURCC( 0xa9, 'g', 'e', 'n' )
#define FOURCC_0xa9too VLC_FOURCC( 0xa9, 't', 'o', 'o' )
#define FOURCC_0xa9wrn VLC_FOURCC( 0xa9, 'w', 'r', 'n' )
#define FOURCC_0xa9swr VLC_FOURCC( 0xa9, 's', 'w', 'r' )
#define FOURCC_0xa9mak VLC_FOURCC( 0xa9, 'm', 'a', 'k' )
#define FOURCC_0xa9mod VLC_FOURCC( 0xa9, 'm', 'o', 'd' )
#define FOURCC_0xa9PRD VLC_FOURCC( 0xa9, 'P', 'R', 'D' )
#define FOURCC_0xa9grp VLC_FOURCC( 0xa9, 'g', 'r', 'p' )
#define FOURCC_0xa9lyr VLC_FOURCC( 0xa9, 'g', 'r', 'p' )
#define FOURCC_chpl VLC_FOURCC( 'c', 'h', 'p', 'l' )
#define FOURCC_WLOC VLC_FOURCC( 'W', 'L', 'O', 'C' )
#define FOURCC_meta VLC_FOURCC( 'm', 'e', 't', 'a' )
#define FOURCC_ilst VLC_FOURCC( 'i', 'l', 's', 't' )
#define FOURCC_chap VLC_FOURCC( 'c', 'h', 'a', 'p' )
#define ATOM_uuid VLC_FOURCC( 'u', 'u', 'i', 'd' )
#define ATOM_ftyp VLC_FOURCC( 'f', 't', 'y', 'p' )
#define ATOM_moov VLC_FOURCC( 'm', 'o', 'o', 'v' )
#define ATOM_foov VLC_FOURCC( 'f', 'o', 'o', 'v' )
#define ATOM_cmov VLC_FOURCC( 'c', 'm', 'o', 'v' )
#define ATOM_dcom VLC_FOURCC( 'd', 'c', 'o', 'm' )
#define ATOM_cmvd VLC_FOURCC( 'c', 'm', 'v', 'd' )
#define ATOM_moof VLC_FOURCC( 'm', 'o', 'o', 'f' )
#define ATOM_mdat VLC_FOURCC( 'm', 'd', 'a', 't' )
#define ATOM_skip VLC_FOURCC( 's', 'k', 'i', 'p' )
#define ATOM_free VLC_FOURCC( 'f', 'r', 'e', 'e' )
#define ATOM_udta VLC_FOURCC( 'u', 'd', 't', 'a' )
#define ATOM_wide VLC_FOURCC( 'w', 'i', 'd', 'e' )
#define ATOM_trak VLC_FOURCC( 't', 'r', 'a', 'k' )
#define ATOM_mvhd VLC_FOURCC( 'm', 'v', 'h', 'd' )
#define ATOM_tkhd VLC_FOURCC( 't', 'k', 'h', 'd' )
#define ATOM_tref VLC_FOURCC( 't', 'r', 'e', 'f' )
#define ATOM_mdia VLC_FOURCC( 'm', 'd', 'i', 'a' )
#define ATOM_mdhd VLC_FOURCC( 'm', 'd', 'h', 'd' )
#define ATOM_hdlr VLC_FOURCC( 'h', 'd', 'l', 'r' )
#define ATOM_minf VLC_FOURCC( 'm', 'i', 'n', 'f' )
#define ATOM_vmhd VLC_FOURCC( 'v', 'm', 'h', 'd' )
#define ATOM_smhd VLC_FOURCC( 's', 'm', 'h', 'd' )
#define ATOM_hmhd VLC_FOURCC( 'h', 'm', 'h', 'd' )
#define ATOM_dinf VLC_FOURCC( 'd', 'i', 'n', 'f' )
#define ATOM_url VLC_FOURCC( 'u', 'r', 'l', ' ' )
#define ATOM_urn VLC_FOURCC( 'u', 'r', 'n', ' ' )
#define ATOM_dref VLC_FOURCC( 'd', 'r', 'e', 'f' )
#define ATOM_stbl VLC_FOURCC( 's', 't', 'b', 'l' )
#define ATOM_stts VLC_FOURCC( 's', 't', 't', 's' )
#define ATOM_ctts VLC_FOURCC( 'c', 't', 't', 's' )
#define ATOM_stsd VLC_FOURCC( 's', 't', 's', 'd' )
#define ATOM_stsz VLC_FOURCC( 's', 't', 's', 'z' )
#define ATOM_stz2 VLC_FOURCC( 's', 't', 'z', '2' )
#define ATOM_stsc VLC_FOURCC( 's', 't', 's', 'c' )
#define ATOM_stco VLC_FOURCC( 's', 't', 'c', 'o' )
#define ATOM_co64 VLC_FOURCC( 'c', 'o', '6', '4' )
#define ATOM_stss VLC_FOURCC( 's', 't', 's', 's' )
#define ATOM_stsh VLC_FOURCC( 's', 't', 's', 'h' )
#define ATOM_stdp VLC_FOURCC( 's', 't', 'd', 'p' )
#define ATOM_padb VLC_FOURCC( 'p', 'a', 'd', 'b' )
#define ATOM_edts VLC_FOURCC( 'e', 'd', 't', 's' )
#define ATOM_elst VLC_FOURCC( 'e', 'l', 's', 't' )
#define ATOM_mvex VLC_FOURCC( 'm', 'v', 'e', 'x' )
#define ATOM_trex VLC_FOURCC( 't', 'r', 'e', 'x' )
#define ATOM_mfhd VLC_FOURCC( 'm', 'f', 'h', 'd' )
#define ATOM_traf VLC_FOURCC( 't', 'r', 'a', 'f' )
#define ATOM_tfhd VLC_FOURCC( 't', 'f', 'h', 'd' )
#define ATOM_trun VLC_FOURCC( 't', 'r', 'u', 'n' )
#define ATOM_cprt VLC_FOURCC( 'c', 'p', 'r', 't' )
#define ATOM_iods VLC_FOURCC( 'i', 'o', 'd', 's' )
#define ATOM_nmhd VLC_FOURCC( 'n', 'm', 'h', 'd' )
#define ATOM_mp2v VLC_FOURCC( 'm', 'p', '2', 'v' )
#define ATOM_mp4v VLC_FOURCC( 'm', 'p', '4', 'v' )
#define ATOM_mp4a VLC_FOURCC( 'm', 'p', '4', 'a' )
#define ATOM_mp4s VLC_FOURCC( 'm', 'p', '4', 's' )
#define ATOM_vide VLC_FOURCC( 'v', 'i', 'd', 'e' )
#define ATOM_soun VLC_FOURCC( 's', 'o', 'u', 'n' )
#define ATOM_hint VLC_FOURCC( 'h', 'i', 'n', 't' )
#define ATOM_hdv2 VLC_FOURCC( 'h', 'd', 'v', '2' )
#define ATOM_dpnd VLC_FOURCC( 'd', 'p', 'n', 'd' )
#define ATOM_ipir VLC_FOURCC( 'i', 'p', 'i', 'r' )
#define ATOM_mpod VLC_FOURCC( 'm', 'p', 'o', 'd' )
#define ATOM_hnti VLC_FOURCC( 'h', 'n', 't', 'i' )
#define ATOM_rtp VLC_FOURCC( 'r', 't', 'p', ' ' )
#define ATOM_isom VLC_FOURCC( 'i', 's', 'o', 'm' )
#define ATOM_3gp4 VLC_FOURCC( '3', 'g', 'p', '4' )
#define ATOM_esds VLC_FOURCC( 'e', 's', 'd', 's' )
#define ATOM__mp3 VLC_FOURCC( '.', 'm', 'p', '3' )
#define ATOM_ms02 VLC_FOURCC( 'm', 's', 0x0, 0x02 )
#define ATOM_ms11 VLC_FOURCC( 'm', 's', 0x0, 0x11 )
#define ATOM_ms55 VLC_FOURCC( 'm', 's', 0x0, 0x55 )
#define ATOM_twos VLC_FOURCC( 't', 'w', 'o', 's' )
#define ATOM_sowt VLC_FOURCC( 's', 'o', 'w', 't' )
#define ATOM_QDMC VLC_FOURCC( 'Q', 'D', 'M', 'C' )
#define ATOM_QDM2 VLC_FOURCC( 'Q', 'D', 'M', '2' )
#define ATOM_ima4 VLC_FOURCC( 'i', 'm', 'a', '4' )
#define ATOM_IMA4 VLC_FOURCC( 'I', 'M', 'A', '4' )
#define ATOM_dvi VLC_FOURCC( 'd', 'v', 'i', ' ' )
#define ATOM_MAC3 VLC_FOURCC( 'M', 'A', 'C', '3' )
#define ATOM_MAC6 VLC_FOURCC( 'M', 'A', 'C', '6' )
#define ATOM_alaw VLC_FOURCC( 'a', 'l', 'a', 'w' )
#define ATOM_ulaw VLC_FOURCC( 'u', 'l', 'a', 'w' )
#define ATOM_Qclp VLC_FOURCC( 'Q', 'c', 'l', 'p' )
#define ATOM_samr VLC_FOURCC( 's', 'a', 'm', 'r' )
#define ATOM_sawb VLC_FOURCC( 's', 'a', 'w', 'b' )
#define ATOM_OggS VLC_FOURCC( 'O', 'g', 'g', 'S' )
#define ATOM_alac VLC_FOURCC( 'a', 'l', 'a', 'c' )
#define ATOM_dac3 VLC_FOURCC( 'd', 'a', 'c', '3' )
#define ATOM_dec3 VLC_FOURCC( 'd', 'e', 'c', '3' )
#define ATOM_enda VLC_FOURCC( 'e', 'n', 'd', 'a' )
#define ATOM_gnre VLC_FOURCC( 'g', 'n', 'r', 'e' )
#define ATOM_trkn VLC_FOURCC( 't', 'r', 'k', 'n' )
#define ATOM_zlib VLC_FOURCC( 'z', 'l', 'i', 'b' )
#define ATOM_SVQ1 VLC_FOURCC( 'S', 'V', 'Q', '1' )
#define ATOM_SVQ3 VLC_FOURCC( 'S', 'V', 'Q', '3' )
#define ATOM_ZyGo VLC_FOURCC( 'Z', 'y', 'G', 'o' )
#define ATOM_3IV1 VLC_FOURCC( '3', 'I', 'V', '1' )
#define ATOM_3iv1 VLC_FOURCC( '3', 'i', 'v', '1' )
#define ATOM_3IV2 VLC_FOURCC( '3', 'I', 'V', '2' )
#define ATOM_3iv2 VLC_FOURCC( '3', 'i', 'v', '2' )
#define ATOM_3IVD VLC_FOURCC( '3', 'I', 'V', 'D' )
#define ATOM_3ivd VLC_FOURCC( '3', 'i', 'v', 'd' )
#define ATOM_3VID VLC_FOURCC( '3', 'V', 'I', 'D' )
#define ATOM_3vid VLC_FOURCC( '3', 'v', 'i', 'd' )
#define ATOM_h263 VLC_FOURCC( 'h', '2', '6', '3' )
#define ATOM_s263 VLC_FOURCC( 's', '2', '6', '3' )
#define ATOM_DIVX VLC_FOURCC( 'D', 'I', 'V', 'X' )
#define ATOM_XVID VLC_FOURCC( 'X', 'V', 'I', 'D' )
#define ATOM_cvid VLC_FOURCC( 'c', 'v', 'i', 'd' )
#define ATOM_mjpa VLC_FOURCC( 'm', 'j', 'p', 'a' )
#define ATOM_mjpb VLC_FOURCC( 'm', 'j', 'q', 't' )
#define ATOM_mjqt VLC_FOURCC( 'm', 'j', 'h', 't' )
#define ATOM_mjht VLC_FOURCC( 'm', 'j', 'p', 'b' )
#define ATOM_VP31 VLC_FOURCC( 'V', 'P', '3', '1' )
#define ATOM_vp31 VLC_FOURCC( 'v', 'p', '3', '1' )
#define ATOM_h264 VLC_FOURCC( 'h', '2', '6', '4' )
#define ATOM_qdrw VLC_FOURCC( 'q', 'd', 'r', 'w' )
#define ATOM_avc1 VLC_FOURCC( 'a', 'v', 'c', '1' )
#define ATOM_avcC VLC_FOURCC( 'a', 'v', 'c', 'C' )
#define ATOM_m4ds VLC_FOURCC( 'm', '4', 'd', 's' )
#define ATOM_dvc VLC_FOURCC( 'd', 'v', 'c', ' ' )
#define ATOM_dvp VLC_FOURCC( 'd', 'v', 'p', ' ' )
#define ATOM_dv5n VLC_FOURCC( 'd', 'v', '5', 'n' )
#define ATOM_dv5p VLC_FOURCC( 'd', 'v', '5', 'p' )
#define ATOM_raw VLC_FOURCC( 'r', 'a', 'w', ' ' )
#define ATOM_jpeg VLC_FOURCC( 'j', 'p', 'e', 'g' )
#define ATOM_yv12 VLC_FOURCC( 'y', 'v', '1', '2' )
#define ATOM_yuv2 VLC_FOURCC( 'y', 'u', 'v', '2' )
#define ATOM_rmra VLC_FOURCC( 'r', 'm', 'r', 'a' )
#define ATOM_rmda VLC_FOURCC( 'r', 'm', 'd', 'a' )
#define ATOM_rdrf VLC_FOURCC( 'r', 'd', 'r', 'f' )
#define ATOM_rmdr VLC_FOURCC( 'r', 'm', 'd', 'r' )
#define ATOM_rmvc VLC_FOURCC( 'r', 'm', 'v', 'c' )
#define ATOM_rmcd VLC_FOURCC( 'r', 'm', 'c', 'd' )
#define ATOM_rmqu VLC_FOURCC( 'r', 'm', 'q', 'u' )
#define ATOM_alis VLC_FOURCC( 'a', 'l', 'i', 's' )
#define ATOM_gmhd VLC_FOURCC( 'g', 'm', 'h', 'd' )
#define ATOM_wave VLC_FOURCC( 'w', 'a', 'v', 'e' )
#define ATOM_drms VLC_FOURCC( 'd', 'r', 'm', 's' )
#define ATOM_sinf VLC_FOURCC( 's', 'i', 'n', 'f' )
#define ATOM_schi VLC_FOURCC( 's', 'c', 'h', 'i' )
#define ATOM_user VLC_FOURCC( 'u', 's', 'e', 'r' )
#define ATOM_key VLC_FOURCC( 'k', 'e', 'y', ' ' )
#define ATOM_iviv VLC_FOURCC( 'i', 'v', 'i', 'v' )
#define ATOM_name VLC_FOURCC( 'n', 'a', 'm', 'e' )
#define ATOM_priv VLC_FOURCC( 'p', 'r', 'i', 'v' )
#define ATOM_drmi VLC_FOURCC( 'd', 'r', 'm', 'i' )
#define ATOM_frma VLC_FOURCC( 'f', 'r', 'm', 'a' )
#define ATOM_skcr VLC_FOURCC( 's', 'k', 'c', 'r' )
#define ATOM_text VLC_FOURCC( 't', 'e', 'x', 't' )
#define ATOM_tx3g VLC_FOURCC( 't', 'x', '3', 'g' )
#define ATOM_subp VLC_FOURCC( 's', 'u', 'b', 'p' )
#define ATOM_sbtl VLC_FOURCC( 's', 'b', 't', 'l' )
#define ATOM_0xa9nam VLC_FOURCC( 0xa9, 'n', 'a', 'm' )
#define ATOM_0xa9aut VLC_FOURCC( 0xa9, 'a', 'u', 't' )
#define ATOM_0xa9cpy VLC_FOURCC( 0xa9, 'c', 'p', 'y' )
#define ATOM_0xa9inf VLC_FOURCC( 0xa9, 'i', 'n', 'f' )
#define ATOM_0xa9ART VLC_FOURCC( 0xa9, 'A', 'R', 'T' )
#define ATOM_0xa9des VLC_FOURCC( 0xa9, 'd', 'e', 's' )
#define ATOM_0xa9dir VLC_FOURCC( 0xa9, 'd', 'i', 'r' )
#define ATOM_0xa9cmt VLC_FOURCC( 0xa9, 'c', 'm', 't' )
#define ATOM_0xa9req VLC_FOURCC( 0xa9, 'r', 'e', 'q' )
#define ATOM_0xa9day VLC_FOURCC( 0xa9, 'd', 'a', 'y' )
#define ATOM_0xa9fmt VLC_FOURCC( 0xa9, 'f', 'm', 't' )
#define ATOM_0xa9prd VLC_FOURCC( 0xa9, 'p', 'r', 'd' )
#define ATOM_0xa9prf VLC_FOURCC( 0xa9, 'p', 'r', 'f' )
#define ATOM_0xa9src VLC_FOURCC( 0xa9, 's', 'r', 'c' )
#define ATOM_0xa9alb VLC_FOURCC( 0xa9, 'a', 'l', 'b' )
#define ATOM_0xa9dis VLC_FOURCC( 0xa9, 'd', 'i', 's' )
#define ATOM_0xa9enc VLC_FOURCC( 0xa9, 'e', 'n', 'c' )
#define ATOM_0xa9trk VLC_FOURCC( 0xa9, 't', 'r', 'k' )
#define ATOM_0xa9url VLC_FOURCC( 0xa9, 'u', 'r', 'l' )
#define ATOM_0xa9dsa VLC_FOURCC( 0xa9, 'd', 's', 'a' )
#define ATOM_0xa9hst VLC_FOURCC( 0xa9, 'h', 's', 't' )
#define ATOM_0xa9ope VLC_FOURCC( 0xa9, 'o', 'p', 'e' )
#define ATOM_0xa9wrt VLC_FOURCC( 0xa9, 'w', 'r', 't' )
#define ATOM_0xa9com VLC_FOURCC( 0xa9, 'c', 'o', 'm' )
#define ATOM_0xa9gen VLC_FOURCC( 0xa9, 'g', 'e', 'n' )
#define ATOM_0xa9too VLC_FOURCC( 0xa9, 't', 'o', 'o' )
#define ATOM_0xa9wrn VLC_FOURCC( 0xa9, 'w', 'r', 'n' )
#define ATOM_0xa9swr VLC_FOURCC( 0xa9, 's', 'w', 'r' )
#define ATOM_0xa9mak VLC_FOURCC( 0xa9, 'm', 'a', 'k' )
#define ATOM_0xa9mod VLC_FOURCC( 0xa9, 'm', 'o', 'd' )
#define ATOM_0xa9PRD VLC_FOURCC( 0xa9, 'P', 'R', 'D' )
#define ATOM_0xa9grp VLC_FOURCC( 0xa9, 'g', 'r', 'p' )
#define ATOM_0xa9lyr VLC_FOURCC( 0xa9, 'g', 'r', 'p' )
#define ATOM_chpl VLC_FOURCC( 'c', 'h', 'p', 'l' )
#define ATOM_WLOC VLC_FOURCC( 'W', 'L', 'O', 'C' )
#define ATOM_meta VLC_FOURCC( 'm', 'e', 't', 'a' )
#define ATOM_ilst VLC_FOURCC( 'i', 'l', 's', 't' )
#define ATOM_chap VLC_FOURCC( 'c', 'h', 'a', 'p' )
/* Do you want some debug information on all read boxes ? */
//#define MP4_VERBOSE 1
......
......@@ -38,7 +38,7 @@
#include "libmp4.h"
#include "drms.h"
#include "id3genres.h" /* for FOURCC_gnre */
#include "id3genres.h" /* for ATOM_gnre */
/*****************************************************************************
* Module descriptor
......@@ -283,15 +283,15 @@ static int Open( vlc_object_t * p_this )
switch( VLC_FOURCC( p_peek[4], p_peek[5], p_peek[6], p_peek[7] ) )
{
case FOURCC_ftyp:
case FOURCC_moov:
case FOURCC_foov:
case FOURCC_moof:
case FOURCC_mdat:
case FOURCC_udta:
case FOURCC_free:
case FOURCC_skip:
case FOURCC_wide:
case ATOM_ftyp:
case ATOM_moov:
case ATOM_foov:
case ATOM_moof:
case ATOM_mdat:
case ATOM_udta:
case ATOM_free:
case ATOM_skip:
case ATOM_wide:
case VLC_FOURCC( 'p', 'n', 'o', 't' ):
break;
default:
......@@ -326,12 +326,12 @@ static int Open( vlc_object_t * p_this )
{
switch( p_ftyp->data.p_ftyp->i_major_brand )
{
case( FOURCC_isom ):
case( ATOM_isom ):
msg_Dbg( p_demux,
"ISO Media file (isom) version %d.",
p_ftyp->data.p_ftyp->i_minor_version );
break;
case( FOURCC_3gp4 ):
case( ATOM_3gp4 ):
case( VLC_FOURCC( '3', 'g', 'p', '5' ) ):
case( VLC_FOURCC( '3', 'g', 'p', '6' ) ):
case( VLC_FOURCC( '3', 'g', 'p', '7' ) ):
......@@ -374,7 +374,7 @@ static int Open( vlc_object_t * p_this )
}
}
/* we have a free box as a moov, rename it */
p_foov->i_type = FOURCC_moov;
p_foov->i_type = ATOM_moov;
}
if( ( p_rmra = MP4_BoxGet( p_sys->p_root, "/moov/rmra" ) ) )
......@@ -899,41 +899,41 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
/* XXX Becarefull p_udta can have box that are not 0xa9xx */
switch( p_0xa9xxx->i_type )
{
case FOURCC_0xa9nam: /* Full name */
case ATOM_0xa9nam: /* Full name */
SET( vlc_meta_SetTitle );
break;
case FOURCC_0xa9aut:
case ATOM_0xa9aut:
SET( vlc_meta_SetArtist );
break;
case FOURCC_0xa9ART:
case ATOM_0xa9ART:
SET( vlc_meta_SetArtist );
break;
case FOURCC_0xa9cpy:
case ATOM_0xa9cpy:
SET( vlc_meta_SetCopyright );
break;
case FOURCC_0xa9day: /* Creation Date */
case ATOM_0xa9day: /* Creation Date */
SET( vlc_meta_SetDate );
break;
case FOURCC_0xa9des: /* Description */
case ATOM_0xa9des: /* Description */
SET( vlc_meta_SetDescription );
break;
case FOURCC_0xa9gen: /* Genre */
case ATOM_0xa9gen: /* Genre */
SET( vlc_meta_SetGenre );
break;
case FOURCC_gnre:
case ATOM_gnre:
if( p_0xa9xxx->data.p_gnre->i_genre <= NUM_GENRES )
vlc_meta_SetGenre( p_meta, ppsz_genres[p_0xa9xxx->data.p_gnre->i_genre - 1] );
break;
case FOURCC_0xa9alb: /* Album */
case ATOM_0xa9alb: /* Album */
SET( vlc_meta_SetAlbum );
break;
case FOURCC_0xa9trk: /* Track */
case ATOM_0xa9trk: /* Track */
SET( vlc_meta_SetTrackNum );
break;
case FOURCC_trkn:
case ATOM_trkn:
{
char psz_trck[11];
snprintf( psz_trck, sizeof( psz_trck ), "%i",
......@@ -941,16 +941,16 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
vlc_meta_SetTrackNum( p_meta, psz_trck );
break;
}
case FOURCC_0xa9cmt: /* Commment */
case ATOM_0xa9cmt: /* Commment */
SET( vlc_meta_SetDescription );
break;
case FOURCC_0xa9url: /* URL */
case ATOM_0xa9url: /* URL */
SET( vlc_meta_SetURL );
break;
case FOURCC_0xa9too: /* Encoder Tool */
case FOURCC_0xa9enc: /* Encoded By */
case ATOM_0xa9too: /* Encoder Tool */
case ATOM_0xa9enc: /* Encoded By */
SET( vlc_meta_SetEncodedBy );
break;
......@@ -960,26 +960,26 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
#undef SET
static const struct { uint32_t xa9_type; char metadata[25]; } xa9typetoextrameta[] =
{
{ FOURCC_0xa9wrt, N_("Writer") },
{ FOURCC_0xa9com, N_("Composr") },
{ FOURCC_0xa9prd, N_("Producer") },
{ FOURCC_0xa9inf, N_("Information") },
{ FOURCC_0xa9dir, N_("Director") },
{ FOURCC_0xa9dis, N_("Disclaimer") },
{ FOURCC_0xa9req, N_("Requirements") },
{ FOURCC_0xa9fmt, N_("Original Format") },
{ FOURCC_0xa9dsa, N_("Display Source As") },
{ FOURCC_0xa9hst, N_("Host Computer") },
{ FOURCC_0xa9prf, N_("Performers") },
{ FOURCC_0xa9ope, N_("Original Performer") },
{ FOURCC_0xa9src, N_("Providers Source Content") },
{ FOURCC_0xa9wrn, N_("Warning") },
{ FOURCC_0xa9swr, N_("Software") },
{ FOURCC_0xa9lyr, N_("Lyrics") },
{ FOURCC_0xa9mak, N_("Make") },
{ FOURCC_0xa9mod, N_("Model") },
{ FOURCC_0xa9PRD, N_("Product") },
{ FOURCC_0xa9grp, N_("Grouping") },
{ ATOM_0xa9wrt, N_("Writer") },
{ ATOM_0xa9com, N_("Composr") },
{ ATOM_0xa9prd, N_("Producer") },
{ ATOM_0xa9inf, N_("Information") },
{ ATOM_0xa9dir, N_("Director") },
{ ATOM_0xa9dis, N_("Disclaimer") },
{ ATOM_0xa9req, N_("Requirements") },
{ ATOM_0xa9fmt, N_("Original Format") },
{ ATOM_0xa9dsa, N_("Display Source As") },
{ ATOM_0xa9hst, N_("Host Computer") },
{ ATOM_0xa9prf, N_("Performers") },
{ ATOM_0xa9ope, N_("Original Performer") },
{ ATOM_0xa9src, N_("Providers Source Content") },
{ ATOM_0xa9wrn, N_("Warning") },
{ ATOM_0xa9swr, N_("Software") },
{ ATOM_0xa9lyr, N_("Lyrics") },
{ ATOM_0xa9mak, N_("Make") },
{ ATOM_0xa9mod, N_("Model") },
{ ATOM_0xa9PRD, N_("Product") },
{ ATOM_0xa9grp, N_("Grouping") },
{ 0, "" },
};
for( unsigned i = 0; xa9typetoextrameta[i].xa9_type; i++ )
......@@ -2319,7 +2319,7 @@ static void MP4_TrackCreate( demux_t *p_demux, mp4_track_t *p_track,
switch( p_hdlr->data.p_hdlr->i_handler_type )
{
case( FOURCC_soun ):
case( ATOM_soun ):
if( !( p_smhd = MP4_BoxGet( p_box_trak, "mdia/minf/smhd" ) ) )
{
return;
......@@ -2327,7 +2327,7 @@ static void MP4_TrackCreate( demux_t *p_demux, mp4_track_t *p_track,
p_track->fmt.i_cat = AUDIO_ES;
break;
case( FOURCC_vide ):
case( ATOM_vide ):
if( !( p_vmhd = MP4_BoxGet( p_box_trak, "mdia/minf/vmhd" ) ) )
{
return;
......@@ -2335,10 +2335,10 @@ static void MP4_TrackCreate( demux_t *p_demux, mp4_track_t *p_track,
p_track->fmt.i_cat = VIDEO_ES;
break;
case( FOURCC_text ):
case( FOURCC_subp ):
case( FOURCC_tx3g ):
case( FOURCC_sbtl ):
case( ATOM_text ):
case( ATOM_subp ):
case( ATOM_tx3g ):
case( ATOM_sbtl ):
p_track->fmt.i_cat = SPU_ES;
break;
......@@ -2409,7 +2409,7 @@ static void MP4_TrackCreate( demux_t *p_demux, mp4_track_t *p_track,
{
switch( p_0xa9xxx->i_type )
{
case FOURCC_0xa9nam:
case ATOM_0xa9nam:
p_track->fmt.psz_description =
strdup( p_0xa9xxx->data.p_0xa9xxx->psz_text );
break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment