{
GST_DEBUG_OBJECT (demux, "Resetting metadata");
- g_static_rw_lock_writer_lock (&demux->metadata_lock);
+ g_rw_lock_writer_lock (&demux->metadata_lock);
demux->update_metadata = TRUE;
demux->metadata_resolved = FALSE;
}
demux->metadata = mxf_metadata_hash_table_new ();
- g_static_rw_lock_writer_unlock (&demux->metadata_lock);
+ g_rw_lock_writer_unlock (&demux->metadata_lock);
}
static void
MXFMetadataBase *m = NULL;
GstStructure *structure;
- g_static_rw_lock_writer_lock (&demux->metadata_lock);
+ g_rw_lock_writer_lock (&demux->metadata_lock);
GST_DEBUG_OBJECT (demux, "Resolve metadata references");
demux->update_metadata = FALSE;
if (!demux->metadata) {
GST_ERROR_OBJECT (demux, "No metadata yet");
- g_static_rw_lock_writer_unlock (&demux->metadata_lock);
+ g_rw_lock_writer_unlock (&demux->metadata_lock);
return GST_FLOW_ERROR;
}
gst_structure_free (structure);
- g_static_rw_lock_writer_unlock (&demux->metadata_lock);
+ g_rw_lock_writer_unlock (&demux->metadata_lock);
return ret;
error:
demux->metadata_resolved = FALSE;
- g_static_rw_lock_writer_unlock (&demux->metadata_lock);
+ g_rw_lock_writer_unlock (&demux->metadata_lock);
return ret;
}
GstFlowReturn ret;
GList *pads = NULL, *l;
- g_static_rw_lock_writer_lock (&demux->metadata_lock);
+ g_rw_lock_writer_lock (&demux->metadata_lock);
GST_DEBUG_OBJECT (demux, "Updating tracks");
if ((ret = gst_mxf_demux_update_essence_tracks (demux)) != GST_FLOW_OK) {
goto error;
}
- g_static_rw_lock_writer_unlock (&demux->metadata_lock);
+ g_rw_lock_writer_unlock (&demux->metadata_lock);
for (l = pads; l; l = l->next)
gst_element_add_pad (GST_ELEMENT_CAST (demux), l->data);
return GST_FLOW_OK;
error:
- g_static_rw_lock_writer_unlock (&demux->metadata_lock);
+ g_rw_lock_writer_unlock (&demux->metadata_lock);
return ret;
}
return GST_FLOW_OK;
}
- g_static_rw_lock_writer_lock (&demux->metadata_lock);
+ g_rw_lock_writer_lock (&demux->metadata_lock);
demux->update_metadata = TRUE;
if (MXF_IS_METADATA_PREFACE (metadata)) {
g_hash_table_replace (demux->metadata,
&MXF_METADATA_BASE (metadata)->instance_uid, metadata);
- g_static_rw_lock_writer_unlock (&demux->metadata_lock);
+ g_rw_lock_writer_unlock (&demux->metadata_lock);
return ret;
}
return GST_FLOW_OK;
}
- g_static_rw_lock_writer_lock (&demux->metadata_lock);
+ g_rw_lock_writer_lock (&demux->metadata_lock);
demux->update_metadata = TRUE;
gst_mxf_demux_reset_linked_metadata (demux);
g_hash_table_replace (demux->metadata, &MXF_METADATA_BASE (m)->instance_uid,
m);
- g_static_rw_lock_writer_unlock (&demux->metadata_lock);
+ g_rw_lock_writer_unlock (&demux->metadata_lock);
return ret;
}
pos = mxfpad->position;
- g_static_rw_lock_reader_lock (&demux->metadata_lock);
+ g_rw_lock_reader_lock (&demux->metadata_lock);
if (format == GST_FORMAT_DEFAULT && pos != GST_CLOCK_TIME_NONE) {
if (!mxfpad->material_track || mxfpad->material_track->edit_rate.n == 0
|| mxfpad->material_track->edit_rate.d == 0) {
- g_static_rw_lock_reader_unlock (&demux->metadata_lock);
+ g_rw_lock_reader_unlock (&demux->metadata_lock);
goto error;
}
mxfpad->material_track->edit_rate.n,
mxfpad->material_track->edit_rate.d * GST_SECOND);
}
- g_static_rw_lock_reader_unlock (&demux->metadata_lock);
+ g_rw_lock_reader_unlock (&demux->metadata_lock);
GST_DEBUG_OBJECT (pad,
"Returning position %" G_GINT64_FORMAT " in format %s", pos,
if (format != GST_FORMAT_TIME && format != GST_FORMAT_DEFAULT)
goto error;
- g_static_rw_lock_reader_lock (&demux->metadata_lock);
+ g_rw_lock_reader_lock (&demux->metadata_lock);
if (!mxfpad->material_track || !mxfpad->material_track->parent.sequence) {
- g_static_rw_lock_reader_unlock (&demux->metadata_lock);
+ g_rw_lock_reader_unlock (&demux->metadata_lock);
goto error;
}
if (duration != -1 && format == GST_FORMAT_TIME) {
if (mxfpad->material_track->edit_rate.n == 0 ||
mxfpad->material_track->edit_rate.d == 0) {
- g_static_rw_lock_reader_unlock (&demux->metadata_lock);
+ g_rw_lock_reader_unlock (&demux->metadata_lock);
goto error;
}
GST_SECOND * mxfpad->material_track->edit_rate.d,
mxfpad->material_track->edit_rate.n);
}
- g_static_rw_lock_reader_unlock (&demux->metadata_lock);
+ g_rw_lock_reader_unlock (&demux->metadata_lock);
GST_DEBUG_OBJECT (pad,
"Returning duration %" G_GINT64_FORMAT " in format %s", duration,
if (demux->src->len == 0)
goto done;
- g_static_rw_lock_reader_lock (&demux->metadata_lock);
+ g_rw_lock_reader_lock (&demux->metadata_lock);
for (i = 0; i < demux->src->len; i++) {
GstMXFDemuxPad *pad = g_ptr_array_index (demux->src, i);
gint64 pdur = -1;
pad->material_track->edit_rate.n);
duration = MAX (duration, pdur);
}
- g_static_rw_lock_reader_unlock (&demux->metadata_lock);
+ g_rw_lock_reader_unlock (&demux->metadata_lock);
if (duration == -1) {
GST_DEBUG_OBJECT (demux, "No duration known (yet)");
case PROP_STRUCTURE:{
GstStructure *s;
- g_static_rw_lock_reader_lock (&demux->metadata_lock);
+ g_rw_lock_reader_lock (&demux->metadata_lock);
if (demux->preface)
s = mxf_metadata_base_to_structure (MXF_METADATA_BASE (demux->preface));
else
if (s)
gst_structure_free (s);
- g_static_rw_lock_reader_unlock (&demux->metadata_lock);
+ g_rw_lock_reader_unlock (&demux->metadata_lock);
break;
}
default:
g_hash_table_destroy (demux->metadata);
- g_static_rw_lock_free (&demux->metadata_lock);
+ g_rw_lock_clear (&demux->metadata_lock);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
demux->max_drift = 500 * GST_MSECOND;
demux->adapter = gst_adapter_new ();
- g_static_rw_lock_init (&demux->metadata_lock);
+ g_rw_lock_init (&demux->metadata_lock);
demux->src = g_ptr_array_new ();
demux->essence_tracks =