[FFmpeg-devel] [PATCH] reduce global data in lavc

Stefan Gehrer stefan.gehrer
Wed Jun 25 13:13:19 CEST 2008


Michael Niedermayer wrote:
> On Wed, Jun 25, 2008 at 09:17:44AM +0200, Stefan Gehrer wrote:
>> Michael Niedermayer wrote:
>>> On Tue, Jun 24, 2008 at 10:52:34PM +0200, Stefan Gehrer wrote:
>>>> Stefan Gehrer wrote:
>>>>> Hi,
>>>>> After this patch, there are still global variables around
>>>>> which I would categorize as the following:
>>>>> 1. run-length tables that I think can be avoided by using
>>>>>   INIT_VLC_STATIC, but I haven't looked closely.
>>>>>   These can be found in the following files:
>>>>>   msmpeg4data.o (rl_table, mv_tables, wmv2_inter_table)
>>>>>   mpeg12data.o  (ff_rl_mpeg1, ff_rl_mpeg2)
>>>>>   h263.o        (rl_inter, rl_intra_aic, rl_intra,
>>>>>                  rvlc_rl_inter, rvlc_rl_intra)
>>>>>   h261dec.o     (h261_rl_tcoeff)
>>>>> 2. temporary space for compound literals in many files
>>>>> 3. ModeAlphabet in vp3.c, which is written to and thus
>>>>>   should be moved to the context
>>>> attached patch fixes point 3.
>>> does that really need to be in the context, isnt the stack enough?
>> That depends on whether the custom mode alphabet stays
>> valid only for one frame.
>>
>> http://multimedia.cx/vp3-format.txt says:
>>
>> " The MB coding mode information is encoded using one of 8 alphabets.
>> The first 3 bits of the MB coding mode stream indicate which of the
>> 8 alphabets, 0..7, to use to decode the MB coding information in this
>> frame."
>>
>> The "this frame" sounds like so, but the safe method would be to put
>> in a test for reusing the custom alphabet in following frames and
>> run it over the samples we have. Do you think this is necessary, or
>> can maybe some VP3-pro confirm that the custom alphabet stays valid
>> only for one frame?
> 
> RTFS and tell me how on earth the custom modes of a previous frame could
> ever be used.

         if (scheme == 0) {
             debug_modes("    custom mode alphabet ahead:\n");
             for (i = 0; i < 8; i++)
                 s->custom_mode_alphabet[get_bits(gb, 3)] = i;
         }

It depends on the bitstream which values of the alphabet are
overwritten and which are not, or am I missing something?

Stefan




More information about the ffmpeg-devel mailing list