blob: 280cbf984a7f4bf6c784a60f7a0718f3b0f53ec7 [file] [log] [blame]
Andrew Geissler7e0e3c02022-02-25 20:34:39 +00001From 001fa08542dd5fc79571f7c803b2d3dd59c04a06 Mon Sep 17 00:00:00 2001
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05002From: Andre McCurdy <armccurdy@gmail.com>
3Date: Tue, 9 Feb 2016 14:00:00 -0800
Andrew Geissler7e0e3c02022-02-25 20:34:39 +00004Subject: [PATCH] ensure valid sentinals for gst_structure_get() etc
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05005
6For GStreamer functions declared with G_GNUC_NULL_TERMINATED,
7ie __attribute__((__sentinel__)), gcc will generate a warning if the
8last parameter passed to the function is not NULL (where a valid NULL
9in this context is defined as zero with any pointer type).
10
11The C callers to such functions within gst-plugins-bad use the C NULL
12definition (ie ((void*)0)), which is a valid sentinel.
13
14However the C++ NULL definition (ie 0L), is not a valid sentinel
15without an explicit cast to a pointer type.
16
17Upstream-Status: Pending
18
19Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000020
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050021---
22 sys/decklink/gstdecklink.cpp | 10 +++++-----
23 sys/decklink/gstdecklinkaudiosrc.cpp | 2 +-
24 sys/decklink/gstdecklinkvideosink.cpp | 2 +-
25 3 files changed, 7 insertions(+), 7 deletions(-)
26
Andrew Geissler6ce62a22020-11-30 19:58:47 -060027diff --git a/sys/decklink/gstdecklink.cpp b/sys/decklink/gstdecklink.cpp
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000028index 3f79deb..96600c6 100644
Andrew Geissler6ce62a22020-11-30 19:58:47 -060029--- a/sys/decklink/gstdecklink.cpp
30+++ b/sys/decklink/gstdecklink.cpp
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000031@@ -680,7 +680,7 @@ gst_decklink_mode_get_generic_structure (GstDecklinkModeEnum e)
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050032 "pixel-aspect-ratio", GST_TYPE_FRACTION, mode->par_n, mode->par_d,
Brad Bishop6e60e8b2018-02-01 10:27:11 -050033 "interlace-mode", G_TYPE_STRING,
34 mode->interlaced ? "interleaved" : "progressive",
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050035- "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, NULL);
Brad Bishop6e60e8b2018-02-01 10:27:11 -050036+ "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, (void*)NULL);
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050037
Andrew Geissler6ce62a22020-11-30 19:58:47 -060038 return s;
39 }
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000040@@ -705,16 +705,16 @@ gst_decklink_mode_get_structure (GstDecklinkModeEnum e, BMDPixelFormat f,
Brad Bishop6e60e8b2018-02-01 10:27:11 -050041 case bmdFormat8BitYUV: /* '2vuy' */
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050042 gst_structure_set (s, "format", G_TYPE_STRING, "UYVY",
43 "colorimetry", G_TYPE_STRING, mode->colorimetry,
44- "chroma-site", G_TYPE_STRING, "mpeg2", NULL);
Brad Bishop6e60e8b2018-02-01 10:27:11 -050045+ "chroma-site", G_TYPE_STRING, "mpeg2", (void*)NULL);
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050046 break;
Brad Bishop6e60e8b2018-02-01 10:27:11 -050047 case bmdFormat10BitYUV: /* 'v210' */
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050048- gst_structure_set (s, "format", G_TYPE_STRING, "v210", NULL);
Brad Bishop6e60e8b2018-02-01 10:27:11 -050049+ gst_structure_set (s, "format", G_TYPE_STRING, "v210", (void*)NULL);
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050050 break;
Brad Bishop6e60e8b2018-02-01 10:27:11 -050051 case bmdFormat8BitARGB: /* 'ARGB' */
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050052- gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", NULL);
Brad Bishop6e60e8b2018-02-01 10:27:11 -050053+ gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", (void*)NULL);
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050054 break;
Brad Bishop6e60e8b2018-02-01 10:27:11 -050055 case bmdFormat8BitBGRA: /* 'BGRA' */
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050056- gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", NULL);
Brad Bishop6e60e8b2018-02-01 10:27:11 -050057+ gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", (void*)NULL);
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050058 break;
Brad Bishop6e60e8b2018-02-01 10:27:11 -050059 case bmdFormat10BitRGB: /* 'r210' Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10 */
60 case bmdFormat12BitRGB: /* 'R12B' Big-endian RGB 12-bit per component with full range (0-4095). Packed as 12-bit per component */
Andrew Geissler6ce62a22020-11-30 19:58:47 -060061diff --git a/sys/decklink/gstdecklinkaudiosrc.cpp b/sys/decklink/gstdecklinkaudiosrc.cpp
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000062index 50ad5cc..d209180 100644
Andrew Geissler6ce62a22020-11-30 19:58:47 -060063--- a/sys/decklink/gstdecklinkaudiosrc.cpp
64+++ b/sys/decklink/gstdecklinkaudiosrc.cpp
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000065@@ -388,7 +388,7 @@ gst_decklink_audio_src_start (GstDecklinkAudioSrc * self)
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050066 g_mutex_unlock (&self->input->lock);
67
68 if (videosrc) {
69- g_object_get (videosrc, "connection", &vconn, NULL);
70+ g_object_get (videosrc, "connection", &vconn, (void *) NULL);
71 gst_object_unref (videosrc);
72
73 switch (vconn) {
Andrew Geissler6ce62a22020-11-30 19:58:47 -060074diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000075index a64c046..07a09e8 100644
Andrew Geissler6ce62a22020-11-30 19:58:47 -060076--- a/sys/decklink/gstdecklinkvideosink.cpp
77+++ b/sys/decklink/gstdecklinkvideosink.cpp
Andrew Geissler7e0e3c02022-02-25 20:34:39 +000078@@ -288,7 +288,7 @@ reset_framerate (GstCapsFeatures * features, GstStructure * structure,
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050079 gpointer user_data)
80 {
81 gst_structure_set (structure, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1,
82- G_MAXINT, 1, NULL);
83+ G_MAXINT, 1, (void *) NULL);
84
85 return TRUE;
86 }