[Bug 754120] avdec_hevc: Segfault in hevc decode with glimagesink and AVX2 CPU feature

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Sep 2 11:28:23 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=754120

--- Comment #15 from Tim-Philipp Müller <t.i.m at zen.co.uk> ---
Not really. I am not sure if the alignment thing is not a red herring.

This also seems to "fix" it for me:

@@ -700,7 +700,7 @@ gst_ffmpegviddec_ensure_internal_pool (GstFFMpegVidDec *
ffmpegdec,
   config = gst_buffer_pool_get_config (ffmpegdec->internal_pool);

   caps = gst_video_info_to_caps (&info);
-  gst_buffer_pool_config_set_params (config, caps, info.size, 2, 0);
+  gst_buffer_pool_config_set_params (config, caps, info.size, 10, 0);
   gst_buffer_pool_config_set_allocator (config, NULL, &params);
   gst_buffer_pool_config_add_option (config,
GST_BUFFER_POOL_OPTION_VIDEO_META);

@@ -805,10 +805,8 @@ gst_ffmpegviddec_get_buffer2 (AVCodecContext * context,
AVFrame * picture,
     if (c < GST_VIDEO_INFO_N_PLANES (&ffmpegdec->pool_info)) {
       picture->data[c] = GST_VIDEO_FRAME_PLANE_DATA (&dframe->vframe, c);
       picture->linesize[c] = GST_VIDEO_FRAME_PLANE_STRIDE (&dframe->vframe,
c);
-
       if (ffmpegdec->stride[c] == -1)
         ffmpegdec->stride[c] = picture->linesize[c];
-
       /* libav does not allow stride changes, decide allocation should check
        * before replacing the internal pool with a downstream pool.
        * https://bugzilla.gnome.org/show_bug.cgi?id=704769
@@ -1802,7 +1800,7 @@ gst_ffmpegviddec_decide_allocation (GstVideoDecoder *
decoder, GstQuery * query)
   }

   config = gst_buffer_pool_get_config (pool);
-  gst_buffer_pool_config_set_params (config, state->caps, size, min, max);
+  gst_buffer_pool_config_set_params (config, state->caps, size, MAX (10, min),
max);
   gst_buffer_pool_config_set_allocator (config, allocator, &params);

   have_videometa =
@@ -1873,7 +1871,7 @@ gst_ffmpegviddec_decide_allocation (GstVideoDecoder *
decoder, GstQuery * query)
       gst_object_unref (pool);
       pool = gst_video_buffer_pool_new ();
       config = gst_buffer_pool_get_config (pool);
-      gst_buffer_pool_config_set_params (config, state->caps, size, min, max);
+      gst_buffer_pool_config_set_params (config, state->caps, size, MAX (10,
min), max);
       gst_buffer_pool_config_set_allocator (config, NULL, &params);
       gst_buffer_pool_set_config (pool, config);
       update_pool = TRUE;

Not sure what to conclude from that :)

-- 
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