but sometimes it's in fact MPEG-4, thx titer ).
* mp4 : add capability to read mov with mp3 track. But it seems that
mad doesn't like too much fragmented data packets, and thus breaks the
audio.( since with '--codec dummy' I'm able to read resulting audio file
without any problem :)
* ffmpeg_vdec.h: video decoder using ffmpeg library
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: ffmpeg.h,v 1.8 2002/07/23 17:19:02 fenrir Exp $
+ * $Id: ffmpeg.h,v 1.9 2002/07/23 22:42:20 fenrir Exp $
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
/* ?? */
#define FOURCC_3IV1 VLC_FOURCC('3','I','V','1')
+#define FOURCC_3IV2 VLC_FOURCC('3','I','V','2')
+
/* H263 and H263i */
#define FOURCC_H263 VLC_FOURCC('H','2','6','3')
#define FOURCC_h263 VLC_FOURCC('h','2','6','3')
case FOURCC_DX50:
case FOURCC_mp4v:
case FOURCC_4:
+ case FOURCC_3IV2:
+
i_codec = CODEC_ID_MPEG4;
psz_name = "MPEG-4";
break;
* libmp4.c : LibMP4 library for mp4 module for vlc
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: libmp4.c,v 1.5 2002/07/23 17:19:02 fenrir Exp $
+ * $Id: libmp4.c,v 1.6 2002/07/23 22:42:20 fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
MP4_READBOX_EXIT( 1 );
}
-#if 0
-int MP4_ReadBox_sample_mp4v( MP4_Stream_t *p_stream, MP4_Box_t *p_box )
-{
- int i;
-
- MP4_READBOX_ENTER( MP4_Box_data_sample_mp4v_t );
-
- for( i = 0; i < 6 ; i++ )
- {
- MP4_GET1BYTE( p_box->data.p_sample_mp4v->i_reserved1[i] );
- }
-
- MP4_GET2BYTES( p_box->data.p_sample_mp4v->i_data_reference_index );
-
- MP4_GET2BYTES( p_box->data.p_sample_mp4v->i_predefined1 );
- MP4_GET2BYTES( p_box->data.p_sample_mp4v->i_reserved2 );
-
- for( i = 0; i < 3 ; i++ )
- {
- MP4_GET4BYTES( p_box->data.p_sample_mp4v->i_predefined2[i] );
- }
-
- MP4_GET2BYTES( p_box->data.p_sample_mp4v->i_width );
- MP4_GET2BYTES( p_box->data.p_sample_mp4v->i_height );
-
- MP4_GET4BYTES( p_box->data.p_sample_mp4v->i_horizresolution );
- MP4_GET4BYTES( p_box->data.p_sample_mp4v->i_vertresolution );
-
- MP4_GET4BYTES( p_box->data.p_sample_mp4v->i_reserved3 );
- MP4_GET2BYTES( p_box->data.p_sample_mp4v->i_predefined3 );
-
- /* This is a pascal string, padded to 32 bytes */
- memcpy( &p_box->data.p_sample_mp4v->i_compressorname, p_peek+1, 31 );
- p_box->data.p_sample_mp4v->i_compressorname[*p_peek] = 0;
- p_peek += 32; i_read -= 32;
-
- MP4_GET2BYTES( p_box->data.p_sample_mp4v->i_depth );
- MP4_GET2BYTES( p_box->data.p_sample_mp4v->i_predefined4 );
-
-
- MP4_SeekStream( p_stream, p_box->i_pos + MP4_BOX_HEADERSIZE( p_box ) + 78);
- MP4_ReadBoxContainerRaw( p_stream, p_box ); /* esds */
-
-#ifdef MP4_VERBOSE
- msg_Dbg( p_stream->p_input, "Read Box: \"mp4v\" in stsd %dx%d depth %d compressor %s",
- p_box->data.p_sample_mp4v->i_width,
- p_box->data.p_sample_mp4v->i_height,
- p_box->data.p_sample_mp4v->i_depth,
- p_box->data.p_sample_mp4v->i_compressorname );
-#endif
- MP4_READBOX_EXIT( 1 );
-}
-#endif
-
int MP4_ReadBox_stsd( MP4_Stream_t *p_stream, MP4_Box_t *p_box )
{
/* for codecs */
{ FOURCC_soun, MP4_ReadBox_sample_soun, MP4_FreeBox_Common },
{ FOURCC__mp3, MP4_ReadBox_sample_soun, MP4_FreeBox_Common },
+ { FOURCC_ms55, MP4_ReadBox_sample_soun, MP4_FreeBox_Common },
{ FOURCC_mp4a, MP4_ReadBox_sample_soun, MP4_FreeBox_Common },
{ FOURCC_vide, MP4_ReadBox_sample_vide, MP4_FreeBox_Common },
{ FOURCC_h263, MP4_ReadBox_sample_vide, MP4_FreeBox_Common },
{ FOURCC_cvid, MP4_ReadBox_sample_vide, MP4_FreeBox_Common },
{ FOURCC_3IV1, MP4_ReadBox_sample_vide, MP4_FreeBox_Common },
+ { FOURCC_3IV2, MP4_ReadBox_sample_vide, MP4_FreeBox_Common },
{ FOURCC_mjpa, MP4_ReadBox_sample_vide, MP4_FreeBox_Common },
{ FOURCC_mjpb, MP4_ReadBox_sample_vide, MP4_FreeBox_Common },
{ FOURCC_mjqt, NULL, NULL }, /* found in mjpa/b */
* libmp4.h : LibMP4 library for mp4 module for vlc
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: libmp4.h,v 1.5 2002/07/23 17:19:02 fenrir Exp $
+ * $Id: libmp4.h,v 1.6 2002/07/23 22:42:20 fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
#define FOURCC_zlib VLC_FOURCC( 'z', 'l', 'i', 'b' )
#define FOURCC_SVQ1 VLC_FOURCC( 'S', 'V', 'Q', '1' )
#define FOURCC__mp3 VLC_FOURCC( '.', 'm', 'p', '3' )
+#define FOURCC_ms55 VLC_FOURCC( 'm', 's', 0x0, 0x55 )
#define FOURCC_3IV1 VLC_FOURCC( '3', 'I', 'V', '1' )
+#define FOURCC_3IV2 VLC_FOURCC( '3', 'I', 'V', '2' )
#define FOURCC_h263 VLC_FOURCC( 'h', '2', '6', '3' )
#define FOURCC_DIVX VLC_FOURCC( 'D', 'I', 'V', 'X' )
#define FOURCC_cvid VLC_FOURCC( 'c', 'v', 'i', 'd' )
* mp4.c : MP4 file input module for vlc
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: mp4.c,v 1.6 2002/07/23 17:19:02 fenrir Exp $
+ * $Id: mp4.c,v 1.7 2002/07/23 22:42:20 fenrir Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
return;
}
- if( !p_sample->data.p_data )
- {
- printf( "\nAhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh %.4s\n",
- &p_sample->i_type );
- return;
- }
vlc_mutex_lock( &p_input->stream.stream_lock );
p_demux_track->p_es = input_AddES( p_input,
p_input->stream.p_selected_program,
p_demux_track->p_es->i_stream_id = p_demux_track->i_track_ID;
- p_demux_track->p_es->i_fourcc = p_sample->i_type;
+ /* It's a little ugly but .. there are special cases */
+ switch( p_sample->i_type )
+ {
+ case( VLC_FOURCC( '.', 'm', 'p', '3' ) ):
+ case( VLC_FOURCC( 'm', 's', 0x00, 0x55 ) ):
+ p_demux_track->p_es->i_fourcc = VLC_FOURCC( 'm', 'p', 'g', 'a' );
+ break;
+ default:
+ p_demux_track->p_es->i_fourcc = p_sample->i_type;
+ break;
+ }
+
p_demux_track->p_es->i_cat = p_demux_track->i_cat;
i_decoder_specific_info_len = 0;