the avi demux now gives some info about the file being played. One step

towards closing bug #51. Type 'info' in the rc interface to test.
parent cc4a55de
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* avi.c : AVI file Stream input module for vlc * avi.c : AVI file Stream input module for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: avi.c,v 1.17 2002/12/06 16:34:06 sam Exp $ * $Id: avi.c,v 1.18 2002/12/19 16:59:31 sigmunau Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -893,7 +893,16 @@ static int AVIInit( vlc_object_t * p_this ) ...@@ -893,7 +893,16 @@ static int AVIInit( vlc_object_t * p_this )
p_avih->i_flags&AVIF_MUSTUSEINDEX?" MUST_USE_INDEX":"", p_avih->i_flags&AVIF_MUSTUSEINDEX?" MUST_USE_INDEX":"",
p_avih->i_flags&AVIF_ISINTERLEAVED?" IS_INTERLEAVED":"", p_avih->i_flags&AVIF_ISINTERLEAVED?" IS_INTERLEAVED":"",
p_avih->i_flags&AVIF_TRUSTCKTYPE?" TRUST_CKTYPE":"" ); p_avih->i_flags&AVIF_TRUSTCKTYPE?" TRUST_CKTYPE":"" );
{
input_info_category_t *p_cat = input_InfoCategory( p_input, "Avi" );
input_AddInfo( p_cat, "Number of streams", "%d", p_avi->i_streams );
input_AddInfo( p_cat, "Flags", "%s%s%s%s",
p_avih->i_flags&AVIF_HASINDEX?" HAS_INDEX":"",
p_avih->i_flags&AVIF_MUSTUSEINDEX?" MUST_USE_INDEX":"",
p_avih->i_flags&AVIF_ISINTERLEAVED?" IS_INTERLEAVED":"",
p_avih->i_flags&AVIF_TRUSTCKTYPE?" TRUST_CKTYPE":"" );
}
/* now read info on each stream and create ES */ /* now read info on each stream and create ES */
p_avi->pp_info = calloc( p_avi->i_streams, p_avi->pp_info = calloc( p_avi->i_streams,
sizeof( avi_stream_t* ) ); sizeof( avi_stream_t* ) );
...@@ -949,6 +958,25 @@ static int AVIInit( vlc_object_t * p_this ) ...@@ -949,6 +958,25 @@ static int AVIInit( vlc_object_t * p_this )
p_avi_strf_auds->p_wf->nChannels, p_avi_strf_auds->p_wf->nChannels,
p_avi_strf_auds->p_wf->nSamplesPerSec, p_avi_strf_auds->p_wf->nSamplesPerSec,
p_avi_strf_auds->p_wf->wBitsPerSample ); p_avi_strf_auds->p_wf->wBitsPerSample );
{
char hepp[sizeof("Stream") + 10];
input_info_category_t *p_cat;
sprintf(hepp, "Stream %d", i);
p_cat = input_InfoCategory( p_input, hepp);
input_AddInfo( p_cat, "Type", "audio(0x%x)",
p_avi_strf_auds->p_wf->wFormatTag );
input_AddInfo( p_cat, "Codec", "%4.4s",
(const char*)&(p_info->i_codec) );
input_AddInfo( p_cat, "Channels", "%d",
p_avi_strf_auds->p_wf->nChannels );
input_AddInfo( p_cat, "Samplerate", "%d",
p_avi_strf_auds->p_wf->nSamplesPerSec );
input_AddInfo( p_cat, "Bits Per Sample", "%d",
p_avi_strf_auds->p_wf->wBitsPerSample );
}
break; break;
case( AVIFOURCC_vids ): case( AVIFOURCC_vids ):
...@@ -969,6 +997,23 @@ static int AVIInit( vlc_object_t * p_this ) ...@@ -969,6 +997,23 @@ static int AVIInit( vlc_object_t * p_this )
p_avi_strf_vids->p_bih->biBitCount, p_avi_strf_vids->p_bih->biBitCount,
(float)p_info->i_rate / (float)p_info->i_rate /
(float)p_info->i_scale ); (float)p_info->i_scale );
{
char hepp[sizeof("Stream") + 10];
input_info_category_t *p_cat;
sprintf(hepp, "stream %d", i);
p_cat = input_InfoCategory( p_input, hepp);
input_AddInfo( p_cat, "Type", "video" );
input_AddInfo( p_cat, "Codec", "%4.4s",
(const char*)&(p_info->i_codec) );
input_AddInfo( p_cat, "Resolution", "%dx%d",
p_avi_strf_vids->p_bih->biWidth,
p_avi_strf_vids->p_bih->biHeight );
input_AddInfo( p_cat, "Frame Rate", "%f",
(float)p_info->i_rate /
(float)p_info->i_scale );
input_AddInfo( p_cat, "Bits Per Pixel", "%d",
p_avi_strf_vids->p_bih->biBitCount );
}
#ifdef __AVI_SUBTITLE__ #ifdef __AVI_SUBTITLE__
if( i_microsecperframe == 0 ) if( i_microsecperframe == 0 )
{ {
...@@ -983,6 +1028,13 @@ static int AVIInit( vlc_object_t * p_this ) ...@@ -983,6 +1028,13 @@ static int AVIInit( vlc_object_t * p_this )
p_info->i_cat = UNKNOWN_ES; p_info->i_cat = UNKNOWN_ES;
i_init_size = 0; i_init_size = 0;
p_init_data = NULL; p_init_data = NULL;
{
char *hepp;
input_info_category_t *p_cat;
asprintf(&hepp, "stream %d", i);
p_cat = input_InfoCategory( p_input, hepp);
input_AddInfo( p_cat, "Type", "unknown" );
}
break; break;
} }
p_info->b_activated = VLC_FALSE; p_info->b_activated = VLC_FALSE;
......
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