summaryrefslogtreecommitdiff
path: root/gst/matroska/matroska-read-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/matroska/matroska-read-common.c')
-rw-r--r--gst/matroska/matroska-read-common.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/gst/matroska/matroska-read-common.c b/gst/matroska/matroska-read-common.c
index 67ea67841..f97296d65 100644
--- a/gst/matroska/matroska-read-common.c
+++ b/gst/matroska/matroska-read-common.c
@@ -1615,16 +1615,18 @@ gst_matroska_read_common_peek_bytes (GstMatroskaReadCommon * common, guint64
*p_buf = gst_buffer_copy_region (common->cached_buffer,
GST_BUFFER_COPY_ALL, common->offset - cache_offset, size);
if (bytes) {
- if (!common->cached_data)
- common->cached_data = gst_buffer_map (common->cached_buffer,
- NULL, NULL, GST_MAP_READ);
+ if (!common->cached_data) {
+ gst_buffer_map (common->cached_buffer, &common->cached_map,
+ GST_MAP_READ);
+ common->cached_data = common->cached_map.data;
+ }
*bytes = common->cached_data + common->offset - cache_offset;
}
return GST_FLOW_OK;
}
/* not enough data in the cache, free cache and get a new one */
if (common->cached_data) {
- gst_buffer_unmap (common->cached_buffer, common->cached_data, -1);
+ gst_buffer_unmap (common->cached_buffer, &common->cached_map);
common->cached_data = NULL;
}
gst_buffer_unref (common->cached_buffer);
@@ -1644,8 +1646,8 @@ gst_matroska_read_common_peek_bytes (GstMatroskaReadCommon * common, guint64
*p_buf = gst_buffer_copy_region (common->cached_buffer,
GST_BUFFER_COPY_ALL, 0, size);
if (bytes) {
- common->cached_data = gst_buffer_map (common->cached_buffer,
- NULL, NULL, GST_MAP_READ);
+ gst_buffer_map (common->cached_buffer, &common->cached_map, GST_MAP_READ);
+ common->cached_data = common->cached_map.data;
*bytes = common->cached_data;
}
return GST_FLOW_OK;
@@ -1686,8 +1688,8 @@ gst_matroska_read_common_peek_bytes (GstMatroskaReadCommon * common, guint64
*p_buf = gst_buffer_copy_region (common->cached_buffer,
GST_BUFFER_COPY_ALL, 0, size);
if (bytes) {
- common->cached_data = gst_buffer_map (common->cached_buffer,
- NULL, NULL, GST_MAP_READ);
+ gst_buffer_map (common->cached_buffer, &common->cached_map, GST_MAP_READ);
+ common->cached_data = common->cached_map.data;
*bytes = common->cached_data;
}