Changeset e4beeb2e6cd7f4ecec5a0c3a0ecef5b8f6f06e4a

Show
Ignore:
Timestamp:
27/04/05 13:40:11 (4 years ago)
Author:
Gildas Bazin <gbazin@videolan.org>
git-committer:
Gildas Bazin <gbazin@videolan.org> 1114602011 +0000
git-parent:

[53444459bbbd454a9abdc866231a540ed91b7530]

git-author:
Gildas Bazin <gbazin@videolan.org> 1114602011 +0000
Message:

* src/input/es_out.c: cleanup empty programs.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/input/es_out.c

    r45cd6d7 re4beeb2  
    497497} 
    498498 
     499/* EsOutDelProgram: 
     500 *  Delete a program 
     501 */ 
     502static void EsOutProgramDel( es_out_t *out, int i_group ) 
     503{ 
     504    es_out_sys_t      *p_sys = out->p_sys; 
     505    input_thread_t    *p_input = p_sys->p_input; 
     506    es_out_pgrm_t     *p_pgrm = NULL; 
     507    vlc_value_t       val; 
     508    int               i; 
     509 
     510    for( i = 0; i < p_sys->i_pgrm; i++ ) 
     511    { 
     512        if( p_sys->pgrm[i]->i_id == i_group ) 
     513        { 
     514            p_pgrm = p_sys->pgrm[i]; 
     515            break; 
     516        } 
     517    } 
     518 
     519    if( p_pgrm == NULL ) return; 
     520 
     521    if( p_pgrm->i_es ) 
     522    { 
     523        msg_Dbg( p_input, "can't delete program %d which still has %i ES", 
     524                 i_group, p_pgrm->i_es ); 
     525        return; 
     526    } 
     527 
     528    TAB_REMOVE( p_sys->i_pgrm, p_sys->pgrm, p_pgrm ); 
     529 
     530    /* If program is selected we need to unselect it */ 
     531    if( p_sys->p_pgrm == p_pgrm ) p_sys->p_pgrm = 0; 
     532 
     533    if( p_pgrm->psz_now_playing ) free( p_pgrm->psz_now_playing ); 
     534    free( p_pgrm ); 
     535 
     536    /* Update "program" variable */ 
     537    val.i_int = i_group; 
     538    var_Change( p_input, "program", VLC_VAR_DELCHOICE, &val, NULL ); 
     539 
     540    var_SetBool( p_sys->p_input, "intf-change", VLC_TRUE ); 
     541} 
     542 
    499543/* EsOutProgramMeta: 
    500544 */ 
     
    10121056 
    10131057    es->p_pgrm->i_es--; 
    1014     if( es->p_pgrm->i_es == 0 ) 
    1015     { 
    1016         msg_Warn( p_sys->p_input, "Program doesn't contain anymore ES, " 
    1017                   "TODO cleaning ?" ); 
    1018     } 
     1058    if( es->p_pgrm->i_es == 0 ) EsOutProgramDel( out, es->p_pgrm->i_id ); 
    10191059 
    10201060    if( p_sys->p_es_audio == es ) p_sys->p_es_audio = NULL; 
     
    15041544                           fmt->video.i_visible_height); 
    15051545       if( fmt->video.i_frame_rate > 0 && 
    1506       fmt->video.i_frame_rate_base > 0 ) 
    1507       input_Control( p_input, INPUT_ADD_INFO, psz_cat, 
    1508              _("Frame rate"), "%f", 
    1509              (float)fmt->video.i_frame_rate /  
    1510              fmt->video.i_frame_rate_base ); 
     1546           fmt->video.i_frame_rate_base > 0 ) 
     1547           input_Control( p_input, INPUT_ADD_INFO, psz_cat, 
     1548                          _("Frame rate"), "%f", 
     1549                          (float)fmt->video.i_frame_rate /  
     1550                          fmt->video.i_frame_rate_base ); 
    15111551        break; 
    15121552