[Mlt-devel] strange behaviour in mlt reaching eof
Brought to you by:
ddennedy,
lilo_booter
From: Ed R. <ed....@gm...> - 2012-12-15 18:11:41
|
Hi Dan, I found out that the commit e33dedb46c0e4786023e1fe0a618e3f4a35728ae (Improve stop handling in mlt_consumer) has a side effect to eof behaviour (see ticket http://www.kdenlive.org/mantis/view.php?id=2870). I can reproduce the hanging on reaching eof in mlt. The crazy sound is only reproducable in kdenlive. steps to reproduce: bash# MLT_CONSUMER=sdl_preview melt movie.mov => on reaching eof ---> hanging and melt has to be killed I guess there is a deadlock or so. mlt_consumer.c: /** Stop the consumer. * * \public \memberof mlt_consumer_s * \param self a consumer * \return true if there was an error */ int mlt_consumer_stop( mlt_consumer self ) { // Return error if supplied invalid or stopped consumer. if ( !self /*|| mlt_consumer_is_stopped( self )*/ ) <= Look at commment return -1; I commented the check mlt_consumer_is_stopped( self ) => works again. I think there are conditions where the consumer says I'm "stopped" but forcing/calling the mlt_consumer_stop function is needed in some circumstances for example pthread_cond_broadcasting or what ever. I think you know it better! Sorry I don't have to much time now for deeper investigation. I hope my hints are enough for a solution. regards eddrog |