[Bug 702174] New: Crash while transcoding to MPEG2 with encodebin

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Jun 13 05:50:06 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=702174
  GStreamer | don't know | git

           Summary: Crash while transcoding to MPEG2 with encodebin
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: don't know
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: mail at jensge.org
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=246715)
 --> (https://bugzilla.gnome.org/attachment.cgi?id=246715)
Sample code

This happens while trying to transcode to MPEG2/MP2 in MPEG-TS; I tested it
with H.264/AAC in ISO mp4 and WEBM.

To reproduce, use attached sample program.

#0  gst_buffer_add_mpeg_video_meta (buffer=<optimized out>,
seq_hdr=seq_hdr at entry=0x2ab6730, seq_ext=seq_ext at entry=0x2ab67d4,
disp_ext=disp_ext at entry=0x0, pic_hdr=0x2ab67ea,
pic_ext=pic_ext at entry=0x2ab67f4, quant_ext=0x0)
    at gstmpegvideometa.c:128
#1  0x00007ff9b401dcc9 in gst_mpegv_parse_pre_push_frame (parse=<optimized
out>, frame=0x7ff9a8019990) at gstmpegvideoparse.c:912
#2  0x00007ff9ec8bc1c8 in gst_base_parse_push_frame
(parse=parse at entry=0x2ab6490, frame=frame at entry=0x7ff9a8019990) at
gstbaseparse.c:2155
#3  0x00007ff9ec8bfdeb in gst_base_parse_handle_and_push_frame
(frame=0x7ff9a8019990, parse=0x2ab6490) at gstbaseparse.c:2032
#4  gst_base_parse_finish_frame (parse=parse at entry=0x2ab6490,
frame=frame at entry=0x7ff9a8019990, size=size at entry=5297) at gstbaseparse.c:2336
#5  0x00007ff9b401e888 in gst_mpegv_parse_handle_frame (parse=0x2ab6490,
frame=0x7ff9a8019990, skipsize=0x7ff9b4c37b08) at gstmpegvideoparse.c:671
#6  0x00007ff9ec8b9c7e in gst_base_parse_handle_buffer
(parse=parse at entry=0x2ab6490, buffer=<optimized out>,
skip=skip at entry=0x7ff9b4c37b08, flushed=flushed at entry=0x7ff9b4c37b0c) at
gstbaseparse.c:1886
#7  0x00007ff9ec8bd202 in gst_base_parse_chain (pad=<optimized out>,
parent=0x2ab6490, buffer=<optimized out>) at gstbaseparse.c:2755
#8  0x00007ff9ec60a080 in gst_pad_chain_data_unchecked (data=0x7ff9b80e2060,
type=<optimized out>, pad=0x7ff994006290) at gstpad.c:3708
#9  gst_pad_push_data (pad=0x7ff994006d80, type=<optimized out>,
data=<optimized out>) at gstpad.c:3938
#10 0x00007ff9ec60a080 in gst_pad_chain_data_unchecked (data=0x7ff9b80e2060,
type=4112, pad=0x289c2b0) at gstpad.c:3708
#11 gst_pad_push_data (pad=0x7ff994007410, type=type at entry=4112,
data=<optimized out>, data at entry=0x7ff9b80e2060) at gstpad.c:3938
#12 0x00007ff9ec610b56 in gst_pad_push (pad=<optimized out>,
buffer=buffer at entry=0x7ff9b80e2060) at gstpad.c:4041
#13 0x00007ff9ec16e8e3 in gst_video_encoder_finish_frame
(encoder=encoder at entry=0x2aaf800, frame=0x0, frame at entry=0x7ff9b80d3150) at
gstvideoencoder.c:1939
#14 0x00007ff9b4ecfc01 in gst_ffmpegvidenc_handle_frame (encoder=0x2aaf800,
frame=0x7ff9b80d3150) at gstavvidenc.c:623
#15 0x00007ff9ec16d27c in gst_video_encoder_chain (pad=<optimized out>,
parent=<optimized out>, buf=<optimized out>) at gstvideoencoder.c:1352
#16 0x00007ff9ec60a080 in gst_pad_chain_data_unchecked (data=0x27c8490,
type=4112, pad=0x287bc90) at gstpad.c:3708
#17 gst_pad_push_data (pad=0x289cb70, type=type at entry=4112, data=<optimized
out>) at gstpad.c:3938
#18 0x00007ff9ec610b56 in gst_pad_push (pad=<optimized out>, buffer=<optimized
out>) at gstpad.c:4041
#19 0x00007ff9ec8dad50 in gst_base_transform_chain (pad=<optimized out>,
parent=<optimized out>, buffer=<optimized out>) at gstbasetransform.c:2215
#20 0x00007ff9ec60a080 in gst_pad_chain_data_unchecked (data=0x27c8490,
type=4112, pad=0x289d200) at gstpad.c:3708
#21 gst_pad_push_data (pad=0x2ac4290, type=type at entry=4112, data=<optimized
out>) at gstpad.c:3938
#22 0x00007ff9ec610b56 in gst_pad_push (pad=<optimized out>, buffer=<optimized
out>) at gstpad.c:4041
#23 0x00007ff9d7bded5f in gst_video_rate_flush_prev
(videorate=videorate at entry=0x2ac7b70, duplicate=<optimized out>) at
gstvideorate.c:632
#24 0x00007ff9d7be036e in gst_video_rate_transform_ip (trans=<optimized out>,
buffer=0x7ff9b80d3d00) at gstvideorate.c:1058
#25 0x00007ff9ec8da350 in gst_base_transform_handle_buffer
(trans=trans at entry=0x2ac7b70, inbuf=inbuf at entry=0x7ff9b80d3d00,
outbuf=outbuf at entry=0x7ff9b4c38628) at gstbasetransform.c:2067
#26 0x00007ff9ec8dab44 in gst_base_transform_chain (pad=<optimized out>,
parent=<optimized out>, buffer=0x7ff9b80d3d00) at gstbasetransform.c:2179
#27 0x00007ff9ec60a080 in gst_pad_chain_data_unchecked (data=0x7ff9b80d3d00,
type=4112, pad=0x2ac4060) at gstpad.c:3708
#28 gst_pad_push_data (pad=0x289c4e0, type=type at entry=4112, data=<optimized
out>) at gstpad.c:3938
#29 0x00007ff9ec610b56 in gst_pad_push (pad=<optimized out>, buffer=<optimized
out>) at gstpad.c:4041
#30 0x00007ff9ec8dad50 in gst_base_transform_chain (pad=<optimized out>,
parent=<optimized out>, buffer=<optimized out>) at gstbasetransform.c:2215
#31 0x00007ff9ec60a080 in gst_pad_chain_data_unchecked (data=0x7ff9b80d3d00,
type=4112, pad=0x289d890) at gstpad.c:3708
#32 gst_pad_push_data (pad=0x289cfd0, type=type at entry=4112, data=<optimized
out>) at gstpad.c:3938
#33 0x00007ff9ec610b56 in gst_pad_push (pad=<optimized out>, buffer=<optimized
out>) at gstpad.c:4041
#34 0x00007ff9ec8dad50 in gst_base_transform_chain (pad=<optimized out>,
parent=<optimized out>, buffer=<optimized out>) at gstbasetransform.c:2215
#35 0x00007ff9ec60a080 in gst_pad_chain_data_unchecked (data=0x7ff9b816a7e0,
type=4112, pad=0x289d430) at gstpad.c:3708
#36 gst_pad_push_data (pad=0x289dcf0, type=type at entry=4112, data=<optimized
out>) at gstpad.c:3938
#37 0x00007ff9ec610b56 in gst_pad_push (pad=<optimized out>, buffer=<optimized
out>) at gstpad.c:4041
#38 0x00007ff9ec8dad50 in gst_base_transform_chain (pad=<optimized out>,
parent=<optimized out>, buffer=<optimized out>) at gstbasetransform.c:2215
#39 0x00007ff9ec60a080 in gst_pad_chain_data_unchecked (data=0x7ff9b816a7e0,
type=4112, pad=0x289c940) at gstpad.c:3708
#40 gst_pad_push_data (pad=pad at entry=0x2ac44c0, type=type at entry=4112,
data=<optimized out>, data at entry=0x7ff9b816a7e0) at gstpad.c:3938
#41 0x00007ff9ec610b56 in gst_pad_push (pad=pad at entry=0x2ac44c0,
buffer=buffer at entry=0x7ff9b816a7e0) at gstpad.c:4041
#42 0x00007ff9e62f352b in gst_stream_splitter_chain (pad=<optimized out>,
parent=0x21c0810, buf=0x7ff9b816a7e0) at gststreamsplitter.c:136
#43 0x00007ff9ec60a080 in gst_pad_chain_data_unchecked (data=0x7ff9b816a7e0,
type=4112, pad=0x7ff9940064c0) at gstpad.c:3708
#44 gst_pad_push_data (pad=0x7ff994006920, type=type at entry=4112,
data=<optimized out>, data at entry=0x7ff9b816a7e0) at gstpad.c:3938
#45 0x00007ff9ec610b56 in gst_pad_push (pad=<optimized out>,
buffer=buffer at entry=0x7ff9b816a7e0) at gstpad.c:4041
#46 0x00007ff9d48d22a9 in gst_queue_push_one (queue=0x7ff9a402ed40) at
gstqueue.c:1120
#47 gst_queue_loop (pad=<optimized out>) at gstqueue.c:1238
#48 0x00007ff9ec638bf1 in gst_task_func (task=0x2804b40) at gsttask.c:316
#49 0x00007ff9f0480642 in g_thread_pool_thread_proxy (data=<optimized out>) at
gthreadpool.c:309
#50 0x00007ff9f047fe05 in g_thread_proxy (data=0x2acbad0) at gthread.c:798
#51 0x00007ff9efafdf8e in start_thread (arg=0x7ff9b4c39700) at
pthread_create.c:311
#52 0x00007ff9ef827e1d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:113


