[FFmpeg-devel] [PATCH] add init/uninit code to cmdutils.c

Måns Rullgård mans
Sat Sep 25 15:26:09 CEST 2010


Stefano Sabatini <stefano.sabatini-lala at poste.it> writes:

> On date Saturday 2010-09-25 14:19:55 +0200, Reimar D?ffinger encoded:
>> Hello,
>> this avoids some code duplication between ffmpeg and ffplay and also frees
>> the AVFormatContext::key value.
>> The tests pass, but I do not know the code well enough to be 100%
>> certain that using SWS_BICUBIC always instead of sws_flags is ok for
>> the option parsing.
>
> [...]
>> Index: cmdutils.c
>> ===================================================================
>> --- cmdutils.c	(revision 25163)
>> +++ cmdutils.c	(working copy)
>> @@ -56,6 +56,25 @@
>>  
>>  const int this_year = 2010;
>>  
>> +void init_opts(void)
>> +{
>> +    int i;
>> +    for (i = 0; i < AVMEDIA_TYPE_NB; i++)
>> +        avcodec_opts[i] = avcodec_alloc_context2(i);
>> +    avformat_opts = avformat_alloc_context();
>> +    sws_opts = sws_getContext(16, 16, 0, 16, 16, 0, SWS_BICUBIC, NULL, NULL, NULL);
>> +}
>> +
>> +void uninit_opts(void)
>> +{
>> +    int i;
>> +    for (i = 0; i < AVMEDIA_TYPE_NB; i++)
>> +        av_freep(&avcodec_opts[i]);
>
>> +    av_freep(&avformat_opts->key);
>
> Why is AVFormatContext.key special?

It is the only FF_OPT_TYPE_BINARY option.

> Shouldn't we have a function for automatically clean it up?

I suppose a function traversing the list and freeing all
FF_OPT_TYPE_BINARY things might make sense.  Would you like to write
one?

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list