Simplify av_open_input_file
Originally committed as revision 11253 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		
							parent
							
								
									b0797570df
								
							
						
					
					
						commit
						17acc63a32
					
				@ -417,11 +417,10 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
 | 
			
		||||
                       int buf_size,
 | 
			
		||||
                       AVFormatParameters *ap)
 | 
			
		||||
{
 | 
			
		||||
    int err, must_open_file, file_opened, probe_size;
 | 
			
		||||
    int err, probe_size;
 | 
			
		||||
    AVProbeData probe_data, *pd = &probe_data;
 | 
			
		||||
    ByteIOContext *pb;
 | 
			
		||||
    ByteIOContext *pb = NULL;
 | 
			
		||||
 | 
			
		||||
    file_opened = 0;
 | 
			
		||||
    pd->filename = "";
 | 
			
		||||
    if (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
 | 
			
		||||
       hack needed to handle RTSP/TCP */
 | 
			
		||||
    must_open_file = 1;
 | 
			
		||||
    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 (!fmt || !(fmt->flags & AVFMT_NOFILE)) {
 | 
			
		||||
        /* if no file needed do not try to open one */
 | 
			
		||||
        if ((err=url_fopen(&pb, filename, URL_RDONLY)) < 0) {
 | 
			
		||||
            goto fail;
 | 
			
		||||
        }
 | 
			
		||||
        file_opened = 1;
 | 
			
		||||
        if (buf_size > 0) {
 | 
			
		||||
            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) {
 | 
			
		||||
                url_fclose(pb);
 | 
			
		||||
                if (url_fopen(&pb, filename, URL_RDONLY) < 0) {
 | 
			
		||||
                    file_opened = 0;
 | 
			
		||||
                    pb = NULL;
 | 
			
		||||
                    err = AVERROR(EIO);
 | 
			
		||||
                    goto fail;
 | 
			
		||||
                }
 | 
			
		||||
@ -490,7 +482,7 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
 | 
			
		||||
    return 0;
 | 
			
		||||
 fail:
 | 
			
		||||
    av_freep(&pd->buf);
 | 
			
		||||
    if (file_opened)
 | 
			
		||||
    if (pb)
 | 
			
		||||
        url_fclose(pb);
 | 
			
		||||
    *ic_ptr = NULL;
 | 
			
		||||
    return err;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user