]> git.sesse.net Git - vlc/commitdiff
Export stats in http interface
authorAntoine Cellerier <dionoea@videolan.org>
Tue, 28 Mar 2006 21:29:59 +0000 (21:29 +0000)
committerAntoine Cellerier <dionoea@videolan.org>
Tue, 28 Mar 2006 21:29:59 +0000 (21:29 +0000)
modules/control/http/http.c
share/http/requests/status.xml

index 8483b4e8f390efc49193317a74a8ff3c658be068..cdcd4758a4c9aac7452de7e50f0695b9406a0840 100644 (file)
@@ -489,6 +489,7 @@ static void ParseExecute( httpd_file_sys_t *p_args, char *p_buffer,
     audio_volume_t i_volume;
     char volume[5];
     char state[8];
+    char stats[20];
 
 #define p_sys p_args->p_intf->p_sys
     if( p_sys->p_input )
@@ -548,6 +549,38 @@ static void ParseExecute( httpd_file_sys_t *p_args, char *p_buffer,
     E_(mvar_AppendNewVar)( p_args->vars, "stream_state", state );
     E_(mvar_AppendNewVar)( p_args->vars, "charset", ((intf_sys_t *)p_args->p_intf->p_sys)->psz_charset );
 
+    /* Stats */
+#define p_sys p_args->p_intf->p_sys
+    if( p_sys->p_input )
+    {
+        input_item_t *p_item = p_sys->p_input->input.p_item;
+        if( p_item )
+        {
+            vlc_mutex_lock( &p_item->p_stats->lock );
+#define STATS_INT( n ) sprintf( stats, "%d", p_item->p_stats->i_ ## n ); \
+                       E_(mvar_AppendNewVar)( p_args->vars, #n, stats );
+#define STATS_FLOAT( n ) sprintf( stats, "%f", p_item->p_stats->f_ ## n ); \
+                       E_(mvar_AppendNewVar)( p_args->vars, #n, stats );
+            STATS_INT( read_bytes )
+            STATS_FLOAT( input_bitrate )
+            STATS_INT( demux_read_bytes )
+            STATS_FLOAT( demux_bitrate )
+            STATS_INT( decoded_video )
+            STATS_INT( displayed_pictures )
+            STATS_INT( lost_pictures )
+            STATS_INT( decoded_audio )
+            STATS_INT( played_abuffers )
+            STATS_INT( lost_abuffers )
+            STATS_INT( sent_packets )
+            STATS_INT( sent_bytes )
+            STATS_FLOAT( send_bitrate )
+#undef STATS_INT
+#undef STATS_FLOAT
+            vlc_mutex_unlock( &p_item->p_stats->lock );
+        }
+    }
+#undef p_sys
+
     E_(SSInit)( &p_args->stack );
 
     /* allocate output */
index eabc059ff3dcc8dcad948db1df303c74438a1706..289285f49c6291c8b38ef15e5286c399316e0574 100644 (file)
       </category>
     <vlc id="end" />
   </information>
+  <stats>
+    <readbytes><vlc id="value" param1="read_bytes" /></readbytes>
+    <inputbitrate><vlc id="value" param1="input_bitrate" /></inputbitrate>
+    <demuxreadbytes><vlc id="value" param1="demux_read_bytes" /></demuxreadbytes>
+    <demuxbitrate><vlc id="value" param1="demux_bitrate" /></demuxbitrate>
+    <decodedvideo><vlc id="value" param1="decoded_video" /></decodedvideo>
+    <displayedpictures><vlc id="value" param1="displayed_pictures" /></displayedpictures>
+    <lostpictures><vlc id="value" param1="lost_pictures" /></lostpictures>
+    <decodedaudio><vlc id="value" param1="decoded_audio" /></decodedaudio>
+    <playedabuffers><vlc id="value" param1="played_abuffers" /></playedabuffers>
+    <lostabuffers><vlc id="value" param1="lost_abuffers" /></lostabuffers>
+    <sentpackets><vlc id="value" param1="sent_packets" /></sentpackets>
+    <sentbytes><vlc id="value" param1="sent_bytes" /></sentbytes>
+    <sendbitrate><vlc id="value" param1="send_bitrate" /></sendbitrate>
+  </stats>
 </root>