[FFmpeg-devel] [PATCH] Move av_open_input_file probe loop to its own method

Micah F. Galizia micahgalizia
Fri Mar 12 23:53:49 CET 2010


On 10-03-10 05:59 AM, Michael Niedermayer wrote:
> On Mon, Mar 08, 2010 at 08:29:40PM -0500, Micah F. Galizia wrote:
>> On 10-03-07 07:42 PM, M?ns Rullg?rd wrote:
>>> Stefano Sabatini<stefano.sabatini-lala at poste.it>   writes:
>>>
>>>> On date Sunday 2010-03-07 12:48:45 -0500, MIcah Galizia encoded:
>>>>> On 10-03-07 05:52 AM, Stefano Sabatini wrote:
>>>>>> On date Saturday 2010-03-06 19:02:07 -0500, Micah F. Galizia encoded:
>>>>>>> On 10-03-06 06:17 PM, Michael Niedermayer wrote:
>>>> [...]
>>>>>>>> should be ok if tested
>>>>>>>
>>>>>>> I tested it in plain old ffmpeg, and with my shoutcast changes.
>>>>>>
>>>>>> Please test with make test, I tried it and it failed in
>>>>>> regtest-pbmpipe.
>>>>>>
>>>>>> cat pbmpipe.lavf.err
>>>>>> /home/stefano/src/ffmpeg.git/./tests/data/lavf/pbmpipe.pbm: Error while
>>>>>> opening file
>>>>>
>>>>> Thank you.  The attached patch fixes it.  The problem was that after
>>>>> the initial probe in av_open_input_file (with no actual probe data),
>>>>> I was setting the input format to NULL in ff_probe_input_buffer.
>>>>> Now all regression tests pass (make test).
>>>>>
>>>>> Also, I have improved the commenting in internal.h.
>>>>>
>>>>> Thanks again!
>>>>
>>>> Patch applied, thanks for the fish.
>>>
>>> This broke ea-cdata on FATE.
>>
>> Actually, it would have broken on any probe score lower than 25 for a file
>> smaller than 1MB.  The problem was that the old probe loop would reset the
>> file position each time before calling get_buffer. As a result, get_buffer
>> would never return AVERROR_EOF, so this wasn't ever a situation that needed
>> to be handled.
>>
>> The modified probe just reads on from where it left off in the previous
>> probe, so eventually, the end of file is reached before reaching
>> PROBE_BUF_MAX, so it would just return an error.  It has been updated now
>> to lower the required probe score when the end of file is reached in
>> addition to when PROBE_BUF_MAX is reached.
>>
>> Thanks again, and sorry for breaking FATE!
>> --
>> Micah F. Galizia
>> micahgalizia at gmail.com
>>
>> "The mark of an immature man is that he wants to die nobly for a cause,
>> while the mark of the mature man is that he wants to live humbly for one."
>>   --W. Stekel
>
>>   internal.h |   18 +++++++++++
>>   utils.c    |   97 +++++++++++++++++++++++++++++++++++++++++--------------------
>>   2 files changed, 84 insertions(+), 31 deletions(-)
>> 73e23f49aa0fbc3c6a08b506c3888a40cdddab2f  probe_buffer5.diff
>
> looks good, if tested

Is someone going to check this in?
-- 
Micah F. Galizia
micahgalizia at gmail.com

"The mark of an immature man is that he wants to die nobly for a cause, 
while the mark of the mature man is that he wants to live humbly for 
one."   --W. Stekel



More information about the ffmpeg-devel mailing list