[FFmpeg-devel] [PATCH v2] avcodec/bsf: Set EOF flag only if pkt == NULL
Jan Sebechlebsky
sebechlebskyjan at gmail.com
Sun Jul 24 22:31:47 EEST 2016
On 07/22/2016 10:14 PM, Nicolas George wrote:
> Le quintidi 5 thermidor, an CCXXIV, sebechlebskyjan at gmail.com a écrit :
>> From: Jan Sebechlebsky <sebechlebskyjan at gmail.com>
>>
>> Set BSF EOF flag only if pkt == NULL in av_bsf_send_packet().
>>
>> Signed-off-by: Jan Sebechlebsky <sebechlebskyjan at gmail.com>
>> ---
>> I agree, it seems cleaner that way.
>>
>> Thanks,
>> please apply this version of patch then and ignore
>> the patch changing the comment.
>>
>> Regards,
>> Jan
>>
>> libavcodec/bsf.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavcodec/bsf.c b/libavcodec/bsf.c
>> index 88b7f29..9b9ada7 100644
>> --- a/libavcodec/bsf.c
>> +++ b/libavcodec/bsf.c
>> @@ -172,7 +172,7 @@ int av_bsf_init(AVBSFContext *ctx)
>>
>> int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt)
>> {
>> - if (!pkt || !pkt->data) {
>> + if (!pkt) {
> It we make the case where pkt != NULL but no data nor side data forbidden, I
> would suggest to detect it.
>
> I know that others disagree, but I think an assert is the best solution for
> that: if the caller pass a forbidden value, it can expect an undefined
> behaviour, and an assert failure is the most sympathetic undefined
> behaviours for developers.
I gave this a second thought, wouldn't it be better to simply ignore pkt
without payload? So after caller would send empty packet using
av_bsf_send_packet, he would get AVERROR(EAGAIN) from the next
av_bsf_receive_packet call (from the definition in documentation
AVERROR(EAGAIN) means "more data needed" when returned by
av_bsf_receive_packet).
However, if you think it is better to reserve packet without payload for
some future use, I won't object.
Regards,
Jan
More information about the ffmpeg-devel
mailing list