Now works when get_range is not available upstream.
Original commit message from CVS: Now works when get_range is not available upstream.
This commit is contained in:
parent
d222cb6c14
commit
fcebc2b4f5
@ -1,3 +1,9 @@
|
|||||||
|
2007-11-26 Edgard Lima <edgard.lima@indt.org.br>
|
||||||
|
|
||||||
|
* ext/metadata/gstmetadataparse.c: (gst_metadata_parse_init),
|
||||||
|
(gst_metadata_parse_chain), (gst_metadata_parse_checkgetrange):
|
||||||
|
Now works when get_range is not available upstream.
|
||||||
|
|
||||||
2007-11-26 Sebastian Dröge <slomo@circular-chaos.org>
|
2007-11-26 Sebastian Dröge <slomo@circular-chaos.org>
|
||||||
|
|
||||||
* gst/speexresample/README:
|
* gst/speexresample/README:
|
||||||
|
@ -137,6 +137,8 @@ static gboolean gst_metadata_parse_sink_event (GstPad * pad, GstEvent * event);
|
|||||||
|
|
||||||
static GstFlowReturn gst_metadata_parse_chain (GstPad * pad, GstBuffer * buf);
|
static GstFlowReturn gst_metadata_parse_chain (GstPad * pad, GstBuffer * buf);
|
||||||
|
|
||||||
|
static gboolean gst_metadata_parse_checkgetrange (GstPad * srcpad);
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_metadata_parse_get_range (GstPad * pad, guint64 offset_orig, guint size,
|
gst_metadata_parse_get_range (GstPad * pad, guint64 offset_orig, guint size,
|
||||||
GstBuffer ** buf);
|
GstBuffer ** buf);
|
||||||
@ -272,6 +274,8 @@ gst_metadata_parse_init (GstMetadataParse * filter,
|
|||||||
GST_DEBUG_FUNCPTR (gst_metadata_parse_get_query_types));
|
GST_DEBUG_FUNCPTR (gst_metadata_parse_get_query_types));
|
||||||
gst_pad_use_fixed_caps (filter->srcpad);
|
gst_pad_use_fixed_caps (filter->srcpad);
|
||||||
|
|
||||||
|
gst_pad_set_checkgetrange_function (filter->srcpad,
|
||||||
|
GST_DEBUG_FUNCPTR (gst_metadata_parse_checkgetrange));
|
||||||
gst_pad_set_getrange_function (filter->srcpad, gst_metadata_parse_get_range);
|
gst_pad_set_getrange_function (filter->srcpad, gst_metadata_parse_get_range);
|
||||||
|
|
||||||
gst_pad_set_activatepull_function (filter->srcpad,
|
gst_pad_set_activatepull_function (filter->srcpad,
|
||||||
@ -982,7 +986,8 @@ gst_metadata_parse_chain (GstPad * pad, GstBuffer * buf)
|
|||||||
new_buf =
|
new_buf =
|
||||||
gst_buffer_new_and_alloc (GST_BUFFER_SIZE (buf) -
|
gst_buffer_new_and_alloc (GST_BUFFER_SIZE (buf) -
|
||||||
filter->next_offset);
|
filter->next_offset);
|
||||||
memcpy (GST_BUFFER_DATA (new_buf), GST_BUFFER_DATA (buf),
|
memcpy (GST_BUFFER_DATA (new_buf),
|
||||||
|
GST_BUFFER_DATA (buf) + filter->next_offset,
|
||||||
GST_BUFFER_SIZE (buf) - filter->next_offset);
|
GST_BUFFER_SIZE (buf) - filter->next_offset);
|
||||||
filter->next_offset = 0;
|
filter->next_offset = 0;
|
||||||
gst_adapter_push (filter->adapter_parsing, new_buf);
|
gst_adapter_push (filter->adapter_parsing, new_buf);
|
||||||
@ -1592,6 +1597,16 @@ done:
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
gst_metadata_parse_checkgetrange (GstPad * srcpad)
|
||||||
|
{
|
||||||
|
GstMetadataParse *filter = NULL;
|
||||||
|
|
||||||
|
filter = GST_METADATA_PARSE (GST_PAD_PARENT (srcpad));
|
||||||
|
|
||||||
|
return gst_pad_check_pull_range (filter->sinkpad);
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_metadata_parse_get_range (GstPad * pad,
|
gst_metadata_parse_get_range (GstPad * pad,
|
||||||
guint64 offset, guint size, GstBuffer ** buf)
|
guint64 offset, guint size, GstBuffer ** buf)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user