Simplify av_open_input_file
Originally committed as revision 11253 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
@@ -417,11 +417,10 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
|
|||||||
int buf_size,
|
int buf_size,
|
||||||
AVFormatParameters *ap)
|
AVFormatParameters *ap)
|
||||||
{
|
{
|
||||||
int err, must_open_file, file_opened, probe_size;
|
int err, probe_size;
|
||||||
AVProbeData probe_data, *pd = &probe_data;
|
AVProbeData probe_data, *pd = &probe_data;
|
||||||
ByteIOContext *pb;
|
ByteIOContext *pb = NULL;
|
||||||
|
|
||||||
file_opened = 0;
|
|
||||||
pd->filename = "";
|
pd->filename = "";
|
||||||
if (filename)
|
if (filename)
|
||||||
pd->filename = filename;
|
pd->filename = filename;
|
||||||
@@ -435,18 +434,11 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
|
|||||||
|
|
||||||
/* do not open file if the format does not need it. XXX: specific
|
/* do not open file if the format does not need it. XXX: specific
|
||||||
hack needed to handle RTSP/TCP */
|
hack needed to handle RTSP/TCP */
|
||||||
must_open_file = 1;
|
if (!fmt || !(fmt->flags & AVFMT_NOFILE)) {
|
||||||
if (fmt && (fmt->flags & AVFMT_NOFILE)) {
|
|
||||||
must_open_file = 0;
|
|
||||||
pb= NULL; //FIXME this or memset(pb, 0, sizeof(ByteIOContext)); otherwise it is uninitialized
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!fmt || must_open_file) {
|
|
||||||
/* if no file needed do not try to open one */
|
/* if no file needed do not try to open one */
|
||||||
if ((err=url_fopen(&pb, filename, URL_RDONLY)) < 0) {
|
if ((err=url_fopen(&pb, filename, URL_RDONLY)) < 0) {
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
file_opened = 1;
|
|
||||||
if (buf_size > 0) {
|
if (buf_size > 0) {
|
||||||
url_setbufsize(pb, buf_size);
|
url_setbufsize(pb, buf_size);
|
||||||
}
|
}
|
||||||
@@ -460,7 +452,7 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
|
|||||||
if (url_fseek(pb, 0, SEEK_SET) < 0) {
|
if (url_fseek(pb, 0, SEEK_SET) < 0) {
|
||||||
url_fclose(pb);
|
url_fclose(pb);
|
||||||
if (url_fopen(&pb, filename, URL_RDONLY) < 0) {
|
if (url_fopen(&pb, filename, URL_RDONLY) < 0) {
|
||||||
file_opened = 0;
|
pb = NULL;
|
||||||
err = AVERROR(EIO);
|
err = AVERROR(EIO);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
@@ -490,7 +482,7 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
|
|||||||
return 0;
|
return 0;
|
||||||
fail:
|
fail:
|
||||||
av_freep(&pd->buf);
|
av_freep(&pd->buf);
|
||||||
if (file_opened)
|
if (pb)
|
||||||
url_fclose(pb);
|
url_fclose(pb);
|
||||||
*ic_ptr = NULL;
|
*ic_ptr = NULL;
|
||||||
return err;
|
return err;
|
||||||
|
Reference in New Issue
Block a user