[vlc-devel] [PATCH] use av_close_input_stream and remove AVFMT_NOFILE hack

Baptiste Coudurier baptiste.coudurier at gmail.com
Mon Sep 21 08:57:48 CEST 2009

Hi Rémi,

On 09/20/2009 11:40 PM, Rémi Denis-Courmont wrote:
> On Sun, 20 Sep 2009 17:25:30 -0700, Baptiste Coudurier
> <baptiste.coudurier at gmail.com>  wrote:
>>> How come does the removal of AVFMT_NOFILE fixes a bug when it is
>>> supposed to make no differences?
>>> Does it not affect av_find_stream_info() ?
>> Sorry, my explanation was not clear, it has a side effect in
>> av_find_stream_info indeed: AVFormatContext->file_size will not be
>> populated, because no file is present.
>> This causes AVFormatContext->bit_rate field not to be populated and
>> therefore disabling mxf seeking feature.
>> VLC wrapper could populate file_size, though IMHO the good solution is
>> to not set AVFMT_NO_FILE.
>> AVFMT_NO_FILE is used for image sequences, null input/output for
>> example, and file size makes no sense in these situations.
> It's not that simple. The data comes from another of VLC plugins, which is
> solely responsible for interpreting the media location string. The syntax
> of p_demux->psz_path could be misunderstood, or misinterpreted by
> libavformat.
> IMHO, if ffmpeg actually uses the bit, then this change needs to be
> reverted.

I'm not sure to understand what you mean.

Currently, VLC wrapper uses av_open_input_stream which does not open any 
file, and setup libavformat IO using its own routines, like it should be 
done. p_demux->psz_path is passed to av_open_input_stream which only 
copies its value into AVFormatContext->file_name field.

I don't understand what you mean by "the bit", however I'm pretty sure 
AVInputFormat->flags should not be modified.

I believe that AVFMT_NO_FILE was used since now because of 
av_close_input_file, which will close the underlying IO, behaviour that 
VLC do not want to happen I guess, please correct me if I'm wrong.
To avoid this close, API propose av_close_input_stream (like 

Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
FFmpeg maintainer                                  http://www.ffmpeg.org

More information about the vlc-devel mailing list