Mar 3, 2021, 16:50 by philip-dylan.gleo...@savoirfairelinux.com:

> Le 16/02/2021 à 15:04, Philip-Dylan Gleonec a écrit :
>
>> An estimation of packet loss is required by libopus to compute its FEC
>> data. Currently, this estimation is constant, and can not be changed
>> after configuration. This means an application using libopus through
>> ffmpeg can not adapt the packet loss estimation when the network
>> quality degrades.
>>
>> This patch makes the encoder reload the packet_loss AVOption before
>> encoding samples, if fec is enabled. This way an application can modify
>> the packet loss estimation by changing the AVOption. Typical use-case
>> is a RTP stream, where packet loss can be estimated from RTCP packets.
>>
>> Signed-off-by: Philip-Dylan Gleonec 
>> <philip-dylan.gleo...@savoirfairelinux.com>
>> ---
>>  libavcodec/libopusenc.c | 9 +++++++++
>>  1 file changed, 9 insertions(+)
>>
>> diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c
>> index 70d17f802b..c18e8ae7fa 100644
>> --- a/libavcodec/libopusenc.c
>> +++ b/libavcodec/libopusenc.c
>> @@ -460,6 +460,15 @@ static int libopus_encode(AVCodecContext *avctx, 
>> AVPacket *avpkt,
>>  int ret;
>>  int discard_padding;
>>  +    if (opus->opts.fec) {
>> +        ret = opus_multistream_encoder_ctl(opus->enc,
>> +                                           
>> OPUS_SET_PACKET_LOSS_PERC(opus->opts.packet_loss));
>> +        if (ret != OPUS_OK)
>> +            av_log(avctx, AV_LOG_WARNING,
>> +                   "Unable to set expected packet loss percentage: %s\n",
>> +                   opus_strerror(ret));
>> +    }
>> +
>>  if (frame) {
>>  ret = ff_af_queue_add(&opus->afq, frame);
>>  if (ret < 0)
>>
>
> Hello,
>
> Is someone interested in picking this up, or is there some correction I 
> should make to this patch ?
>

Could you check if the option value has changed in between calls
to encode and only reset the packet loss value if it has?
With that change, patch looks good.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to