before that, there's a critical about the gst_buffer not being writable:

#0  g_logv (log_domain=0x7ffff3295668 <g_log_domain_gstreamer> "GStreamer",
log_level=G_LOG_LEVEL_CRITICAL, format=0x7ffff710733a "%s: assertion `%s'
failed", args=args at entry=0x7fffb1ff93a8) at gmessages.c:857
#1  0x00007ffff709c3b2 in g_log (log_domain=<optimized out>,
log_level=log_level at entry=G_LOG_LEVEL_CRITICAL,
format=format at entry=0x7ffff710733a "%s: assertion `%s' failed") at
gmessages.c:1010
#2  0x00007ffff709c3d9 in g_return_if_fail_warning (log_domain=<optimized out>,
pretty_function=pretty_function at entry=0x7ffff3298a10
<__PRETTY_FUNCTION__.18516> "gst_buffer_add_meta", 
    expression=expression at entry=0x7ffff3298228 "gst_buffer_is_writable
(buffer)") at gmessages.c:1019
#3  0x00007ffff3216915 in gst_buffer_add_meta
(buffer=buffer at entry=0x7fffb40771b0, info=0x7fffe40626d0,
params=params at entry=0x0) at gstbuffer.c:1912
#4  0x00007fffe33d7696 in gst_buffer_add_mpeg_video_meta
(buffer=0x7fffb40771b0, seq_hdr=seq_hdr at entry=0x7cfaa0,
seq_ext=seq_ext at entry=0x7cfb44, disp_ext=disp_ext at entry=0x0, pic_hdr=0x7cfb5a,
pic_ext=pic_ext at entry=0x7cfb64, 
    quant_ext=0x0) at gstmpegvideometa.c:119
