Fix deadlocks when seeking in pull mode failed and check new offset before using it
This commit is contained in:
parent
43ade6cf71
commit
99298da3d5
@ -2883,7 +2883,10 @@ gst_mxf_demux_seek_pull (GstMXFDemux * demux, GstEvent * event)
|
|||||||
}
|
}
|
||||||
p->discont = TRUE;
|
p->discont = TRUE;
|
||||||
}
|
}
|
||||||
demux->offset = new_offset;
|
if (new_offset == -1)
|
||||||
|
goto no_new_offset;
|
||||||
|
|
||||||
|
demux->offset = new_offset + demux->run_in;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (G_UNLIKELY (demux->close_seg_event)) {
|
if (G_UNLIKELY (demux->close_seg_event)) {
|
||||||
@ -2946,10 +2949,16 @@ wrong_rate:
|
|||||||
}
|
}
|
||||||
unresolved_metadata:
|
unresolved_metadata:
|
||||||
{
|
{
|
||||||
|
GST_PAD_STREAM_UNLOCK (demux->sinkpad);
|
||||||
GST_WARNING_OBJECT (demux, "metadata can't be resolved");
|
GST_WARNING_OBJECT (demux, "metadata can't be resolved");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
no_new_offset:
|
||||||
|
{
|
||||||
|
GST_PAD_STREAM_UNLOCK (demux->sinkpad);
|
||||||
|
GST_WARNING_OBJECT (demux, "can't find new offset");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
Loading…
x
Reference in New Issue
Block a user