Mercurial > mplayer.hg
comparison libmpdemux/demux_lavf.c @ 29840:efa22f9d6b76
Allow lavf demuxer to also probe and play files < 32 kB (full probe buffer size).
Based on patch by On2.
author | reimar |
---|---|
date | Tue, 10 Nov 2009 16:49:00 +0000 |
parents | fe38b68ae9f4 |
children | 74ebb2b03d90 |
comparison
equal
deleted
inserted
replaced
29839:a2a009b24502 | 29840:efa22f9d6b76 |
---|---|
131 | 131 |
132 static int lavf_check_file(demuxer_t *demuxer){ | 132 static int lavf_check_file(demuxer_t *demuxer){ |
133 AVProbeData avpd; | 133 AVProbeData avpd; |
134 uint8_t buf[PROBE_BUF_SIZE]; | 134 uint8_t buf[PROBE_BUF_SIZE]; |
135 lavf_priv_t *priv; | 135 lavf_priv_t *priv; |
136 int probe_data_size; | |
136 | 137 |
137 if(!demuxer->priv) | 138 if(!demuxer->priv) |
138 demuxer->priv=calloc(sizeof(lavf_priv_t),1); | 139 demuxer->priv=calloc(sizeof(lavf_priv_t),1); |
139 priv= demuxer->priv; | 140 priv= demuxer->priv; |
140 | 141 |
152 } | 153 } |
153 mp_msg(MSGT_DEMUX,MSGL_INFO,"Forced lavf %s demuxer\n", priv->avif->long_name); | 154 mp_msg(MSGT_DEMUX,MSGL_INFO,"Forced lavf %s demuxer\n", priv->avif->long_name); |
154 return DEMUXER_TYPE_LAVF; | 155 return DEMUXER_TYPE_LAVF; |
155 } | 156 } |
156 | 157 |
157 if(stream_read(demuxer->stream, buf, PROBE_BUF_SIZE)!=PROBE_BUF_SIZE) | 158 probe_data_size = stream_read(demuxer->stream, buf, PROBE_BUF_SIZE); |
159 if(probe_data_size <= 0) | |
158 return 0; | 160 return 0; |
159 avpd.filename= demuxer->stream->url; | 161 avpd.filename= demuxer->stream->url; |
160 avpd.buf= buf; | 162 avpd.buf= buf; |
161 avpd.buf_size= PROBE_BUF_SIZE; | 163 avpd.buf_size= probe_data_size; |
162 | 164 |
163 priv->avif= av_probe_input_format(&avpd, 1); | 165 priv->avif= av_probe_input_format(&avpd, 1); |
164 if(!priv->avif){ | 166 if(!priv->avif){ |
165 mp_msg(MSGT_HEADER,MSGL_V,"LAVF_check: no clue about this gibberish!\n"); | 167 mp_msg(MSGT_HEADER,MSGL_V,"LAVF_check: no clue about this gibberish!\n"); |
166 return 0; | 168 return 0; |