Changeset e4beeb2e6cd7f4ecec5a0c3a0ecef5b8f6f06e4a
- 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
| r45cd6d7 |
re4beeb2 |
|
| 497 | 497 | } |
|---|
| 498 | 498 | |
|---|
| | 499 | /* EsOutDelProgram: |
|---|
| | 500 | * Delete a program |
|---|
| | 501 | */ |
|---|
| | 502 | static 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 | |
|---|
| 499 | 543 | /* EsOutProgramMeta: |
|---|
| 500 | 544 | */ |
|---|
| … | … | |
| 1012 | 1056 | |
|---|
| 1013 | 1057 | 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 ); |
|---|
| 1019 | 1059 | |
|---|
| 1020 | 1060 | if( p_sys->p_es_audio == es ) p_sys->p_es_audio = NULL; |
|---|
| … | … | |
| 1504 | 1544 | fmt->video.i_visible_height); |
|---|
| 1505 | 1545 | 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 ); |
|---|
| 1511 | 1551 | break; |
|---|
| 1512 | 1552 | |
|---|