mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-06 10:42:22 +00:00
av1parse: Fix a latent memory leak in colorimetry setting.
Also delete the useless "have_cinfo" judgement. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2297>
This commit is contained in:
parent
f39a473f42
commit
74918ab9ea
1 changed files with 17 additions and 16 deletions
|
@ -1177,29 +1177,30 @@ gst_av1_parse_handle_sequence_obu (GstAV1Parse * self, GstAV1OBU * obu)
|
||||||
|
|
||||||
if (seq_header.color_config.color_description_present_flag) {
|
if (seq_header.color_config.color_description_present_flag) {
|
||||||
GstVideoColorimetry cinfo;
|
GstVideoColorimetry cinfo;
|
||||||
gboolean have_cinfo = TRUE;
|
|
||||||
gchar *colorimetry = NULL;
|
gchar *colorimetry = NULL;
|
||||||
|
|
||||||
if (have_cinfo) {
|
if (seq_header.color_config.color_range)
|
||||||
if (seq_header.color_config.color_range)
|
cinfo.range = GST_VIDEO_COLOR_RANGE_0_255;
|
||||||
cinfo.range = GST_VIDEO_COLOR_RANGE_0_255;
|
else
|
||||||
else
|
cinfo.range = GST_VIDEO_COLOR_RANGE_16_235;
|
||||||
cinfo.range = GST_VIDEO_COLOR_RANGE_16_235;
|
|
||||||
|
|
||||||
cinfo.matrix = gst_video_color_matrix_from_iso
|
cinfo.matrix = gst_video_color_matrix_from_iso
|
||||||
(seq_header.color_config.matrix_coefficients);
|
(seq_header.color_config.matrix_coefficients);
|
||||||
cinfo.transfer = gst_video_transfer_function_from_iso
|
cinfo.transfer = gst_video_transfer_function_from_iso
|
||||||
(seq_header.color_config.transfer_characteristics);
|
(seq_header.color_config.transfer_characteristics);
|
||||||
cinfo.primaries = gst_video_color_primaries_from_iso
|
cinfo.primaries = gst_video_color_primaries_from_iso
|
||||||
(seq_header.color_config.color_primaries);
|
(seq_header.color_config.color_primaries);
|
||||||
colorimetry = gst_video_colorimetry_to_string (&cinfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_strcmp0 (colorimetry, self->colorimetry)) {
|
colorimetry = gst_video_colorimetry_to_string (&cinfo);
|
||||||
g_clear_pointer (&self->colorimetry, g_free);
|
|
||||||
|
if (g_strcmp0 (colorimetry, self->colorimetry) != 0) {
|
||||||
|
g_free (self->colorimetry);
|
||||||
self->colorimetry = colorimetry;
|
self->colorimetry = colorimetry;
|
||||||
|
colorimetry = NULL;
|
||||||
self->update_caps = TRUE;
|
self->update_caps = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_clear_pointer (&colorimetry, g_free);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (self->subsampling_x != seq_header.color_config.subsampling_x) {
|
if (self->subsampling_x != seq_header.color_config.subsampling_x) {
|
||||||
|
|
Loading…
Reference in a new issue