lavf: restore old behavior for custom AVIOContex with an AVFMT_NOFILE format.
av_open_input_stream used to allow this, even though it makes no sense. Make it just print a warning instead of failing, thus restoring compatibility. Note that avformat_open_input() will still reject this combination. Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
		
							parent
							
								
									5001d6ef4a
								
							
						
					
					
						commit
						4f731c4429
					
				@ -459,9 +459,14 @@ int av_open_input_stream(AVFormatContext **ic_ptr,
 | 
				
			|||||||
        err = AVERROR(ENOMEM);
 | 
					        err = AVERROR(ENOMEM);
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (pb && fmt && fmt->flags & AVFMT_NOFILE)
 | 
				
			||||||
 | 
					        av_log(ic, AV_LOG_WARNING, "Custom AVIOContext makes no sense and "
 | 
				
			||||||
 | 
					                                   "will be ignored with AVFMT_NOFILE format.\n");
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
        ic->pb = pb;
 | 
					        ic->pb = pb;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    err = avformat_open_input(&ic, filename, fmt, &opts);
 | 
					    err = avformat_open_input(&ic, filename, fmt, &opts);
 | 
				
			||||||
 | 
					    ic->pb = ic->pb ? ic->pb : pb; // don't leak custom pb if it wasn't set above
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    *ic_ptr = ic;
 | 
					    *ic_ptr = ic;
 | 
				
			||||||
fail:
 | 
					fail:
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user