GNOME Bugzilla – Bug 681436
Crash in gstvideofilter.c:propose_allocation()
Last modified: 2012-08-08 13:24:31 UTC
Created attachment 220648 [details] [review] Fix the crash in videofilter:propose_allocation() To reproduce the issue: gst-launch-1.0 filesrc location=/home/samples/vc1/FlightSimX_720p60_51_15Mbps.wmv ! asfdemux ! queue ! avdec_wmv3 ! videoconvert ! "video/x-raw, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, framerate=(fraction)2500000/41709, format=(string)BGRA" ! videoconvert ! xvimagesink sample file: http://samples.mplayerhq.hu/V-codecs/WVC1/FlightSimX_720p60_51_15Mbps.wmv playbin will work because there is no format conversion and basetransform is working in passthrough mode... To reproduce the issue we have to avoid the passthrough method in BaseTransform. -- videofilter create bufferpool if there is none in the query. -- Add "GST_VIDEO_META_API_TYPE" only if the videofilter creates video_buffer_pool.
commit 87075463458dac90103da1c324e88f8da722d017 Author: Sreerenj Balachandran <sreerenj.balachandran@intel.com> Date: Wed Aug 8 12:06:45 2012 +0300 videofilter: Fix the crash in propose_allocation Always set a buffer pool if none is provided and don't set/unref a NULL buffer pool on the query. https://bugzilla.gnome.org/show_bug.cgi?id=681436
Created attachment 220656 [details] [review] remove fourcc typecast in sample pipeline
commit 8b916da6d783d002281c8f8cf9dff6e254e5170c Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Wed Aug 8 12:19:31 2012 +0200 videofilter: Really add a buffer pool if none was provided And also use the allocation parameters from the query if any and if there are none set our own (16-byte alignment) on the query.
It should reopen i think since the commit 8b916da6d783d002281c8f8cf9dff6e254e5170c is creating a regression again.. Dont know whether this patch is the correct one, anyway attaching it(which is fixing the issue at least for one case..)..
Created attachment 220664 [details] [review] Fix the crash in videofilter:propose_allocation()
Review of attachment 220664 [details] [review]: ::: gst-libs/gst/video/gstvideofilter.c @@ +98,3 @@ + if (gst_query_find_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL)) { + gst_buffer_pool_config_add_option (structure, + GST_BUFFER_POOL_OPTION_VIDEO_META); It shouldn't add the video meta at all. That's something upstream elements must do, especially as any upstream element is free to not support the video meta
Review of attachment 220664 [details] [review]: ::: gst-libs/gst/video/gstvideofilter.c @@ -104,3 @@ gst_query_add_allocation_pool (query, pool, size, 0, 0); gst_object_unref (pool); - gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL); It should however add the meta to the query as a possibility.
backtrace: 0xb6d65f93 in put_pixels16_sse2 (block=0xb344c058 '\020' <repeats 200 times>..., pixels=0xb35a6058 '\020' <repeats 200 times>..., line_size=1280, h=16) at libavcodec/x86/dsputil_mmx.c:455
+ Trace 230637
That's bug #680796 and unrelated to this one here
okay,,,,thanks slomo..