X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fvp9_raw_reorder_bsf.c;h=6562399159f240271a1c7810378fad790414f799;hb=2606c48391377681541111263de41c79adeffa49;hp=01f3dad8982b1da019c8cebb29d0a82a37aba56c;hpb=d0c43e32427ec1efac364be0987a6aafa695527f;p=ffmpeg diff --git a/libavcodec/vp9_raw_reorder_bsf.c b/libavcodec/vp9_raw_reorder_bsf.c index 01f3dad8982..6562399159f 100644 --- a/libavcodec/vp9_raw_reorder_bsf.c +++ b/libavcodec/vp9_raw_reorder_bsf.c @@ -20,9 +20,9 @@ #include "libavutil/intmath.h" #include "libavutil/log.h" #include "libavutil/mem.h" -#include "libavutil/opt.h" #include "bsf.h" +#include "bsf_internal.h" #include "get_bits.h" #include "put_bits.h" @@ -292,7 +292,7 @@ static int vp9_raw_reorder_filter(AVBSFContext *bsf, AVPacket *out) return err; } - if (in->data[in->size - 1] & 0xe0 == 0xc0) { + if ((in->data[in->size - 1] & 0xe0) == 0xc0) { av_log(bsf, AV_LOG_ERROR, "Input in superframes is not " "supported.\n"); av_packet_free(&in); @@ -385,6 +385,16 @@ fail: return err; } +static void vp9_raw_reorder_flush(AVBSFContext *bsf) +{ + VP9RawReorderContext *ctx = bsf->priv_data; + + for (int s = 0; s < FRAME_SLOTS; s++) + vp9_raw_reorder_clear_slot(ctx, s); + ctx->next_frame = NULL; + ctx->sequence = 0; +} + static void vp9_raw_reorder_close(AVBSFContext *bsf) { VP9RawReorderContext *ctx = bsf->priv_data; @@ -402,6 +412,7 @@ const AVBitStreamFilter ff_vp9_raw_reorder_bsf = { .name = "vp9_raw_reorder", .priv_data_size = sizeof(VP9RawReorderContext), .close = &vp9_raw_reorder_close, + .flush = &vp9_raw_reorder_flush, .filter = &vp9_raw_reorder_filter, .codec_ids = vp9_raw_reorder_codec_ids, };