[MPlayer-dev-eng] PATCH: signal handling in gmplayer, immediate mode in tvi_v4l, wrong warning for tv:// MRLs

Sergey Pinaev dfo at antex.ru
Tue May 20 12:17:39 CEST 2003


hi.
On Tue, 20 May 2003 11:50:32 +0200
Arpi <arpi at thot.banki.hu> wrote:

A> shit means sigsegv or sigill or sigfpu and such things inside of codecs
A> (even in .dll or external libs) or other modules. there is no way to
A> recover from such error with just setting a variable.

now i got it =)

A> the options are:
A> - clean exit from sighandler (a bit ugly), this is done now
A> (not thread safe, but who cares, mplayer is not multithreaded)
A> - do nothing (let the OS kill the app, without clean exit)
A> - longjmp() hack, to jump out from a sighandler (risky, hardly
A> portable)

"good" way should be to set signal handler with sigaction() and
set sa_mask to block all signals during handler excution and
replace mp_msg's in exit_sighandler with printf("we are dead\n").
exit_player() should also be replaced with exit()...

>> btw, in mencoder you forgot to declare volatile "at_eof" and
>> "interrupted".

A> why should i do so?

   * If your handler needs to access any global variables from your
     program, declare those variables `volatile'.  This tells the
     compiler that the value of the variable might change
     asynchronously, and inhibits certain optimizations that would be
     invalidated by such modifications.

-- 
mail="Sergey Pinaev <dfo at antex.ru>"
url="http://`echo $mail | sed 's/.* <\(.*\)>/\1/' | sed 's/@/./'`"



More information about the MPlayer-dev-eng mailing list