summaryrefslogtreecommitdiff
path: root/libavformat/aviobuf.c
diff options
context:
space:
mode:
authorJan Ekström <jeebjp@gmail.com>2021-10-13 22:21:51 +0300
committerJan Ekström <jeebjp@gmail.com>2021-10-24 13:04:26 +0300
commitd39b58dc32b5fc7b480eeb9ef00a610732f02c2c (patch)
tree011752111a6316fc9716a3ba326f46d2879b187c /libavformat/aviobuf.c
parent97cff84f106ff348a48915866ba7f487a77f2c31 (diff)
avformat/avio: privatize source of truth for AVIOContext::written
Looking at 3f75e5116b900f1428aa13041fc7d6301bf1988a, the field was supposed to be private, but during merging the field and the group that had the comment about it got separated. Thus, move the actual privately utilized state of this variable into the private FFIOContext. Additionally, name the private field somewhat better, so that it does not get confused with the amount of bytes written out.
Diffstat (limited to 'libavformat/aviobuf.c')
-rw-r--r--libavformat/aviobuf.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
index 3d87d66091..b18a56ef19 100644
--- a/libavformat/aviobuf.c
+++ b/libavformat/aviobuf.c
@@ -164,8 +164,10 @@ static void writeout(AVIOContext *s, const uint8_t *data, int len)
if (ret < 0) {
s->error = ret;
} else {
- if (s->pos + len > s->written)
- s->written = s->pos + len;
+ if (s->pos + len > ctx->written_output_size) {
+ ctx->written_output_size = s->pos + len;
+ s->written = ctx->written_output_size;
+ }
}
}
if (ctx->current_type == AVIO_DATA_MARKER_SYNC_POINT ||
@@ -337,13 +339,14 @@ int64_t avio_skip(AVIOContext *s, int64_t offset)
int64_t avio_size(AVIOContext *s)
{
+ FFIOContext *const ctx = ffiocontext(s);
int64_t size;
if (!s)
return AVERROR(EINVAL);
- if (s->written)
- return s->written;
+ if (ctx->written_output_size)
+ return ctx->written_output_size;
if (!s->seek)
return AVERROR(ENOSYS);