kms: Bump libdrm requirement to 2.4.108

DRM modifier support requires drmModeFormatModifierBlobIterNext()
which was added in 2.4.108. See:

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5174#note_2673883

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7991>
This commit is contained in:
Nirbheek Chauhan 2024-11-28 12:24:11 +05:30 committed by GStreamer Marge Bot
parent de41680f78
commit 75848859f1
3 changed files with 3 additions and 22 deletions

View file

@ -57,16 +57,13 @@
#include <xf86drmMode.h>
#include <drm_fourcc.h>
#include <string.h>
#include <math.h>
#include "gstkmssink.h"
#include "gstkmsutils.h"
#include "gstkmsbufferpool.h"
#include "gstkmsallocator.h"
#ifdef HAVE_DRM_HDR
#include <math.h>
#include "gstkmsedid.h"
#endif
#define GST_PLUGIN_NAME "kmssink"
#define GST_PLUGIN_DESC "Video sink using the Linux kernel mode setting API"
@ -110,7 +107,6 @@ enum
static GParamSpec *g_properties[PROP_N] = { NULL, };
#ifdef HAVE_DRM_HDR
enum hdmi_metadata_type
{
HDMI_STATIC_METADATA_TYPE1 = 0,
@ -405,7 +401,6 @@ gst_kms_sink_set_hdr10_caps (GstKMSSink * self, GstCaps * caps)
}
}
#endif /* HAVE_DRM_HDR */
static void
gst_kms_sink_set_render_rectangle (GstVideoOverlay * overlay,
@ -1681,9 +1676,7 @@ gst_kms_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
if (GST_VIDEO_SINK_WIDTH (self) <= 0 || GST_VIDEO_SINK_HEIGHT (self) <= 0)
goto invalid_size;
#ifdef HAVE_DRM_HDR
gst_kms_sink_set_hdr10_caps (self, caps);
#endif
/* discard dumb buffer pool */
if (self->pool) {
@ -2218,10 +2211,8 @@ retry_set_plane:
src.w = result.w;
src.h = result.h;
}
#ifdef HAVE_DRM_HDR
/* Send the HDR infoframes if appropriate */
gst_kms_push_hdr_infoframe (self, FALSE);
#endif
GST_TRACE_OBJECT (self,
"drmModeSetPlane at (%i,%i) %ix%i sourcing at (%i,%i) %ix%i",
@ -2540,7 +2531,6 @@ gst_kms_sink_init (GstKMSSink * sink)
gst_video_info_dma_drm_init (&sink->vinfo_drm);
sink->skip_vsync = FALSE;
#ifdef HAVE_DRM_HDR
sink->no_infoframe = FALSE;
sink->has_hdr_info = FALSE;
sink->has_sent_hdrif = FALSE;
@ -2549,7 +2539,6 @@ gst_kms_sink_init (GstKMSSink * sink)
sink->colorimetry = HDMI_EOTF_TRADITIONAL_GAMMA_SDR;
gst_video_mastering_display_info_init (&sink->hdr_minfo);
gst_video_content_light_level_init (&sink->hdr_cll);
#endif
}
static void

View file

@ -99,7 +99,6 @@ struct _GstKMSSink {
gboolean is_internal_fd;
gboolean skip_vsync;
#ifdef HAVE_DRM_HDR
/* HDR mastering related structure */
gboolean no_infoframe;
gboolean has_hdr_info;
@ -109,7 +108,6 @@ struct _GstKMSSink {
gchar colorimetry;
GstVideoMasteringDisplayInfo hdr_minfo;
GstVideoContentLightLevel hdr_cll;
#endif
};
struct _GstKMSSinkClass {

View file

@ -1,6 +1,7 @@
kmssink_sources = [
'gstkmsallocator.c',
'gstkmsbufferpool.c',
'gstkmsedid.c',
'gstkmssink.c',
'gstkmsutils.c',
]
@ -10,17 +11,10 @@ if host_system != 'linux'
subdir_done()
endif
libdrm_dep = dependency('libdrm', version : '>= 2.4.98',
libdrm_dep = dependency('libdrm', version : '>= 2.4.108',
required : get_option('kms'))
libdrm_hdr_dep = dependency('libdrm', version : '>= 2.4.104',
required : false)
mathlib = cc.find_library('m', required : false)
if libdrm_hdr_dep.found() and mathlib.found()
cdata.set('HAVE_DRM_HDR', 1)
kmssink_sources += 'gstkmsedid.c'
endif
if libdrm_dep.found()
gstkmssink = library('gstkms',
kmssink_sources,