I have a recently upgraded my little command line dxr3 video player from
xine-lib 0.9.13 to 1-beta 8 then 1-beta9 and have struck a problem where
xine_open() blocks indefinitely.
It appears that xine_open() waits on audio_discontinuity_reached cond.
variable in metronom_handle_video_discontinuity() but is never woken up,
xine and the main thread of my program are suspended forever. I added a
printf immediately after the call to pthread_cond_wait and it is never
reached. This doesn't happen every time or with a particular file, I
can play the same file several times before it will freezes.
The log below shows the output of xine, the audio_out close looks really
suspicious but I cannot work out exactly what is causing it, any
xine: xine_open /video/I wanna know_428.mpg
xine: xine_open_internal '/video/I wanna know_428.mpg'...
xine: xine_stop. status before = 1
xine: xine_stop ignored
xine_close: disposing demux
xine: engine should be stopped now
xine: found input plugin : file input plugin
xine: demux and input plugin found
xine: found demuxer plugin: DVD/VOB demux plugin
demux_mpeg_block: warning: pes header indicates that this stream may be
encrypted (encryption mode 3)
audio_out: no streams left, closing driver
metronom: audio discontinuity #13, type is 0, disc_off 0
metronom: waiting for in_discontinuity update #13