diff --git a/subprojects/gst-plugins-bad/ext/x265/gstx265enc.c b/subprojects/gst-plugins-bad/ext/x265/gstx265enc.c
index 7e7e723abc..509dd6fef8 100644
--- a/subprojects/gst-plugins-bad/ext/x265/gstx265enc.c
+++ b/subprojects/gst-plugins-bad/ext/x265/gstx265enc.c
@@ -591,7 +591,7 @@ gst_x265_enc_queue_frame (GstX265Enc * enc, GstVideoCodecFrame * frame,
   if (!gst_video_frame_map (&vframe, info, frame->input_buffer, GST_MAP_READ))
     return NULL;
 
-  fdata = g_slice_new (FrameData);
+  fdata = g_new (FrameData, 1);
   fdata->frame = gst_video_codec_frame_ref (frame);
   fdata->vframe = vframe;
 
@@ -613,7 +613,7 @@ gst_x265_enc_dequeue_frame (GstX265Enc * enc, GstVideoCodecFrame * frame)
 
     gst_video_frame_unmap (&fdata->vframe);
     gst_video_codec_frame_unref (fdata->frame);
-    g_slice_free (FrameData, fdata);
+    g_free (fdata);
 
     enc->pending_frames = g_list_delete_link (enc->pending_frames, l);
     return;
@@ -630,7 +630,7 @@ gst_x265_enc_dequeue_all_frames (GstX265Enc * enc)
 
     gst_video_frame_unmap (&fdata->vframe);
     gst_video_codec_frame_unref (fdata->frame);
-    g_slice_free (FrameData, fdata);
+    g_free (fdata);
   }
   g_list_free (enc->pending_frames);
   enc->pending_frames = NULL;