summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-11-22 13:06:44 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-11-22 13:06:44 +0000
commit054d1889ef28527b0f4bc8a6449b870cb0524212 (patch)
tree706ae314a903e1d40f5b02a91428c7dd0cd05b4c
parent4d55629cd6337598fb58fbf58b3fbe6e3f9d4850 (diff)
downloadmpv-054d1889ef28527b0f4bc8a6449b870cb0524212.tar.bz2
mpv-054d1889ef28527b0f4bc8a6449b870cb0524212.tar.xz
Reuse buffer in priv context instead of allocating the 32kB probe buffer
on the stack. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29953 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--libmpdemux/demux_lavf.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c
index 4d4137babd..c338309eca 100644
--- a/libmpdemux/demux_lavf.c
+++ b/libmpdemux/demux_lavf.c
@@ -67,7 +67,7 @@ typedef struct lavf_priv_t{
AVInputFormat *avif;
AVFormatContext *avfc;
ByteIOContext *pb;
- uint8_t buffer[BIO_BUFFER_SIZE];
+ uint8_t buffer[FFMAX(BIO_BUFFER_SIZE, PROBE_BUF_SIZE)];
int audio_streams;
int video_streams;
int sub_streams;
@@ -131,7 +131,6 @@ static void list_formats(void) {
static int lavf_check_file(demuxer_t *demuxer){
AVProbeData avpd;
- uint8_t buf[PROBE_BUF_SIZE];
lavf_priv_t *priv;
int probe_data_size;
@@ -155,11 +154,11 @@ static int lavf_check_file(demuxer_t *demuxer){
return DEMUXER_TYPE_LAVF;
}
- probe_data_size = stream_read(demuxer->stream, buf, PROBE_BUF_SIZE);
+ probe_data_size = stream_read(demuxer->stream, priv->buffer, PROBE_BUF_SIZE);
if(probe_data_size <= 0)
return 0;
avpd.filename= demuxer->stream->url;
- avpd.buf= buf;
+ avpd.buf= priv->buffer;
avpd.buf_size= probe_data_size;
priv->avif= av_probe_input_format(&avpd, 1);