* will be a copy of buf
* @return number of bytes read or AVERROR
*/
-int ffio_read_indirect(AVIOContext *s, unsigned char *buf, int size, unsigned char **data);
+int ffio_read_indirect(AVIOContext *s, unsigned char *buf, int size, const unsigned char **data);
/**
* Read size bytes from AVIOContext into buf.
unsigned long ffio_get_checksum(AVIOContext *s);
unsigned long ff_crc04C11DB7_update(unsigned long checksum, const uint8_t *buf,
unsigned int len);
+unsigned long ff_crcA001_update(unsigned long checksum, const uint8_t *buf,
+ unsigned int len);
/**
* Open a write only packetized memory stream with a maximum packet
*/
int ffio_fdopen(AVIOContext **s, URLContext *h);
+/**
+ * Open a write-only fake memory stream. The written data is not stored
+ * anywhere - this is only used for measuring the amount of data
+ * written.
+ *
+ * @param s new IO context
+ * @return zero if no error.
+ */
+int ffio_open_null_buf(AVIOContext **s);
+
+/**
+ * Close a null buffer.
+ *
+ * @param s an IO context opened by ffio_open_null_buf
+ * @return the number of bytes written to the null buffer
+ */
+int ffio_close_null_buf(AVIOContext *s);
+
#endif /* AVFORMAT_AVIO_INTERNAL_H */