mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 05:31:15 +00:00
avwait: Allow start and end timecode to be set back to NULL
And check everywhere if they're NULL before accessing them.
This commit is contained in:
parent
7af1a4566f
commit
7117ba0a53
1 changed files with 5 additions and 3 deletions
|
@ -472,7 +472,9 @@ gst_avwait_set_property (GObject * object, guint prop_id,
|
||||||
seconds = g_ascii_strtoll (parts[2], NULL, 10);
|
seconds = g_ascii_strtoll (parts[2], NULL, 10);
|
||||||
frames = g_ascii_strtoll (parts[3], NULL, 10);
|
frames = g_ascii_strtoll (parts[3], NULL, 10);
|
||||||
g_mutex_lock (&self->mutex);
|
g_mutex_lock (&self->mutex);
|
||||||
gst_video_time_code_init (self->tc, 0, 1, NULL, 0, hours, minutes,
|
if (self->tc)
|
||||||
|
gst_video_time_code_free (self->tc);
|
||||||
|
self->tc = gst_video_time_code_new (0, 1, NULL, 0, hours, minutes,
|
||||||
seconds, frames, 0);
|
seconds, frames, 0);
|
||||||
if (GST_VIDEO_INFO_FORMAT (&self->vinfo) != GST_VIDEO_FORMAT_UNKNOWN
|
if (GST_VIDEO_INFO_FORMAT (&self->vinfo) != GST_VIDEO_FORMAT_UNKNOWN
|
||||||
&& self->vinfo.fps_n != 0) {
|
&& self->vinfo.fps_n != 0) {
|
||||||
|
@ -488,7 +490,7 @@ gst_avwait_set_property (GObject * object, guint prop_id,
|
||||||
if (self->tc)
|
if (self->tc)
|
||||||
gst_video_time_code_free (self->tc);
|
gst_video_time_code_free (self->tc);
|
||||||
self->tc = g_value_dup_boxed (value);
|
self->tc = g_value_dup_boxed (value);
|
||||||
if (self->tc->config.fps_n == 0
|
if (self->tc && self->tc->config.fps_n == 0
|
||||||
&& GST_VIDEO_INFO_FORMAT (&self->vinfo) !=
|
&& GST_VIDEO_INFO_FORMAT (&self->vinfo) !=
|
||||||
GST_VIDEO_FORMAT_UNKNOWN && self->vinfo.fps_n != 0) {
|
GST_VIDEO_FORMAT_UNKNOWN && self->vinfo.fps_n != 0) {
|
||||||
self->tc->config.fps_n = self->vinfo.fps_n;
|
self->tc->config.fps_n = self->vinfo.fps_n;
|
||||||
|
@ -502,7 +504,7 @@ gst_avwait_set_property (GObject * object, guint prop_id,
|
||||||
if (self->end_tc)
|
if (self->end_tc)
|
||||||
gst_video_time_code_free (self->end_tc);
|
gst_video_time_code_free (self->end_tc);
|
||||||
self->end_tc = g_value_dup_boxed (value);
|
self->end_tc = g_value_dup_boxed (value);
|
||||||
if (self->end_tc->config.fps_n == 0
|
if (self->end_tc && self->end_tc->config.fps_n == 0
|
||||||
&& GST_VIDEO_INFO_FORMAT (&self->vinfo) !=
|
&& GST_VIDEO_INFO_FORMAT (&self->vinfo) !=
|
||||||
GST_VIDEO_FORMAT_UNKNOWN && self->vinfo.fps_n != 0) {
|
GST_VIDEO_FORMAT_UNKNOWN && self->vinfo.fps_n != 0) {
|
||||||
self->end_tc->config.fps_n = self->vinfo.fps_n;
|
self->end_tc->config.fps_n = self->vinfo.fps_n;
|
||||||
|
|
Loading…
Reference in a new issue