mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-24 16:22:37 +00:00
Pad the buffer in url_close_dyn_buf, for buffers opened with url_open_dyn_buf
Patch by Josh Allmann, joshua dot allmann at gmail Originally committed as revision 23942 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
4449df6baf
commit
de1807bbc4
@ -530,7 +530,10 @@ int url_open_dyn_packet_buf(ByteIOContext **s, int max_packet_size);
|
||||
|
||||
/**
|
||||
* Return the written size and a pointer to the buffer. The buffer
|
||||
* must be freed with av_free().
|
||||
* must be freed with av_free(). If the buffer is opened with
|
||||
* url_open_dyn_buf, then padding of FF_INPUT_BUFFER_PADDING_SIZE is
|
||||
* added; if opened with url_open_dyn_packet_buf, no padding is added.
|
||||
*
|
||||
* @param s IO context
|
||||
* @param pbuffer pointer to a byte buffer
|
||||
* @return the length of the byte buffer
|
||||
|
@ -894,6 +894,14 @@ int url_close_dyn_buf(ByteIOContext *s, uint8_t **pbuffer)
|
||||
{
|
||||
DynBuffer *d = s->opaque;
|
||||
int size;
|
||||
static const char padbuf[FF_INPUT_BUFFER_PADDING_SIZE] = {0};
|
||||
int padding = 0;
|
||||
|
||||
/* don't attempt to pad fixed-size packet buffers */
|
||||
if (!s->max_packet_size) {
|
||||
put_buffer(s, padbuf, sizeof(padbuf));
|
||||
padding = FF_INPUT_BUFFER_PADDING_SIZE;
|
||||
}
|
||||
|
||||
put_flush_packet(s);
|
||||
|
||||
@ -901,6 +909,6 @@ int url_close_dyn_buf(ByteIOContext *s, uint8_t **pbuffer)
|
||||
size = d->size;
|
||||
av_free(d);
|
||||
av_free(s);
|
||||
return size;
|
||||
return size - padding;
|
||||
}
|
||||
#endif /* CONFIG_MUXERS || CONFIG_NETWORK */
|
||||
|
Loading…
Reference in New Issue
Block a user