Browse Source

avio: Add an internal utility function for freeing dynamic buffers

Signed-off-by: Martin Storsjö <martin@martin.st>
tags/n2.6
Martin Storsjö 10 years ago
parent
commit
8a273a7460
2 changed files with 17 additions and 0 deletions
  1. +7
    -0
      libavformat/avio_internal.h
  2. +10
    -0
      libavformat/aviobuf.c

+ 7
- 0
libavformat/avio_internal.h View File

@@ -139,4 +139,11 @@ int ffio_open_null_buf(AVIOContext **s);
*/
int ffio_close_null_buf(AVIOContext *s);

/**
* Free a dynamic buffer.
*
* @param s a pointer to an IO context opened by avio_open_dyn_buf()
*/
void ffio_free_dyn_buf(AVIOContext **s);

#endif /* AVFORMAT_AVIO_INTERNAL_H */

+ 10
- 0
libavformat/aviobuf.c View File

@@ -991,6 +991,16 @@ int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer)
return size - padding;
}

void ffio_free_dyn_buf(AVIOContext **s)
{
uint8_t *tmp;
if (!*s)
return;
avio_close_dyn_buf(*s, &tmp);
av_free(tmp);
*s = NULL;
}

static int null_buf_write(void *opaque, uint8_t *buf, int buf_size)
{
DynBuffer *d = opaque;


Loading…
Cancel
Save