[vlc-devel] [PATCH] New mpg123 audio converter
Ludovic Fauvet
etix at videolan.org
Tue Sep 3 14:50:20 CEST 2013
On 09/03/2013 02:40 PM, Rafaël Carré wrote:
> Le 03/09/2013 14:12, Ludovic Fauvet a écrit :
>> On 09/03/2013 01:59 PM, Rafaël Carré wrote:
>
>>>> +static unsigned int mpg123_refcount = 0;
>>>> +static vlc_mutex_t mpg123_mutex = VLC_STATIC_MUTEX;
>>>
>>> Depending on what mpg123_{init,exit} are doing you could also use gcc
>>> constructor/destructor function attributes so those functions are called
>>> exactly once when the .so are loaded / unloaded.
>>>
>>> This simplifies the code, and the drawback is those functions are called
>>> even if we don't use the module.
>>
>> I have no strong preference here. You tell me.
>
> Let's keep refcounting then.
>
> BTW mpg123_init does initialize a bunch of decoder tables, and detects
> the CPU features, while the full mpg123_exit (in 1.14.4) is:
> void attribute_align_arg mpg123_exit(void)
> {
> /* nothing yet, but something later perhaps */
> }
>
> So with this version we do not need refcounting, calling mpg123_init()
> just once would be enough... until "later perhaps"
Let's keep it anyway then, just in case.
>>>> +
>>>> + /* Ignore the last 8 bytes due to a hack for libmad */
>>>> + /* FIXME: This hack should be removed somehow --etix */
>>>> + if ( p_in_buf->i_buffer < 8 )
>>>> + return;
>>>
>>> Can you explain a bit more here? Is it still related to libmad?
>>
>> Yes, libmad requires the first bytes of the next frame to function properly.
>>
>> See modules/codec/mpeg_audio.c around line 454.
>
> /* mpga packetizer appends 8 bytes of the next frame to make mad decoder
> happy */ ?
Comment updated.
--
Ludovic Fauvet
www.videolan.org
More information about the vlc-devel
mailing list