After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 702174 - mpegvideoparse: Crash while transcoding to MPEG2 with encodebin while attaching parse meta
mpegvideoparse: Crash while transcoding to MPEG2 with encodebin while attachi...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal critical
: 1.1.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-06-13 12:49 UTC by Jens Georg
Modified: 2013-06-14 14:45 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Sample code (2.45 KB, application/x-xz)
2013-06-13 12:49 UTC, Jens Georg
Details

Description Jens Georg 2013-06-13 12:49:57 UTC
Created attachment 246715 [details]
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
    at gstmpegvideometa.c line 128
  • #1 gst_mpegv_parse_pre_push_frame
    at gstmpegvideoparse.c line 912
  • #2 gst_base_parse_push_frame
    at gstbaseparse.c line 2155
  • #3 gst_base_parse_handle_and_push_frame
    at gstbaseparse.c line 2032
  • #4 gst_base_parse_finish_frame
    at gstbaseparse.c line 2336
  • #5 gst_mpegv_parse_handle_frame
    at gstmpegvideoparse.c line 671
  • #6 gst_base_parse_handle_buffer
    at gstbaseparse.c line 1886
  • #7 gst_base_parse_chain
    at gstbaseparse.c line 2755
  • #8 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #9 gst_pad_push_data
    at gstpad.c line 3938
  • #10 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #11 gst_pad_push_data
    at gstpad.c line 3938
  • #12 gst_pad_push
    at gstpad.c line 4041
  • #13 gst_video_encoder_finish_frame
    at gstvideoencoder.c line 1939
  • #14 gst_ffmpegvidenc_handle_frame
    at gstavvidenc.c line 623
  • #15 gst_video_encoder_chain
    at gstvideoencoder.c line 1352
  • #16 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #17 gst_pad_push_data
    at gstpad.c line 3938
  • #18 gst_pad_push
    at gstpad.c line 4041
  • #19 gst_base_transform_chain
    at gstbasetransform.c line 2215
  • #20 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #21 gst_pad_push_data
    at gstpad.c line 3938
  • #22 gst_pad_push
    at gstpad.c line 4041
  • #23 gst_video_rate_flush_prev
    at gstvideorate.c line 632
  • #24 gst_video_rate_transform_ip
    at gstvideorate.c line 1058
  • #25 gst_base_transform_handle_buffer
    at gstbasetransform.c line 2067
  • #26 gst_base_transform_chain
    at gstbasetransform.c line 2179
  • #27 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #28 gst_pad_push_data
    at gstpad.c line 3938
  • #29 gst_pad_push
    at gstpad.c line 4041
  • #30 gst_base_transform_chain
    at gstbasetransform.c line 2215
  • #31 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #32 gst_pad_push_data
    at gstpad.c line 3938
  • #33 gst_pad_push
    at gstpad.c line 4041
  • #34 gst_base_transform_chain
    at gstbasetransform.c line 2215
  • #35 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #36 gst_pad_push_data
    at gstpad.c line 3938
  • #37 gst_pad_push
    at gstpad.c line 4041
  • #38 gst_base_transform_chain
    at gstbasetransform.c line 2215
  • #39 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #40 gst_pad_push_data
    at gstpad.c line 3938
  • #41 gst_pad_push
    at gstpad.c line 4041
  • #42 gst_stream_splitter_chain
    at gststreamsplitter.c line 136
  • #43 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #44 gst_pad_push_data
    at gstpad.c line 3938
  • #45 gst_pad_push
    at gstpad.c line 4041
  • #46 gst_queue_push_one
    at gstqueue.c line 1120
  • #47 gst_queue_loop
    at gstqueue.c line 1238
  • #48 gst_task_func
    at gsttask.c line 316
  • #49 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #50 g_thread_proxy
    at gthread.c line 798
  • #51 start_thread
    at pthread_create.c line 311
  • #52 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 113
  • #0 g_logv
    at gmessages.c line 857
  • #1 g_log
    at gmessages.c line 1010
  • #2 g_return_if_fail_warning
  • #3 gst_buffer_add_meta
    at gstbuffer.c line 1912
  • #4 gst_buffer_add_mpeg_video_meta
    at gstmpegvideometa.c line 119
  • #5 gst_mpegv_parse_pre_push_frame
    at gstmpegvideoparse.c line 912
  • #6 gst_base_parse_push_frame
    at gstbaseparse.c line 2155
  • #7 gst_base_parse_handle_and_push_frame
    at gstbaseparse.c line 2032
  • #8 gst_base_parse_finish_frame
    at gstbaseparse.c line 2336
  • #9 gst_mpegv_parse_handle_frame
    at gstmpegvideoparse.c line 671
  • #10 gst_base_parse_handle_buffer
    at gstbaseparse.c line 1886
  • #11 gst_base_parse_chain
    at gstbaseparse.c line 2755
  • #12 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #13 gst_pad_push_data
    at gstpad.c line 3938
  • #14 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #15 gst_pad_push_data
    at gstpad.c line 3938
  • #16 gst_pad_push
    at gstpad.c line 4041
  • #17 gst_video_encoder_finish_frame
    at gstvideoencoder.c line 1939
  • #18 gst_ffmpegvidenc_handle_frame
    at gstavvidenc.c line 623
  • #19 gst_video_encoder_chain
    at gstvideoencoder.c line 1352
  • #20 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #21 gst_pad_push_data
    at gstpad.c line 3938
  • #22 gst_pad_push
    at gstpad.c line 4041
  • #23 gst_base_transform_chain
    at gstbasetransform.c line 2215
  • #24 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #25 gst_pad_push_data
    at gstpad.c line 3938
  • #26 gst_pad_push
    at gstpad.c line 4041
  • #27 gst_video_rate_flush_prev
    at gstvideorate.c line 632
  • #28 gst_video_rate_transform_ip
    at gstvideorate.c line 1058
  • #29 gst_base_transform_handle_buffer
    at gstbasetransform.c line 2067
  • #30 gst_base_transform_chain
    at gstbasetransform.c line 2179
  • #31 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #32 gst_pad_push_data
    at gstpad.c line 3938
  • #33 gst_pad_push
    at gstpad.c line 4041
  • #34 gst_base_transform_chain
    at gstbasetransform.c line 2215
  • #35 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #36 gst_pad_push_data
    at gstpad.c line 3938
  • #37 gst_pad_push
    at gstpad.c line 4041
  • #38 gst_base_transform_chain
    at gstbasetransform.c line 2215
  • #39 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #40 gst_pad_push_data
    at gstpad.c line 3938
  • #41 gst_pad_push
    at gstpad.c line 4041
  • #42 gst_base_transform_chain
    at gstbasetransform.c line 2215
  • #43 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #44 gst_pad_push_data
    at gstpad.c line 3938
  • #45 gst_pad_push
    at gstpad.c line 4041
  • #46 gst_stream_splitter_chain
    at gststreamsplitter.c line 136
  • #47 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #48 gst_pad_push_data
    at gstpad.c line 3938
  • #49 gst_pad_push
    at gstpad.c line 4041
  • #50 gst_queue_push_one
    at gstqueue.c line 1120
  • #51 gst_queue_loop
    at gstqueue.c line 1238
  • #52 gst_task_func
    at gsttask.c line 316
  • #53 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #54 g_thread_proxy
    at gthread.c line 798
  • #55 start_thread
    at pthread_create.c line 311
  • #56 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 113

