Hi, Thanks for the bug report. I must say I don't really like the suggested fix. Can you try removing the kill altogether and moving the 2 close calls to above the waitpid call and see if that helps, I think that is a cleaner solution. Thanks & Regards, Hans On 04/21/2014 03:11 PM, Andrey Volkov wrote: > Guys, > > I use motion for my old web camera (v4l1) with > export LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so > > v4l2convert.so run decompress helper ov511-decomp. > > Processes look like: > /usr/bin/motion > \_ /usr/lib/i386-linux-gnu/libv4lconvert0/ov511-decomp > > (motion - http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome) > Everything works fine, but when I stop motion daemon I have to wait for a minute. > > strace prints that ov511-decomp got SIGTERM, wait for the minute and then got SIGKILL. > > When I do "killall -TERM ov511-decomp" ov511-decomp ignores it and continue to decomress. > "killall -INT ov511-decomp" ov511-decomp shut down as expected. > > As a workaround I made this patch to lib/libv4lconvert/helper.c > > --- v4l-utils-1.0.1.orig/lib/libv4lconvert/helper.c > +++ v4l-utils-1.0.1/lib/libv4lconvert/helper.c > @@ -212,7 +212,7 @@ void v4lconvert_helper_cleanup(struct v4 > void v4lconvert_helper_cleanup(struct v4lconvert_data *data) > { > int status; > > if (data->decompress_pid != -1) { > - kill(data->decompress_pid, SIGTERM); > + kill(data->decompress_pid, SIGINT); > waitpid(data->decompress_pid, &status, 0); > > close(data->decompress_out_pipe[WRITE_END]); > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html