[FFmpeg-devel] & vs. &&

Benoit Fouet benoit.fouet
Mon Oct 19 10:47:52 CEST 2009


On 2009-10-16 14:13, Michael Niedermayer wrote:
> On Tue, Oct 13, 2009 at 02:42:57PM +0200, Benoit Fouet wrote:
>> On 2009-10-13 14:04, Reimar D?ffinger wrote:
>>> On Tue, Oct 13, 2009 at 01:54:42PM +0200, Benoit Fouet wrote:
>>>> So my guess is that url_open_dyn_buf_internal is buggy.
>>>> I don't know what to do, but hope that helps knowledgeable people :)
>>> My suggestion is to "fix" url_resetbuf to make it do what it already
>>> does now, ignoring what it may be supposed to do.
>>> The h->flags stuff IMO is only to check against programming errors but
>>> obviously adds more errors that it avoids.
>>> So I suggest to change the whole thing to
>>> assert(flags == URL_WRONLY || flags == URL_RDONLY)
>> sample patch to do that, now 'make test' passes:
>>
>> Index: libavformat/aviobuf.c
>> ===================================================================
>> --- libavformat/aviobuf.c       (revision 20220)
>> +++ libavformat/aviobuf.c       (working copy)
>> @@ -585,9 +585,7 @@ int url_setbufsize(ByteIOContext *s, int
>>
>>  int url_resetbuf(ByteIOContext *s, int flags)
>>  {
>> -    URLContext *h = s->opaque;
>> -    if ((flags & URL_RDWR) || (h && h->flags != flags && !h->flags &
>> URL_RDWR))
>> -        return AVERROR(EINVAL);
>> +    assert(flags == URL_WRONLY || flags == URL_RDONLY);
> 
> if url_resetbuf where static i wouldnt mind the assert ... btw why is it
> not static ?
> 

dunno... what do we do ? make it static, and change the API ?

Ben



More information about the ffmpeg-devel mailing list