Commit f01f9f17 authored by Andreas Rheinhardt's avatar Andreas Rheinhardt Committed by James Almer

avformat/av1dec: Redo flushing of bsf

The current approach has two different calls to av_bsf_send_packet():
A normal one, sending a packet; and an extraordinary one just for
flushing. These can be unified into one by making use of the newly
documented fact that av_bsf_send_packet() allows to signal flushing via
empty packets (i.e. packets without data and side-data).

This also fixes CID 1455685 which resulted from the fact that the call
for flushing was not checked given that it couldn't fail.
Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: 's avatarJames Almer <jamrial@gmail.com>
parent 41b05b84
......@@ -193,7 +193,6 @@ retry:
if (avio_feof(s->pb)) {
if (c->temporal_unit_size || c->frame_unit_size)
return AVERROR(EIO);
av_bsf_send_packet(c->bsf, NULL);
goto end;
}
......@@ -222,6 +221,7 @@ retry:
c->temporal_unit_size -= obu_unit_size + len;
c->frame_unit_size -= obu_unit_size + len;
end:
ret = av_bsf_send_packet(c->bsf, pkt);
if (ret < 0) {
av_log(s, AV_LOG_ERROR, "Failed to send packet to "
......@@ -229,7 +229,6 @@ retry:
return ret;
}
end:
ret = av_bsf_receive_packet(c->bsf, pkt);
if (ret < 0 && ret != AVERROR(EAGAIN) && ret != AVERROR_EOF)
av_log(s, AV_LOG_ERROR, "av1_frame_merge filter failed to "
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment