[Gstreamer-bugs] [Bug 137504] New - mpeg2dec fails on 422 encoded material

bugzilla-daemon at widget.gnome.org bugzilla-daemon at widget.gnome.org
Wed Mar 17 08:05:44 PST 2004


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

http://bugzilla.gnome.org/show_bug.cgi?id=137504

Changed by matthew.spencer at eu.sony.com.

--- shadow/137504	Wed Mar 17 11:05:44 2004
+++ shadow/137504.tmp.7571	Wed Mar 17 11:05:44 2004
@@ -0,0 +1,63 @@
+Bug#: 137504
+Product: GStreamer
+Version: 0.3.3
+OS: Linux
+OS Details: Fedora core 1
+Status: NEW   
+Resolution: 
+Severity: normal
+Priority: Normal
+Component: gst-plugins
+AssignedTo: gstreamer-maint at bugzilla.gnome.org                            
+ReportedBy: Matthew.Spencer at eu.sony.com               
+QAContact: gstreamer-maint at bugzilla.gnome.org
+TargetMilestone: HEAD
+URL: 
+Summary: mpeg2dec fails on 422 encoded material
+
+I am currently working on an MXF demuxer that uses gstreamer, but I am
+running into a problem with this pipeline (using gstreamer version 0.8.0):
+
+ filesrc location=file.mxf ! mxfdemux ! mpeg2dec ! xvimagesink
+
+The pipeline segfaults in mpeg2dec.  If I run this pipeline (or something
+like):
+
+ filesrc location=file.mxf ! mxfdemux ! fdsink fd=1 | mpeg2dec /proc/self/fd/1
+
+all goes fine.
+
+I have been analyzing the problem using valgrind at it seems that on my
+system (Fedora core 1) the mpeg2dec is overrunning its buffers when
+decoding.  Valgrinds output from the simple pipeline:
+
+ filesrc location=file.mpeg2 ! mpeg2dec ! xvimagesink
+
+if gives me the output:
+Invalid write of size 8
+==22720==    at 0x4C16D40: mpeg2_idct_copy_mmxext (idct_mmx.c:613)
+==22720==    by 0x4C068CE: mpeg2_slice (slice.c:954)
+==22720==    by 0x4C04704: mpeg2_parse (decode.c:188)
+==22720==    by 0x6501FE: gst_mpeg2dec_chain (gstmpeg2dec.c:478)
+==22720==    by 0xD9F6A4: gst_pad_push (gstpad.c:3032)
+==22720==    by 0xE700C2: get_group_schedule_function
+(gstoptimalscheduler.c:1138)
+==22720==    by 0xE6FC41: schedule_group (gstoptimalscheduler.c:1007)
+==22720==    by 0xE6FCF7: gst_opt_scheduler_schedule_run_queue
+(gstoptimalscheduler.c:1050)
+==22720==    Address 0x3ACD524 is 0 bytes after a block of size 656640 alloc'd
+==22720==    at 0xE8A68E: malloc (vg_replace_malloc.c:153)
+==22720==    by 0xAF38C6: g_malloc (in /usr/lib/libglib-2.0.so.0.200.3)
+==22720==    by 0xD85B9F: gst_buffer_new_and_alloc (gstbuffer.c:224)
+==22720==    by 0x64FE04: gst_mpeg2dec_alloc_buffer (gstmpeg2dec.c:293)
+==22720==    by 0x6503CD: gst_mpeg2dec_chain (gstmpeg2dec.c:508)
+==22720==    by 0xD9F6A4: gst_pad_push (gstpad.c:3032)
+==22720==    by 0xE700C2: get_group_schedule_function
+(gstoptimalscheduler.c:1138)
+==22720==    by 0xE6FC41: schedule_group (gstoptimalscheduler.c:1007)
+
+informing us that the buffer being read from that was allocated by
+'gst_mpeg2dec_alloc_buffer' is being accessed invalidly.
+
+I checked mpeg2dec command line tool for processing the same file, and I
+get no such error.




More information about the Gstreamer-bugs mailing list