Commit bb0db48b authored by Ilkka Ollakka's avatar Ilkka Ollakka

stats: calculate track length

parent 1785bf6f
...@@ -83,7 +83,7 @@ struct sout_stream_id_sys_t ...@@ -83,7 +83,7 @@ struct sout_stream_id_sys_t
uint64_t segment_number; uint64_t segment_number;
void *next_id; void *next_id;
const char *type; const char *type;
mtime_t previous_dts; mtime_t previous_dts,track_duration;
struct md5_s hash; struct md5_s hash;
}; };
...@@ -176,6 +176,7 @@ static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt ) ...@@ -176,6 +176,7 @@ static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt )
id->next_id = NULL; id->next_id = NULL;
id->segment_number = 0; id->segment_number = 0;
id->previous_dts = VLC_TS_INVALID; id->previous_dts = VLC_TS_INVALID;
id->track_duration = 0;
InitMD5( &id->hash ); InitMD5( &id->hash );
msg_Dbg( p_stream, "%s: Adding track type:%s id:%d", p_sys->prefix, id->type, id->id); msg_Dbg( p_stream, "%s: Adding track type:%s id:%d", p_sys->prefix, id->type, id->id);
...@@ -195,11 +196,11 @@ static int Del( sout_stream_t *p_stream, sout_stream_id_sys_t *id ) ...@@ -195,11 +196,11 @@ static int Del( sout_stream_t *p_stream, sout_stream_id_sys_t *id )
msg_Dbg( p_stream, "%s: Removing track type:%s id:%d", p_sys->prefix, id->type, id->id ); msg_Dbg( p_stream, "%s: Removing track type:%s id:%d", p_sys->prefix, id->type, id->id );
if( p_sys->output ) if( p_sys->output )
{ {
fprintf( p_sys->output,"#%s: final type:%s id:%d segments:%"PRIu64" md5:%16s\n", fprintf( p_sys->output,"#%s: final type:%s id:%d segments:%"PRIu64" total_duration:%"PRId64" md5:%16s\n",
p_sys->prefix, id->type, id->id, id->segment_number, outputhash ); p_sys->prefix, id->type, id->id, id->segment_number, id->track_duration, outputhash );
} else { } else {
msg_Info( p_stream, "%s: final type:%s id:%d segments:%"PRIu64" md5:%16s", msg_Info( p_stream, "%s: final type:%s id:%d segments:%"PRIu64" total_duration:%"PRId64" md5:%16s",
p_sys->prefix, id->type, id->id, id->segment_number, outputhash ); p_sys->prefix, id->type, id->id, id->segment_number, id->track_duration, outputhash );
} }
free( outputhash ); free( outputhash );
if( id->next_id ) sout_StreamIdDel( p_stream->p_next, id->next_id ); if( id->next_id ) sout_StreamIdDel( p_stream->p_next, id->next_id );
...@@ -241,6 +242,7 @@ static int Send( sout_stream_t *p_stream, sout_stream_id_sys_t *id, ...@@ -241,6 +242,7 @@ static int Send( sout_stream_t *p_stream, sout_stream_id_sys_t *id,
p_sys->prefix, id->id, id->type, ++id->segment_number, dts_difference, p_sys->prefix, id->id, id->type, ++id->segment_number, dts_difference,
p_block->i_length, outputhash ); p_block->i_length, outputhash );
} }
id->track_duration += p_block->i_length ? p_block->i_length : dts_difference;
free( outputhash ); free( outputhash );
id->previous_dts = p_block->i_dts; id->previous_dts = p_block->i_dts;
p_block = p_block->p_next; p_block = p_block->p_next;
......
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