Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 1 | From 001fa08542dd5fc79571f7c803b2d3dd59c04a06 Mon Sep 17 00:00:00 2001 |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 2 | From: Andre McCurdy <armccurdy@gmail.com> |
| 3 | Date: Tue, 9 Feb 2016 14:00:00 -0800 |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 4 | Subject: [PATCH] ensure valid sentinals for gst_structure_get() etc |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 5 | |
| 6 | For GStreamer functions declared with G_GNUC_NULL_TERMINATED, |
| 7 | ie __attribute__((__sentinel__)), gcc will generate a warning if the |
| 8 | last parameter passed to the function is not NULL (where a valid NULL |
| 9 | in this context is defined as zero with any pointer type). |
| 10 | |
| 11 | The C callers to such functions within gst-plugins-bad use the C NULL |
| 12 | definition (ie ((void*)0)), which is a valid sentinel. |
| 13 | |
| 14 | However the C++ NULL definition (ie 0L), is not a valid sentinel |
| 15 | without an explicit cast to a pointer type. |
| 16 | |
| 17 | Upstream-Status: Pending |
| 18 | |
| 19 | Signed-off-by: Andre McCurdy <armccurdy@gmail.com> |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 20 | |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 21 | --- |
| 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 Geissler | 6ce62a2 | 2020-11-30 19:58:47 -0600 | [diff] [blame] | 27 | diff --git a/sys/decklink/gstdecklink.cpp b/sys/decklink/gstdecklink.cpp |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 28 | index 3f79deb..96600c6 100644 |
Andrew Geissler | 6ce62a2 | 2020-11-30 19:58:47 -0600 | [diff] [blame] | 29 | --- a/sys/decklink/gstdecklink.cpp |
| 30 | +++ b/sys/decklink/gstdecklink.cpp |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 31 | @@ -680,7 +680,7 @@ gst_decklink_mode_get_generic_structure (GstDecklinkModeEnum e) |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 32 | "pixel-aspect-ratio", GST_TYPE_FRACTION, mode->par_n, mode->par_d, |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 33 | "interlace-mode", G_TYPE_STRING, |
| 34 | mode->interlaced ? "interleaved" : "progressive", |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 35 | - "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, NULL); |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 36 | + "framerate", GST_TYPE_FRACTION, mode->fps_n, mode->fps_d, (void*)NULL); |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 37 | |
Andrew Geissler | 6ce62a2 | 2020-11-30 19:58:47 -0600 | [diff] [blame] | 38 | return s; |
| 39 | } |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 40 | @@ -705,16 +705,16 @@ gst_decklink_mode_get_structure (GstDecklinkModeEnum e, BMDPixelFormat f, |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 41 | case bmdFormat8BitYUV: /* '2vuy' */ |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 42 | 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 Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 45 | + "chroma-site", G_TYPE_STRING, "mpeg2", (void*)NULL); |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 46 | break; |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 47 | case bmdFormat10BitYUV: /* 'v210' */ |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 48 | - gst_structure_set (s, "format", G_TYPE_STRING, "v210", NULL); |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 49 | + gst_structure_set (s, "format", G_TYPE_STRING, "v210", (void*)NULL); |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 50 | break; |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 51 | case bmdFormat8BitARGB: /* 'ARGB' */ |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 52 | - gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", NULL); |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 53 | + gst_structure_set (s, "format", G_TYPE_STRING, "ARGB", (void*)NULL); |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 54 | break; |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 55 | case bmdFormat8BitBGRA: /* 'BGRA' */ |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 56 | - gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", NULL); |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 57 | + gst_structure_set (s, "format", G_TYPE_STRING, "BGRA", (void*)NULL); |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 58 | break; |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 59 | 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 Geissler | 6ce62a2 | 2020-11-30 19:58:47 -0600 | [diff] [blame] | 61 | diff --git a/sys/decklink/gstdecklinkaudiosrc.cpp b/sys/decklink/gstdecklinkaudiosrc.cpp |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 62 | index 50ad5cc..d209180 100644 |
Andrew Geissler | 6ce62a2 | 2020-11-30 19:58:47 -0600 | [diff] [blame] | 63 | --- a/sys/decklink/gstdecklinkaudiosrc.cpp |
| 64 | +++ b/sys/decklink/gstdecklinkaudiosrc.cpp |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 65 | @@ -388,7 +388,7 @@ gst_decklink_audio_src_start (GstDecklinkAudioSrc * self) |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 66 | 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 Geissler | 6ce62a2 | 2020-11-30 19:58:47 -0600 | [diff] [blame] | 74 | diff --git a/sys/decklink/gstdecklinkvideosink.cpp b/sys/decklink/gstdecklinkvideosink.cpp |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 75 | index a64c046..07a09e8 100644 |
Andrew Geissler | 6ce62a2 | 2020-11-30 19:58:47 -0600 | [diff] [blame] | 76 | --- a/sys/decklink/gstdecklinkvideosink.cpp |
| 77 | +++ b/sys/decklink/gstdecklinkvideosink.cpp |
Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 78 | @@ -288,7 +288,7 @@ reset_framerate (GstCapsFeatures * features, GstStructure * structure, |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 79 | 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 | } |