Greetings.<br><br>I am developing a video rendering app, on Ubuntu 10.10, using gstreamer-0.10 and gstreamer-plugins-good-0.10.30. My pipeline is: multijpegsrc -> ffdec_mjpeg -> ffmpegcolorspace -> videoflip -> textoverlay -> textoverlay -> textoverlay -> tee(src) -> ffenc_mp4 -> (video_0)avimux -> filesink, tee(src1) -> queue -> xvimagesink; filesrc -> wavparse -> audioconvert -> ffenc_mp2 -> (audio_0)avimux. Where multijpegsrc is an adapted version of multifilesrc, which uses another file-choosing algorithm corresponding to my needs, but overall effect of working element is the same.<br>
My goal is to make avi-video of multiple (m)jpeg images, applying wav sound where available, and rendering some text over the picture; also a sort of rendering process preview (onto xvimagesink) required.<br>Ok, I've got my avi-vid, with sound and such, BUT when videostream ends, program gets terminated with SIGFPE exception (i suppose division by zero in avimux). Still i have undamaged video file, but i don't want my app to crash. When I turn off sound-subpipeline, everything works ok without crash. Also I am using a kind of wav-switching system, which pauses whole pipeline for a moment, changes "location" of filesrc, and resumes pipeline then (I'm not sure if that might cause a problem, but i have to change wavs on-fly somehow).<br>
<br>some GDB stuff:<br>Program terminated with signal 8, Arithmetic exception.<br>#0 0x0408e04c in gst_avi_mux_audsink_set_fields (avimux=0x9960020)<br> at gstavimux.c:726<br>726 avipad->parent.hdr.rate = avipad->auds.av_bps / avipad->auds.blockalign;<br>
<br>considering types of arguments, I get zero value in avipad->auds.blockalign<br><br>(gdb) list<br>721 /* FIXME ?? some rumours say this should be largest audio chunk size */<br>722 avipad->auds.blockalign = avipad->parent.hdr.scale;<br>
723 } else {<br>724 /* by spec, hdr.rate is av_bps related, is calculated that way in stop_file,<br>725 * and reduces to sample rate in PCM like cases */<br>726 avipad->parent.hdr.rate = avipad->auds.av_bps / avipad->auds.blockalign;<br>
727 avipad->parent.hdr.samplesize = avipad->auds.blockalign;<br>728 avipad->parent.hdr.scale = 1;<br>729 }<br>730 }<br><br>(gdb) bt<br>#0 0x0408e04c in gst_avi_mux_audsink_set_fields (avimux=0x9960020)<br>
at gstavimux.c:726<br>#1 gst_avi_mux_stop_file (avimux=0x9960020) at gstavimux.c:1838<br>#2 0x0408e915 in gst_avi_mux_do_one_buffer (pads=0x94d2670, avimux=0x9960020)<br> at gstavimux.c:2068<br>#3 gst_avi_mux_collect_pads (pads=0x94d2670, avimux=0x9960020)<br>
at gstavimux.c:2084<br>#4 0x0199ffa2 in gst_collect_pads_check_collected (pads=0x94d2670)<br> at gstcollectpads.c:1126<br>#5 0x019a04e0 in gst_collect_pads_event (pad=0x9965330, event=0x9b5c250)<br> at gstcollectpads.c:1232<br>
#6 0x0408f08c in gst_avi_mux_handle_event (pad=0x9965330, event=0x9b5c250)<br> at gstavimux.c:1913<br>#7 0x00a790c3 in gst_pad_send_event (pad=0x9965330, event=0x9b5c250)<br> at gstpad.c:5043<br>#8 0x00a7963a in gst_pad_push_event (pad=0x99654c0, event=0x9b5c250)<br>
at gstpad.c:4899<br>#9 0x019968e2 in gst_base_transform_sink_event (pad=0x99653f8, <br> event=0x9b5c250) at gstbasetransform.c:1710<br>#10 0x00a790c3 in gst_pad_send_event (pad=0x99653f8, event=0x9b5c250)<br> at gstpad.c:5043<br>
[35 more skipped]<br><br>Is this a bug or incorrect use of pipeline's plugins?<br>