mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
41b05b849f
commit
f01f9f1793
@ -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 "
|
||||
|
Loading…
Reference in New Issue
Block a user