diff mbox series

[FFmpeg-devel,v3,2/5] avformat/{aviobuf, avio_internal}: add ff_read_string_to_bprint_overwrite

Message ID 20210920150048.8790-3-jeebjp@gmail.com
State Accepted
Commit 151f46e84ddce557aace102a9f86f72d37e1cdbf
Headers show
Series Support for stream dispositions in MP4 | expand

Commit Message

Jan Ekström Sept. 20, 2021, 3 p.m. UTC
From: Jan Ekström <jan.ekstrom@24i.com>

For now, same as ff_read_line_to_bprint_overwrite, but reads until
the end of a null-terminated string.

Signed-off-by: Jan Ekström <jan.ekstrom@24i.com>
---
 libavformat/avio_internal.h | 12 ++++++++++++
 libavformat/aviobuf.c       |  5 +++++
 2 files changed, 17 insertions(+)
diff mbox series

Patch

diff --git a/libavformat/avio_internal.h b/libavformat/avio_internal.h
index 8b9e048f73..3b3ed3b619 100644
--- a/libavformat/avio_internal.h
+++ b/libavformat/avio_internal.h
@@ -245,4 +245,16 @@  struct AVBPrint;
  */
 int64_t ff_read_line_to_bprint_overwrite(AVIOContext *s, struct AVBPrint *bp);
 
+/**
+ * Read a whole null-terminated string of text from AVIOContext to an AVBPrint
+ * buffer overwriting its contents. Stop reading after reaching a \\0 or
+ * EOF.
+ *
+ * @param s the read-only AVIOContext
+ * @param bp the AVBPrint buffer
+ * @return the length of the read string not including the terminating null,
+ *         negative on error, or if the buffer becomes truncated.
+ */
+int64_t ff_read_string_to_bprint_overwrite(AVIOContext *s, AVBPrint *bp);
+
 #endif /* AVFORMAT_AVIO_INTERNAL_H */
diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
index f24a3b0fe2..3b6f9aed42 100644
--- a/libavformat/aviobuf.c
+++ b/libavformat/aviobuf.c
@@ -863,6 +863,11 @@  int64_t ff_read_line_to_bprint_overwrite(AVIOContext *s, AVBPrint *bp)
     return read_string_to_bprint_overwrite(s, bp, FFBPrintReadLine);
 }
 
+int64_t ff_read_string_to_bprint_overwrite(AVIOContext *s, AVBPrint *bp)
+{
+    return read_string_to_bprint_overwrite(s, bp, FFBPrintReadString);
+}
+
 int avio_get_str(AVIOContext *s, int maxlen, char *buf, int buflen)
 {
     int i;