aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/utils.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-12-16 05:54:03 +0100
committerMichael Niedermayer <michaelni@gmx.at>2011-12-16 05:59:43 +0100
commit47572323f2f908913b4d031af733047d481fb1f6 (patch)
tree0219bdc39d41ea1010333e8827684ce2e4f883b8 /libavformat/utils.c
parent482ee63641f4fa50f017538af384aadbceee7a18 (diff)
downloadffmpeg-47572323f2f908913b4d031af733047d481fb1f6.tar.gz
lavf: add internal AVIOContext.maxsize
This allows simple and generic limiting of allocations used for packets. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r--libavformat/utils.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 183aaff2b2..10cd6f3066 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -267,7 +267,15 @@ AVInputFormat *av_find_input_format(const char *short_name)
int av_get_packet(AVIOContext *s, AVPacket *pkt, int size)
{
- int ret= av_new_packet(pkt, size);
+ int ret;
+
+ if(s->maxsize>0){
+ int64_t remaining= s->maxsize - avio_tell(s);
+ if(remaining>=0)
+ size= FFMIN(size, remaining);
+ }
+
+ ret= av_new_packet(pkt, size);
if(ret<0)
return ret;