Comment 1 Jens Georg 2013-06-13 12:50:51 UTC
Hrm, bugzilla combined the two stacktraces. Here's the second one

  • #0 g_logv
    at gmessages.c line 857
  • #1 g_log
    at gmessages.c line 1010
  • #2 g_return_if_fail_warning
  • #3 gst_buffer_add_meta
    at gstbuffer.c line 1912
  • #4 gst_buffer_add_mpeg_video_meta
    at gstmpegvideometa.c line 119
  • #5 gst_mpegv_parse_pre_push_frame
    at gstmpegvideoparse.c line 912
  • #6 gst_base_parse_push_frame
    at gstbaseparse.c line 2155
  • #7 gst_base_parse_handle_and_push_frame
    at gstbaseparse.c line 2032
  • #8 gst_base_parse_finish_frame
    at gstbaseparse.c line 2336
  • #9 gst_mpegv_parse_handle_frame
    at gstmpegvideoparse.c line 671
  • #10 gst_base_parse_handle_buffer
    at gstbaseparse.c line 1886
  • #11 gst_base_parse_chain
    at gstbaseparse.c line 2755
  • #12 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #13 gst_pad_push_data
    at gstpad.c line 3938
  • #14 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #15 gst_pad_push_data
    at gstpad.c line 3938
  • #16 gst_pad_push
    at gstpad.c line 4041
  • #17 gst_video_encoder_finish_frame
    at gstvideoencoder.c line 1939
  • #18 gst_ffmpegvidenc_handle_frame
    at gstavvidenc.c line 623
  • #19 gst_video_encoder_chain
    at gstvideoencoder.c line 1352
  • #20 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #21 gst_pad_push_data
    at gstpad.c line 3938
  • #22 gst_pad_push
    at gstpad.c line 4041
  • #23 gst_base_transform_chain
    at gstbasetransform.c line 2215
  • #24 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #25 gst_pad_push_data
    at gstpad.c line 3938
  • #26 gst_pad_push
    at gstpad.c line 4041
  • #27 gst_video_rate_flush_prev
    at gstvideorate.c line 632
  • #28 gst_video_rate_transform_ip
    at gstvideorate.c line 1058
  • #29 gst_base_transform_handle_buffer
    at gstbasetransform.c line 2067
  • #30 gst_base_transform_chain
    at gstbasetransform.c line 2179
  • #31 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #32 gst_pad_push_data
    at gstpad.c line 3938
  • #33 gst_pad_push
    at gstpad.c line 4041
  • #34 gst_base_transform_chain
    at gstbasetransform.c line 2215
  • #35 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #36 gst_pad_push_data
    at gstpad.c line 3938
  • #37 gst_pad_push
    at gstpad.c line 4041
  • #38 gst_base_transform_chain
    at gstbasetransform.c line 2215
  • #39 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #40 gst_pad_push_data
    at gstpad.c line 3938
  • #41 gst_pad_push
    at gstpad.c line 4041
  • #42 gst_base_transform_chain
    at gstbasetransform.c line 2215
  • #43 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #44 gst_pad_push_data
    at gstpad.c line 3938
  • #45 gst_pad_push
    at gstpad.c line 4041
  • #46 gst_stream_splitter_chain
    at gststreamsplitter.c line 136
  • #47 gst_pad_chain_data_unchecked
    at gstpad.c line 3708
  • #48 gst_pad_push_data
    at gstpad.c line 3938
  • #49 gst_pad_push
    at gstpad.c line 4041
  • #50 gst_queue_push_one
    at gstqueue.c line 1120
  • #51 gst_queue_loop
    at gstqueue.c line 1238
  • #52 gst_task_func
    at gsttask.c line 316
  • #53 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #54 g_thread_proxy
    at gthread.c line 798
  • #55 start_thread
    at pthread_create.c line 311
  • #56 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 113

Comment 2 Sebastian Dröge (slomo) 2013-06-14 12:54:32 UTC
This should fix it, please test.

commit f8bc1922b5bdb8c3aab9c7d97f31ea150ffa33f4
Author: Sebastian Dröge <slomo@circular-chaos.org>
Date:   Fri Jun 14 14:52:07 2013 +0200

    mpegvideoparse: Make sure the buffer is writable before we add the MPEG vide
    
    https://bugzilla.gnome.org/show_bug.cgi?id=702174
Comment 3 Jens Georg 2013-06-14 14:45:10 UTC
Yes, works again, thanks.