@ -259,42 +259,32 @@ recorder_open(struct recorder *recorder, const AVCodec *input_codec) {
return false ;
return false ;
}
}
LOGI ( " Recording started to %s file: %s " , format_name , recorder - > filename ) ;
return true ;
}
void
recorder_close ( struct recorder * recorder ) {
avio_close ( recorder - > ctx - > pb ) ;
avformat_free_context ( recorder - > ctx ) ;
}
bool
recorder_start ( struct recorder * recorder ) {
LOGD ( " Starting recorder thread " ) ;
LOGD ( " Starting recorder thread " ) ;
bool ok = sc_thread_create ( & recorder - > thread , run_recorder , " recorder " ,
bool ok = sc_thread_create ( & recorder - > thread , run_recorder , " recorder " ,
recorder ) ;
recorder ) ;
if ( ! ok ) {
if ( ! ok ) {
LOGC ( " Could not start recorder thread " ) ;
LOGC ( " Could not start recorder thread " ) ;
avio_close ( recorder - > ctx - > pb ) ;
avformat_free_context ( recorder - > ctx ) ;
return false ;
return false ;
}
}
LOGI ( " Recording started to %s file: %s " , format_name , recorder - > filename ) ;
return true ;
return true ;
}
}
void
void
recorder_ stop ( struct recorder * recorder ) {
recorder_ close ( struct recorder * recorder ) {
sc_mutex_lock ( & recorder - > mutex ) ;
sc_mutex_lock ( & recorder - > mutex ) ;
recorder - > stopped = true ;
recorder - > stopped = true ;
sc_cond_signal ( & recorder - > queue_cond ) ;
sc_cond_signal ( & recorder - > queue_cond ) ;
sc_mutex_unlock ( & recorder - > mutex ) ;
sc_mutex_unlock ( & recorder - > mutex ) ;
}
void
recorder_join ( struct recorder * recorder ) {
sc_thread_join ( & recorder - > thread , NULL ) ;
sc_thread_join ( & recorder - > thread , NULL ) ;
avio_close ( recorder - > ctx - > pb ) ;
avformat_free_context ( recorder - > ctx ) ;
}
}
bool
bool