[vlc-devel] [PATCH] decoder: remove misleading comment
Steve Lhomme
robux4 at ycbcr.xyz
Tue Sep 3 14:05:02 CEST 2019
On 2019-09-03 13:43, Thomas Guillem wrote:
>
> On Tue, Sep 3, 2019, at 13:22, Steve Lhomme wrote:
>> The p_aout and p_vout need locking for reading as well (it wouldn't make much
>> sense to only lock when writing).
>>
>> For example p_aout can be modified in the DecoderThread during a ReloadDecoder.
>
> ReloadDecoder() will first unload the audio decoder before writing the aout so we are safe here. I could document it.
It reads p_owner->p_aout and do aout_DecDelete( p_aout ) on it in the
DecoderThread. It is the same kind of code done in the decoder thread
calling aout_update_format(). It is safe only because the
reading/resetting/setting is done under lock in both threads.
IMO that contradicts the "These variables need locking on write(only)" doc.
>>
>> p_vout cannot be modified outside of the vout_update_format/spu_new_buffer but
>> it is also access in the DecoderThread, for example during DecoderProcessFlush()
>> or the OutputChangeXXX functions.
>
> That is what my comment say no ?
Yes
>>
>> For functions only called by the decoder, it might be OK not to lock as the
>> p_out/p_aout should only change during vout_update_format/aout_update_format
>> which the decoder should call before doing other calls from various threads.
>> ---
>> src/input/decoder.c | 3 +--
>> 1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/src/input/decoder.c b/src/input/decoder.c
>> index 65e3dd6f6c..7011c99226 100644
>> --- a/src/input/decoder.c
>> +++ b/src/input/decoder.c
>> @@ -101,12 +101,11 @@ struct decoder_owner
>> vlc_cond_t wait_acknowledge;
>> vlc_cond_t wait_fifo; /* TODO: merge with wait_acknowledge */
>>
>> - /* -- These variables need locking on write(only) -- */
>> + /* -- Theses variables need locking on read *and* write -- */
>> audio_output_t *p_aout;
>>
>> vout_thread_t *p_vout;
>>
>> - /* -- Theses variables need locking on read *and* write -- */
>> /* Preroll */
>> vlc_tick_t i_preroll_end;
>>
>> --
>> 2.17.1
>>
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
>
More information about the vlc-devel
mailing list