Changeset 26d5b73864aea7f4e6d01dba654235cb1accdf84
- Timestamp:
- 02/04/06 12:04:42
(3 years ago)
- Author:
- Clément Stenac <zorglub@videolan.org>
- git-committer:
- Clément Stenac <zorglub@videolan.org> 1139051082 +0000
- git-parent:
[f8cac3e17afff983a591fbe2bf0cc101b53ae624]
- git-author:
- Clément Stenac <zorglub@videolan.org> 1139051082 +0000
- Message:
* Avoid useless stats_Get calls
* Reduce vlc_object_find calls
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| rf99f42e |
r26d5b73 |
|
| 5 | 5 | |
|---|
| 6 | 6 | Core support: |
|---|
| | 7 | * Statistics collection (bitrates, packets, connections, ...) |
|---|
| 7 | 8 | |
|---|
| 8 | 9 | Input: |
|---|
| … | … | |
| 50 | 51 | |
|---|
| 51 | 52 | Developers: |
|---|
| | 53 | * New libvlc API (not finished yet) |
|---|
| 52 | 54 | * Java bindings |
|---|
| 53 | | |
|---|
| 54 | | |
|---|
| 55 | | |
|---|
| 56 | 55 | |
|---|
| 57 | 56 | Changes between 0.8.4 and 0.8.4a: |
|---|
| rb76d7cf |
r26d5b73 |
|
| 63 | 63 | /* Do stats ? - We keep this boolean to avoid unneeded lookups */ |
|---|
| 64 | 64 | vlc_bool_t b_stats; |
|---|
| | 65 | stats_handler_t *p_stats; |
|---|
| 65 | 66 | |
|---|
| 66 | 67 | /* Arch-specific variables */ |
|---|
| r8d995e6 |
r26d5b73 |
|
| 250 | 250 | VLC_EXPORT( void, stats_HandlerDestroy, (stats_handler_t*) ); |
|---|
| 251 | 251 | |
|---|
| 252 | | #define stats_Update( a,b,c) __stats_Update( VLC_OBJECT( a ), b, c ) |
|---|
| 253 | | VLC_EXPORT( int, __stats_Update, (vlc_object_t*, const char *, vlc_value_t) ); |
|---|
| | 252 | #define stats_Update( a,b,c, d) __stats_Update( VLC_OBJECT( a ), b, c, d ) |
|---|
| | 253 | VLC_EXPORT( int, __stats_Update, (vlc_object_t*, const char *, vlc_value_t, vlc_value_t *) ); |
|---|
| 254 | 254 | #define stats_Create( a,b,c,d ) __stats_Create( VLC_OBJECT(a), b, c, d ) |
|---|
| 255 | 255 | VLC_EXPORT( int, __stats_Create, (vlc_object_t*, const char *, int, int) ); |
|---|
| … | … | |
| 278 | 278 | return i_ret; |
|---|
| 279 | 279 | } |
|---|
| 280 | | #define stats_UpdateInteger( a,b,c ) __stats_UpdateInteger( VLC_OBJECT(a),b,c ) |
|---|
| | 280 | #define stats_UpdateInteger( a,b,c,d ) __stats_UpdateInteger( VLC_OBJECT(a),b,c,d ) |
|---|
| 281 | 281 | static inline int __stats_UpdateInteger( vlc_object_t *p_obj, |
|---|
| 282 | | const char *psz_name, int i ) |
|---|
| 283 | | { |
|---|
| | 282 | const char *psz_name, int i, int *pi_new ) |
|---|
| | 283 | { |
|---|
| | 284 | int i_ret; |
|---|
| 284 | 285 | vlc_value_t val; |
|---|
| | 286 | vlc_value_t new_val; |
|---|
| 285 | 287 | val.i_int = i; |
|---|
| 286 | | return __stats_Update( p_obj, psz_name, val ); |
|---|
| 287 | | } |
|---|
| 288 | | #define stats_UpdateFloat( a,b,c ) __stats_UpdateFloat( VLC_OBJECT(a),b,c ) |
|---|
| | 288 | i_ret = __stats_Update( p_obj, psz_name, val , &new_val ); |
|---|
| | 289 | if( pi_new ) |
|---|
| | 290 | *pi_new = new_val.i_int; |
|---|
| | 291 | return i_ret; |
|---|
| | 292 | } |
|---|
| | 293 | #define stats_UpdateFloat( a,b,c,d ) __stats_UpdateFloat( VLC_OBJECT(a),b,c,d ) |
|---|
| 289 | 294 | static inline int __stats_UpdateFloat( vlc_object_t *p_obj, |
|---|
| 290 | | const char *psz_name, float f ) |
|---|
| | 295 | const char *psz_name, float f, float *pf_new ) |
|---|
| 291 | 296 | { |
|---|
| 292 | 297 | vlc_value_t val; |
|---|
| | 298 | int i_ret; |
|---|
| | 299 | vlc_value_t new_val; |
|---|
| 293 | 300 | val.f_float = f; |
|---|
| 294 | | return __stats_Update( p_obj, psz_name, val ); |
|---|
| | 301 | i_ret = __stats_Update( p_obj, psz_name, val, &new_val ); |
|---|
| | 302 | if( pf_new ) |
|---|
| | 303 | *pf_new = new_val.f_float; |
|---|
| | 304 | return i_ret; |
|---|
| 295 | 305 | } |
|---|
| 296 | 306 | |
|---|
| r8d995e6 |
r26d5b73 |
|
| 125 | 125 | int playlist_Delete (playlist_t *, int); |
|---|
| 126 | 126 | void aout_FiltersPlay (aout_instance_t * p_aout, aout_filter_t ** pp_filters, int i_nb_filters, aout_buffer_t ** pp_input_buffer); |
|---|
| 127 | | int __stats_Update (vlc_object_t*, const char *, vlc_value_t); |
|---|
| | 127 | int __stats_Update (vlc_object_t*, const char *, vlc_value_t, vlc_value_t *); |
|---|
| 128 | 128 | int __stats_Get (vlc_object_t*, int, const char *, vlc_value_t*); |
|---|
| 129 | 129 | char* httpd_ClientIP (httpd_client_t *cl, char *psz_ip); |
|---|
| … | … | |
| 898 | 898 | void (*__intf_UserHide_inner) (vlc_object_t *, int); |
|---|
| 899 | 899 | int (*__stats_Create_inner) (vlc_object_t*, const char *, int, int); |
|---|
| 900 | | int (*__stats_Update_inner) (vlc_object_t*, const char *, vlc_value_t); |
|---|
| | 900 | int (*__stats_Update_inner) (vlc_object_t*, const char *, vlc_value_t, vlc_value_t *); |
|---|
| 901 | 901 | int (*__stats_Get_inner) (vlc_object_t*, int, const char *, vlc_value_t*); |
|---|
| 902 | 902 | void (*stats_ComputeInputStats_inner) (input_thread_t*, input_stats_t*); |
|---|
| ra838001 |
r26d5b73 |
|
| 1329 | 1329 | &in )) ) |
|---|
| 1330 | 1330 | { |
|---|
| 1331 | | stats_UpdateInteger( p_stream->p_parent->p_parent, "decoded_audio", 1 ); |
|---|
| | 1331 | stats_UpdateInteger( p_stream->p_parent->p_parent, "decoded_audio", 1, NULL ); |
|---|
| 1332 | 1332 | if( p_sys->b_master_sync ) |
|---|
| 1333 | 1333 | { |
|---|
| … | … | |
| 1732 | 1732 | { |
|---|
| 1733 | 1733 | subpicture_t *p_subpic = 0; |
|---|
| 1734 | | stats_UpdateInteger( p_stream->p_parent->p_parent, "decoded_video", 1 ); |
|---|
| | 1734 | stats_UpdateInteger( p_stream->p_parent->p_parent, "decoded_video", 1, NULL ); |
|---|
| 1735 | 1735 | |
|---|
| 1736 | 1736 | if( p_stream->p_sout->i_out_pace_nocontrol && p_sys->b_hurry_up ) |
|---|
| r5bd61a8 |
r26d5b73 |
|
| 313 | 313 | if( p_input->p_input_thread ) |
|---|
| 314 | 314 | { |
|---|
| 315 | | stats_UpdateInteger( p_input->p_input_thread, "lost_abuffers", 1 ); |
|---|
| | 315 | stats_UpdateInteger( p_input->p_input_thread, "lost_abuffers", 1, |
|---|
| | 316 | NULL ); |
|---|
| 316 | 317 | } |
|---|
| 317 | 318 | aout_BufferFree( p_buffer ); |
|---|
| … | … | |
| 368 | 369 | { |
|---|
| 369 | 370 | stats_UpdateInteger( p_input->p_input_thread, |
|---|
| 370 | | "played_abuffers", 1 ); |
|---|
| | 371 | "played_abuffers", 1, NULL ); |
|---|
| 371 | 372 | } |
|---|
| 372 | 373 | vlc_mutex_unlock( &p_aout->mixer_lock ); |
|---|
| r5bd61a8 |
r26d5b73 |
|
| 448 | 448 | if( p_input->p_input_thread ) |
|---|
| 449 | 449 | { |
|---|
| 450 | | stats_UpdateInteger( p_input->p_input_thread, "lost_abuffers", 1 ); |
|---|
| | 450 | stats_UpdateInteger( p_input->p_input_thread, "lost_abuffers", 1, |
|---|
| | 451 | NULL ); |
|---|
| 451 | 452 | } |
|---|
| 452 | 453 | } |
|---|
| … | … | |
| 460 | 461 | if( p_input->p_input_thread ) |
|---|
| 461 | 462 | { |
|---|
| 462 | | stats_UpdateInteger( p_input->p_input_thread, "lost_abuffers", 1 ); |
|---|
| | 463 | stats_UpdateInteger( p_input->p_input_thread, "lost_abuffers", 1, |
|---|
| | 464 | NULL ); |
|---|
| 463 | 465 | } |
|---|
| 464 | 466 | aout_BufferFree( p_buffer ); |
|---|
| … | … | |
| 501 | 503 | if( p_input->p_input_thread ) |
|---|
| 502 | 504 | { |
|---|
| 503 | | stats_UpdateInteger( p_input->p_input_thread, "lost_abuffers", 1 ); |
|---|
| | 505 | stats_UpdateInteger( p_input->p_input_thread, "lost_abuffers", 1, |
|---|
| | 506 | NULL ); |
|---|
| 504 | 507 | } |
|---|
| 505 | 508 | return 0; |
|---|
| r31e0a13 |
r26d5b73 |
|
| 628 | 628 | &p_packetized_block )) ) |
|---|
| 629 | 629 | { |
|---|
| 630 | | stats_UpdateInteger( p_dec->p_parent, "decoded_audio", 1 ); |
|---|
| | 630 | stats_UpdateInteger( p_dec->p_parent, "decoded_audio", 1, NULL ); |
|---|
| 631 | 631 | /* FIXME the best would be to handle the case start_date < preroll < end_date |
|---|
| 632 | 632 | * but that's not easy with non raw audio stream */ |
|---|
| … | … | |
| 652 | 652 | else while( (p_aout_buf = p_dec->pf_decode_audio( p_dec, &p_block )) ) |
|---|
| 653 | 653 | { |
|---|
| 654 | | stats_UpdateInteger( p_dec->p_parent, "decoded_audio", 1 ); |
|---|
| | 654 | stats_UpdateInteger( p_dec->p_parent, "decoded_audio", 1, NULL ); |
|---|
| 655 | 655 | if( p_dec->p_owner->i_preroll_end > 0 && |
|---|
| 656 | 656 | p_aout_buf->start_date < p_dec->p_owner->i_preroll_end ) |
|---|
| … | … | |
| 699 | 699 | { |
|---|
| 700 | 700 | stats_UpdateInteger( p_dec->p_parent, "decoded_video", |
|---|
| 701 | | 1 ); |
|---|
| | 701 | 1, NULL ); |
|---|
| 702 | 702 | if( p_dec->p_owner->i_preroll_end > 0 && |
|---|
| 703 | 703 | p_pic->date < p_dec->p_owner->i_preroll_end ) |
|---|
| … | … | |
| 720 | 720 | else while( (p_pic = p_dec->pf_decode_video( p_dec, &p_block )) ) |
|---|
| 721 | 721 | { |
|---|
| 722 | | stats_UpdateInteger( p_dec->p_parent, "decoded_video", 1 ); |
|---|
| | 722 | stats_UpdateInteger( p_dec->p_parent, "decoded_video", 1 , NULL); |
|---|
| 723 | 723 | if( p_dec->p_owner->i_preroll_end > 0 && |
|---|
| 724 | 724 | p_pic->date < p_dec->p_owner->i_preroll_end ) |
|---|
| … | … | |
| 740 | 740 | while( (p_spu = p_dec->pf_decode_sub( p_dec, &p_block ) ) ) |
|---|
| 741 | 741 | { |
|---|
| 742 | | stats_UpdateInteger( p_dec->p_parent, "decoded_sub", 1 ); |
|---|
| | 742 | stats_UpdateInteger( p_dec->p_parent, "decoded_sub", 1 , NULL); |
|---|
| 743 | 743 | if( p_dec->p_owner->i_preroll_end > 0 && |
|---|
| 744 | 744 | p_spu->i_start < p_dec->p_owner->i_preroll_end && |
|---|
| re6f3d0a |
r26d5b73 |
|
| 1034 | 1034 | if( p_input->p_libvlc->b_stats ) |
|---|
| 1035 | 1035 | { |
|---|
| 1036 | | stats_UpdateInteger( p_input, "demux_read", p_block->i_buffer ); |
|---|
| 1037 | | stats_GetInteger( p_input, p_input->i_object_id, "demux_read", |
|---|
| 1038 | | &i_total ); |
|---|
| 1039 | | stats_UpdateFloat( p_input , "demux_bitrate", (float)i_total ); |
|---|
| | 1036 | stats_UpdateInteger( p_input, "demux_read", p_block->i_buffer, |
|---|
| | 1037 | &i_total ); |
|---|
| | 1038 | stats_UpdateFloat( p_input , "demux_bitrate", (float)i_total, NULL ); |
|---|
| 1040 | 1039 | } |
|---|
| 1041 | 1040 | |
|---|
| re6f3d0a |
r26d5b73 |
|
| 1581 | 1581 | { |
|---|
| 1582 | 1582 | i_read = p_access->pf_read( p_access, p_read, i_read ); |
|---|
| 1583 | | stats_UpdateInteger( s->p_parent->p_parent , "read_bytes", i_read ); |
|---|
| 1584 | | stats_GetInteger( s, s->p_parent->p_parent->i_object_id, |
|---|
| 1585 | | "read_bytes", &i_total ); |
|---|
| | 1583 | stats_UpdateInteger( s->p_parent->p_parent , "read_bytes", i_read, |
|---|
| | 1584 | &i_total ); |
|---|
| 1586 | 1585 | stats_UpdateFloat( s->p_parent->p_parent , "input_bitrate", |
|---|
| 1587 | | (float)i_total ); |
|---|
| 1588 | | stats_UpdateInteger( s->p_parent->p_parent , "read_packets", 1 ); |
|---|
| | 1586 | (float)i_total, NULL ); |
|---|
| | 1587 | stats_UpdateInteger( s->p_parent->p_parent , "read_packets", 1, NULL ); |
|---|
| 1589 | 1588 | return i_read; |
|---|
| 1590 | 1589 | } |
|---|
| … | … | |
| 1615 | 1614 | |
|---|
| 1616 | 1615 | /* Update read bytes in input */ |
|---|
| 1617 | | stats_UpdateInteger( s->p_parent->p_parent , "read_bytes", i_read ); |
|---|
| 1618 | | stats_GetInteger( s, s->p_parent->p_parent->i_object_id, |
|---|
| 1619 | | "read_bytes", &i_total ); |
|---|
| | 1616 | stats_UpdateInteger( s->p_parent->p_parent , "read_bytes", i_read, |
|---|
| | 1617 | &i_total ); |
|---|
| 1620 | 1618 | stats_UpdateFloat( s->p_parent->p_parent , "input_bitrate", |
|---|
| 1621 | | (float)i_total ); |
|---|
| 1622 | | stats_UpdateInteger( s->p_parent->p_parent , "read_packets", 1 ); |
|---|
| | 1619 | (float)i_total, NULL ); |
|---|
| | 1620 | stats_UpdateInteger( s->p_parent->p_parent , "read_packets", 1, NULL ); |
|---|
| 1623 | 1621 | return i_read; |
|---|
| 1624 | 1622 | } |
|---|
| … | … | |
| 1639 | 1637 | { |
|---|
| 1640 | 1638 | stats_UpdateInteger( s->p_parent->p_parent, "read_bytes", |
|---|
| 1641 | | p_block->i_buffer ); |
|---|
| 1642 | | stats_GetInteger( s, s->p_parent->p_parent->i_object_id, |
|---|
| 1643 | | "read_bytes", &i_total ); |
|---|
| | 1639 | p_block->i_buffer, &i_total ); |
|---|
| 1644 | 1640 | stats_UpdateFloat( s->p_parent->p_parent , "input_bitrate", |
|---|
| 1645 | | (float)i_total ); |
|---|
| 1646 | | stats_UpdateInteger( s->p_parent->p_parent , "read_packets", 1 ); |
|---|
| | 1641 | (float)i_total, NULL ); |
|---|
| | 1642 | stats_UpdateInteger( s->p_parent->p_parent , "read_packets", 1, NULL ); |
|---|
| 1647 | 1643 | } |
|---|
| 1648 | 1644 | return p_block; |
|---|
| … | … | |
| 1676 | 1672 | { |
|---|
| 1677 | 1673 | stats_UpdateInteger( s->p_parent->p_parent, "read_bytes", |
|---|
| 1678 | | p_block->i_buffer ); |
|---|
| 1679 | | stats_GetInteger( s, s->p_parent->p_parent->i_object_id, |
|---|
| 1680 | | "read_bytes", &i_total ); |
|---|
| | 1674 | p_block->i_buffer, &i_total ); |
|---|
| 1681 | 1675 | stats_UpdateFloat( s->p_parent->p_parent , "input_bitrate", |
|---|
| 1682 | | (float)i_total ); |
|---|
| 1683 | | stats_UpdateInteger( s->p_parent->p_parent , "read_packets", 1 ); |
|---|
| | 1676 | (float)i_total, NULL ); |
|---|
| | 1677 | stats_UpdateInteger( s->p_parent->p_parent , "read_packets", 1 , NULL); |
|---|
| 1684 | 1678 | } |
|---|
| 1685 | 1679 | |
|---|
| r9f30598 |
r26d5b73 |
|
| 692 | 692 | |
|---|
| 693 | 693 | libvlc.b_stats = config_GetInt( p_vlc, "stats" ); |
|---|
| | 694 | libvlc.p_stats = NULL; |
|---|
| 694 | 695 | |
|---|
| 695 | 696 | /* |
|---|
| rf8cac3e |
r26d5b73 |
|
| 219 | 219 | } |
|---|
| 220 | 220 | |
|---|
| 221 | | i_hash += ( i_id << 32 ); |
|---|
| | 221 | i_hash += ( (uint64_t)i_id << 32 ); |
|---|
| 222 | 222 | |
|---|
| 223 | 223 | return i_hash; |
|---|
| r8d995e6 |
r26d5b73 |
|
| 37 | 37 | static int stats_CounterUpdate( stats_handler_t *p_handler, |
|---|
| 38 | 38 | counter_t *p_counter, |
|---|
| 39 | | vlc_value_t val ); |
|---|
| | 39 | vlc_value_t val, vlc_value_t * ); |
|---|
| 40 | 40 | static stats_handler_t* stats_HandlerCreate( vlc_object_t *p_this ); |
|---|
| 41 | 41 | static stats_handler_t *stats_HandlerGet( vlc_object_t *p_this ); |
|---|
| … | … | |
| 127 | 127 | */ |
|---|
| 128 | 128 | int __stats_Update( vlc_object_t *p_this, const char *psz_name, |
|---|
| 129 | | vlc_value_t val ) |
|---|
| | 129 | vlc_value_t val, vlc_value_t *val_new ) |
|---|
| 130 | 130 | { |
|---|
| 131 | 131 | int i_ret; |
|---|
| … | … | |
| 152 | 152 | } |
|---|
| 153 | 153 | |
|---|
| 154 | | i_ret = stats_CounterUpdate( p_handler, p_counter, val ); |
|---|
| | 154 | i_ret = stats_CounterUpdate( p_handler, p_counter, val, val_new ); |
|---|
| 155 | 155 | vlc_mutex_unlock( &p_handler->object_lock ); |
|---|
| 156 | 156 | |
|---|
| … | … | |
| 493 | 493 | static int stats_CounterUpdate( stats_handler_t *p_handler, |
|---|
| 494 | 494 | counter_t *p_counter, |
|---|
| 495 | | vlc_value_t val ) |
|---|
| | 495 | vlc_value_t val, vlc_value_t *new_val ) |
|---|
| 496 | 496 | { |
|---|
| 497 | 497 | switch( p_counter->i_compute_type ) |
|---|
| … | … | |
| 545 | 545 | } |
|---|
| 546 | 546 | p_counter->pp_samples[0]->value = val; |
|---|
| | 547 | *new_val = p_counter->pp_samples[0]->value; |
|---|
| 547 | 548 | } |
|---|
| 548 | 549 | } |
|---|
| … | … | |
| 597 | 598 | { |
|---|
| 598 | 599 | case VLC_VAR_INTEGER: |
|---|
| | 600 | p_counter->pp_samples[0]->value.i_int += val.i_int; |
|---|
| | 601 | if( new_val ) |
|---|
| | 602 | new_val->i_int = p_counter->pp_samples[0]->value.i_int; |
|---|
| | 603 | break; |
|---|
| 599 | 604 | case VLC_VAR_FLOAT: |
|---|
| 600 | | p_counter->pp_samples[0]->value.i_int += val.i_int; |
|---|
| 601 | | break; |
|---|
| | 605 | p_counter->pp_samples[0]->value.f_float += val.f_float; |
|---|
| | 606 | if( new_val ) |
|---|
| | 607 | new_val->f_float = p_counter->pp_samples[0]->value.f_float; |
|---|
| 602 | 608 | default: |
|---|
| 603 | 609 | msg_Err( p_handler, "Trying to increment invalid variable %s", |
|---|
| … | … | |
| 622 | 628 | static stats_handler_t *stats_HandlerGet( vlc_object_t *p_this ) |
|---|
| 623 | 629 | { |
|---|
| 624 | | stats_handler_t *p_handler = (stats_handler_t*) |
|---|
| 625 | | vlc_object_find( p_this->p_vlc, VLC_OBJECT_STATS, |
|---|
| 626 | | FIND_ANYWHERE ); |
|---|
| | 630 | stats_handler_t *p_handler = p_this->p_libvlc->p_stats; |
|---|
| 627 | 631 | if( !p_handler ) |
|---|
| 628 | 632 | { |
|---|
| … | … | |
| 632 | 636 | return NULL; |
|---|
| 633 | 637 | } |
|---|
| 634 | | vlc_object_yield( p_handler ); |
|---|
| 635 | | } |
|---|
| | 638 | } |
|---|
| | 639 | vlc_object_yield( p_handler ); |
|---|
| 636 | 640 | return p_handler; |
|---|
| 637 | 641 | } |
|---|
| … | … | |
| 658 | 662 | } |
|---|
| 659 | 663 | p_handler->i_counters = 0; |
|---|
| 660 | | p_handler->p_counters = (hashtable_entry_t *) malloc( 5 * sizeof( variable_t ) ); |
|---|
| | 664 | p_handler->p_counters = (hashtable_entry_t *) malloc( 4 * sizeof( variable_t ) ); |
|---|
| 661 | 665 | |
|---|
| 662 | 666 | /// \bug is it p_vlc or p_libvlc ? |
|---|
| 663 | 667 | vlc_object_attach( p_handler, p_this->p_vlc ); |
|---|
| | 668 | |
|---|
| | 669 | p_this->p_libvlc->p_stats = p_handler; |
|---|
| 664 | 670 | |
|---|
| 665 | 671 | return p_handler; |
|---|
| r7b93beb |
r26d5b73 |
|
| 2107 | 2107 | { |
|---|
| 2108 | 2108 | httpd_ClientClean( cl ); |
|---|
| 2109 | | stats_UpdateInteger( host, "active_connections", -1 ); |
|---|
| | 2109 | stats_UpdateInteger( host, "active_connections", -1, NULL ); |
|---|
| 2110 | 2110 | TAB_REMOVE( host->i_client, host->client, cl ); |
|---|
| 2111 | 2111 | free( cl ); |
|---|
| … | … | |
| 2561 | 2561 | { |
|---|
| 2562 | 2562 | httpd_client_t *cl; |
|---|
| 2563 | | stats_UpdateInteger( host, "client_connections", 1 ); |
|---|
| 2564 | | stats_UpdateInteger( host, "active_connections", 1 ); |
|---|
| | 2563 | stats_UpdateInteger( host, "client_connections", 1, |
|---|
| | 2564 | NULL ); |
|---|
| | 2565 | stats_UpdateInteger( host, "active_connections", 1, |
|---|
| | 2566 | NULL ); |
|---|
| 2565 | 2567 | cl = httpd_ClientNew( fd, &sock, i_sock_size, p_tls ); |
|---|
| 2566 | 2568 | p_tls = NULL; |
|---|
| r4efb291 |
r26d5b73 |
|
| 382 | 382 | if( p_input ) |
|---|
| 383 | 383 | { |
|---|
| 384 | | stats_UpdateInteger( p_input, "sout_sent_packets", 10 ); |
|---|
| | 384 | stats_UpdateInteger( p_input, "sout_sent_packets", 10, NULL ); |
|---|
| 385 | 385 | stats_UpdateInteger( p_input, "sout_sent_bytes", |
|---|
| 386 | | p_access->i_sent_bytes ); |
|---|
| 387 | | stats_GetInteger( p_input, |
|---|
| 388 | | p_access->p_parent->p_parent->i_object_id, |
|---|
| 389 | | "sout_sent_bytes", &i_total ); |
|---|
| 390 | | stats_UpdateFloat( p_input, "sout_send_bitrate", (float)i_total ); |
|---|
| 391 | | |
|---|
| | 386 | p_access->i_sent_bytes, &i_total ); |
|---|
| | 387 | stats_UpdateFloat( p_input, "sout_send_bitrate", (float)i_total, |
|---|
| | 388 | NULL ); |
|---|
| 392 | 389 | p_access->i_sent_bytes = 0; |
|---|
| 393 | 390 | vlc_object_release( p_input ); |
|---|
| rc4fef7e |
r26d5b73 |
|
| 815 | 815 | msg_Warn( p_vout, "late picture skipped ("I64Fd")", |
|---|
| 816 | 816 | current_date - display_date ); |
|---|
| 817 | | stats_UpdateInteger( p_vout, "lost_pictures", 1 ); |
|---|
| | 817 | stats_UpdateInteger( p_vout, "lost_pictures", 1 , NULL); |
|---|
| 818 | 818 | vlc_mutex_unlock( &p_vout->picture_lock ); |
|---|
| 819 | 819 | |
|---|
| … | … | |
| 838 | 838 | p_vout->i_heap_size--; |
|---|
| 839 | 839 | } |
|---|
| 840 | | stats_UpdateInteger( p_vout, "lost_pictures", 1 ); |
|---|
| | 840 | stats_UpdateInteger( p_vout, "lost_pictures", 1, NULL ); |
|---|
| 841 | 841 | msg_Warn( p_vout, "vout warning: early picture skipped " |
|---|
| 842 | 842 | "("I64Fd")", display_date - current_date |
|---|
| … | … | |
| 896 | 896 | * Perform rendering |
|---|
| 897 | 897 | */ |
|---|
| 898 | | stats_UpdateInteger( p_vout, "displayed_pictures", 1 ); |
|---|
| | 898 | stats_UpdateInteger( p_vout, "displayed_pictures", 1, NULL ); |
|---|
| 899 | 899 | p_directbuffer = vout_RenderPicture( p_vout, p_picture, p_subpic ); |
|---|
| 900 | 900 | |
|---|