void put_strz(ByteIOContext *s, const char *buf);
+/**
+ * fseek() equivalent for ByteIOContext.
+ * @return new position or AVERROR.
+ */
offset_t url_fseek(ByteIOContext *s, offset_t offset, int whence);
+
+/**
+ * Skip given number of bytes forward.
+ * @param offset number of bytes
+ */
void url_fskip(ByteIOContext *s, offset_t offset);
+
+/**
+ * ftell() equivalent for ByteIOContext.
+ * @return position or AVERROR.
+ */
offset_t url_ftell(ByteIOContext *s);
+
+/**
+ * Gets the filesize.
+ * @return filesize or AVERROR
+ */
offset_t url_fsize(ByteIOContext *s);
+
+/**
+ * feof() equivalent for ByteIOContext.
+ * @return non zero if and only if end of file
+ */
int url_feof(ByteIOContext *s);
+
int url_ferror(ByteIOContext *s);
int av_url_read_fpause(ByteIOContext *h, int pause);
void put_flush_packet(ByteIOContext *s);
+
+/**
+ * Reads size bytes from ByteIOContext into buf.
+ * @returns number of bytes read or AVERROR
+ */
int get_buffer(ByteIOContext *s, unsigned char *buf, int size);
+
+/**
+ * Reads size bytes from ByteIOContext into buf.
+ * This reads at most 1 packet. If that's not enough fewer bytes will be
+ * returned.
+ * @returns number of bytes read or AVERROR
+ */
int get_partial_buffer(ByteIOContext *s, unsigned char *buf, int size);
/** @note return 0 if EOF, so you cannot use it if EOF handling is