mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-29 21:21:12 +00:00
libs/gst/bytestream/filepad.*: add 2 new functions
Original commit message from CVS: * libs/gst/bytestream/filepad.c: (gst_file_pad_available), (gst_file_pad_get_length): * libs/gst/bytestream/filepad.h: add 2 new functions
This commit is contained in:
parent
6b5554c50f
commit
5e2e65c734
3 changed files with 57 additions and 1 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2004-06-24 Benjamin Otte <in7y118@public.uni-hamburg.de>
|
||||||
|
|
||||||
|
* libs/gst/bytestream/filepad.c: (gst_file_pad_available),
|
||||||
|
(gst_file_pad_get_length):
|
||||||
|
* libs/gst/bytestream/filepad.h:
|
||||||
|
add 2 new functions
|
||||||
|
|
||||||
2004-06-22 Zaheer Abbas Merali <zaheerabbas at merali.org>
|
2004-06-22 Zaheer Abbas Merali <zaheerabbas at merali.org>
|
||||||
|
|
||||||
* docs/gst/gstreamer-sections.txt:
|
* docs/gst/gstreamer-sections.txt:
|
||||||
|
|
|
@ -412,7 +412,7 @@ gst_file_pad_error (GstFilePad * pad)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_file_pad_eof:
|
* gst_file_pad_eof:
|
||||||
* @pad: ia #GstFilePad
|
* @pad: a #GstFilePad
|
||||||
*
|
*
|
||||||
* Checks if the EOS has been reached. This function is modeled after the
|
* Checks if the EOS has been reached. This function is modeled after the
|
||||||
* function feof() from libc.
|
* function feof() from libc.
|
||||||
|
@ -433,3 +433,50 @@ gst_file_pad_eof (GstFilePad * pad)
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gst_file_pad_available:
|
||||||
|
* @pad: a #GstFilePad
|
||||||
|
*
|
||||||
|
* Use this function to figure out the maximum number of bytes that can be read
|
||||||
|
* via gst_file_pad_read() without that function returning -EAGAIN.
|
||||||
|
*
|
||||||
|
* Returns: the number of bytes available in the file pad.
|
||||||
|
*/
|
||||||
|
guint
|
||||||
|
gst_file_pad_available (GstFilePad * pad)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (GST_IS_FILE_PAD (pad), 0);
|
||||||
|
|
||||||
|
return gst_adapter_available (pad->adapter);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gst_file_pad_get_length:
|
||||||
|
* @pad: a #GstFilePad
|
||||||
|
*
|
||||||
|
* Gets the length in bytes of the @pad.
|
||||||
|
*
|
||||||
|
* Returns: length in bytes or -1 if not available
|
||||||
|
*/
|
||||||
|
gint64
|
||||||
|
gst_file_pad_get_length (GstFilePad * pad)
|
||||||
|
{
|
||||||
|
GstFormat format = GST_FORMAT_BYTES;
|
||||||
|
gint64 length;
|
||||||
|
GstPad *peer;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GST_IS_FILE_PAD (pad), -1);
|
||||||
|
|
||||||
|
/* we query the length every time to avoid issues with changing lengths */
|
||||||
|
peer = GST_PAD_PEER (pad);
|
||||||
|
if (!peer)
|
||||||
|
return -1;
|
||||||
|
if (gst_pad_query (peer, GST_QUERY_TOTAL, &format, &length))
|
||||||
|
return length;
|
||||||
|
format = GST_FORMAT_DEFAULT;
|
||||||
|
if (gst_pad_query (peer, GST_QUERY_TOTAL, &format, &length))
|
||||||
|
return length;
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
|
@ -74,6 +74,8 @@ void gst_file_pad_set_event_function (GstFilePad *file_pad,
|
||||||
void gst_file_pad_set_iterate_function (GstFilePad *file_pad,
|
void gst_file_pad_set_iterate_function (GstFilePad *file_pad,
|
||||||
GstFilePadIterateFunction iterate);
|
GstFilePadIterateFunction iterate);
|
||||||
|
|
||||||
|
guint gst_file_pad_available (GstFilePad *pad);
|
||||||
|
gint64 gst_file_pad_get_length (GstFilePad *pad);
|
||||||
/* this is a file like interface */
|
/* this is a file like interface */
|
||||||
/* FIXME: is gint64 the correct type? (it must be signed to get error return vals */
|
/* FIXME: is gint64 the correct type? (it must be signed to get error return vals */
|
||||||
gint64 gst_file_pad_read (GstFilePad *pad,
|
gint64 gst_file_pad_read (GstFilePad *pad,
|
||||||
|
|
Loading…
Reference in a new issue