#5  0x00007fffe35eecc9 in gst_mpegv_parse_pre_push_frame (parse=<optimized
out>, frame=0x7fffe405f9e0) at gstmpegvideoparse.c:912
#6  0x00007ffff34f51c8 in gst_base_parse_push_frame
(parse=parse at entry=0x7cf800, frame=frame at entry=0x7fffe405f9e0) at
gstbaseparse.c:2155
#7  0x00007ffff34f8deb in gst_base_parse_handle_and_push_frame
(frame=0x7fffe405f9e0, parse=0x7cf800) at gstbaseparse.c:2032
#8  gst_base_parse_finish_frame (parse=parse at entry=0x7cf800,
frame=frame at entry=0x7fffe405f9e0, size=size at entry=5297) at gstbaseparse.c:2336
#9  0x00007fffe35ef888 in gst_mpegv_parse_handle_frame (parse=0x7cf800,
frame=0x7fffe405f9e0, skipsize=0x7fffb1ff9b08) at gstmpegvideoparse.c:671
#10 0x00007ffff34f2c7e in gst_base_parse_handle_buffer
(parse=parse at entry=0x7cf800, buffer=<optimized out>,
skip=skip at entry=0x7fffb1ff9b08, flushed=flushed at entry=0x7fffb1ff9b0c) at
gstbaseparse.c:1886
#11 0x00007ffff34f6202 in gst_base_parse_chain (pad=<optimized out>,
parent=0x7cf800, buffer=<optimized out>) at gstbaseparse.c:2755
#12 0x00007ffff3243080 in gst_pad_chain_data_unchecked (data=0x7fffac0fe240,
type=<optimized out>, pad=0x7fffb4058040) at gstpad.c:3708
#13 gst_pad_push_data (pad=0x7fffb40584a0, type=<optimized out>,
data=<optimized out>) at gstpad.c:3938
#14 0x00007ffff3243080 in gst_pad_chain_data_unchecked (data=0x7fffac0fe240,
type=4112, pad=0x7fffc4037d70) at gstpad.c:3708
#15 gst_pad_push_data (pad=0x7fffb4059cb0, type=type at entry=4112,
data=<optimized out>, data at entry=0x7fffac0fe240) at gstpad.c:3938
#16 0x00007ffff3249b56 in gst_pad_push (pad=<optimized out>,
buffer=buffer at entry=0x7fffac0fe240) at gstpad.c:4041
#17 0x00007ffff2da78e3 in gst_video_encoder_finish_frame
(encoder=encoder at entry=0x7d5000, frame=0x0, frame at entry=0x7fffac1670e0) at
gstvideoencoder.c:1939
#18 0x00007fffc0489c01 in gst_ffmpegvidenc_handle_frame (encoder=0x7d5000,
frame=0x7fffac1670e0) at gstavvidenc.c:623
#19 0x00007ffff2da627c in gst_video_encoder_chain (pad=<optimized out>,
parent=<optimized out>, buf=<optimized out>) at gstvideoencoder.c:1352
#20 0x00007ffff3243080 in gst_pad_chain_data_unchecked (data=0x7fffb4077a30,
type=4112, pad=0xd20d60) at gstpad.c:3708
#21 gst_pad_push_data (pad=0x7fffc40374b0, type=type at entry=4112,
data=<optimized out>) at gstpad.c:3938
#22 0x00007ffff3249b56 in gst_pad_push (pad=<optimized out>, buffer=<optimized
out>) at gstpad.c:4041
#23 0x00007ffff3513d50 in gst_base_transform_chain (pad=<optimized out>,
parent=<optimized out>, buffer=<optimized out>) at gstbasetransform.c:2215
#24 0x00007ffff3243080 in gst_pad_chain_data_unchecked (data=0x7fffb4077a30,
type=4112, pad=0x7fffc4037b40) at gstpad.c:3708
#25 gst_pad_push_data (pad=0x7fffc4037280, type=type at entry=4112,
data=<optimized out>) at gstpad.c:3938
#26 0x00007ffff3249b56 in gst_pad_push (pad=<optimized out>, buffer=<optimized
out>) at gstpad.c:4041
#27 0x00007fffc20f8d5f in gst_video_rate_flush_prev
(videorate=videorate at entry=0xf6e6d0, duplicate=<optimized out>) at
gstvideorate.c:632
#28 0x00007fffc20fa36e in gst_video_rate_transform_ip (trans=<optimized out>,
buffer=0x7fffac167740) at gstvideorate.c:1058
#29 0x00007ffff3513350 in gst_base_transform_handle_buffer
(trans=trans at entry=0xf6e6d0, inbuf=inbuf at entry=0x7fffac167740,
outbuf=outbuf at entry=0x7fffb1ffa628) at gstbasetransform.c:2067
#30 0x00007ffff3513b44 in gst_base_transform_chain (pad=<optimized out>,
parent=<optimized out>, buffer=0x7fffac167740) at gstbasetransform.c:2179
#31 0x00007ffff3243080 in gst_pad_chain_data_unchecked (data=0x7fffac167740,
type=4112, pad=0x7fffc4037050) at gstpad.c:3708
#32 gst_pad_push_data (pad=0x7fffc4036560, type=type at entry=4112,
data=<optimized out>) at gstpad.c:3938
#33 0x00007ffff3249b56 in gst_pad_push (pad=<optimized out>, buffer=<optimized
out>) at gstpad.c:4041
#34 0x00007ffff3513d50 in gst_base_transform_chain (pad=<optimized out>,
parent=<optimized out>, buffer=<optimized out>) at gstbasetransform.c:2215
#35 0x00007ffff3243080 in gst_pad_chain_data_unchecked (data=0x7fffac167740,
type=4112, pad=0x7fffc40369c0) at gstpad.c:3708
#36 gst_pad_push_data (pad=0x7fffc4036e20, type=type at entry=4112,
data=<optimized out>) at gstpad.c:3938
#37 0x00007ffff3249b56 in gst_pad_push (pad=<optimized out>, buffer=<optimized
out>) at gstpad.c:4041
#38 0x00007ffff3513d50 in gst_base_transform_chain (pad=<optimized out>,
parent=<optimized out>, buffer=<optimized out>) at gstbasetransform.c:2215
#39 0x00007ffff3243080 in gst_pad_chain_data_unchecked (data=0x7fffbc0202e0,
type=4112, pad=0x7fffc4036330) at gstpad.c:3708
#40 gst_pad_push_data (pad=0x7fffc40376e0, type=type at entry=4112,
data=<optimized out>) at gstpad.c:3938
#41 0x00007ffff3249b56 in gst_pad_push (pad=<optimized out>, buffer=<optimized
out>) at gstpad.c:4041
#42 0x00007ffff3513d50 in gst_base_transform_chain (pad=<optimized out>,
parent=<optimized out>, buffer=<optimized out>) at gstbasetransform.c:2215
#43 0x00007ffff3243080 in gst_pad_chain_data_unchecked (data=0x7fffbc0202e0,
type=4112, pad=0x7fffc4036bf0) at gstpad.c:3708
#44 gst_pad_push_data (pad=pad at entry=0x7fffe4060770, type=type at entry=4112,
data=<optimized out>, data at entry=0x7fffbc0202e0) at gstpad.c:3938
#45 0x00007ffff3249b56 in gst_pad_push (pad=pad at entry=0x7fffe4060770,
buffer=buffer at entry=0x7fffbc0202e0) at gstpad.c:4041
#46 0x00007ffff107252b in gst_stream_splitter_chain (pad=<optimized out>,
parent=0x7fffb40602e0, buf=0x7fffbc0202e0) at gststreamsplitter.c:136
#47 0x00007ffff3243080 in gst_pad_chain_data_unchecked (data=0x7fffbc0202e0,
type=4112, pad=0x7fffb40586d0) at gstpad.c:3708
#48 gst_pad_push_data (pad=0x7fffb4058b30, type=type at entry=4112,
data=<optimized out>, data at entry=0x7fffbc0202e0) at gstpad.c:3938
#49 0x00007ffff3249b56 in gst_pad_push (pad=<optimized out>,
buffer=buffer at entry=0x7fffbc0202e0) at gstpad.c:4041
#50 0x00007fffc3ddd2a9 in gst_queue_push_one (queue=0x7fffb802d350) at
gstqueue.c:1120
#51 gst_queue_loop (pad=<optimized out>) at gstqueue.c:1238
#52 0x00007ffff3271bf1 in gst_task_func (task=0x7fffbc01aea0) at gsttask.c:316
#53 0x00007ffff70b9642 in g_thread_pool_thread_proxy (data=<optimized out>) at
gthreadpool.c:309
#54 0x00007ffff70b8e05 in g_thread_proxy (data=0xf3b320) at gthread.c:798
#55 0x00007ffff6736f8e in start_thread (arg=0x7fffb1ffb700) at
pthread_create.c:311
#56 0x00007ffff6460e1d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:113

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list