avcodec/pgssubdec: split out flush_cache()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
ca7f2a7372
commit
4701f7676c
@ -73,6 +73,20 @@ typedef struct PGSSubContext {
|
|||||||
int forced_subs_only;
|
int forced_subs_only;
|
||||||
} PGSSubContext;
|
} PGSSubContext;
|
||||||
|
|
||||||
|
static void flush_cache(AVCodecContext *avctx)
|
||||||
|
{
|
||||||
|
PGSSubContext *ctx = avctx->priv_data;
|
||||||
|
uint16_t picture;
|
||||||
|
|
||||||
|
av_freep(&ctx->presentation.objects);
|
||||||
|
ctx->presentation.object_count = 0;
|
||||||
|
|
||||||
|
for (picture = 0; picture < UINT16_MAX; ++picture) {
|
||||||
|
av_freep(&ctx->pictures[picture].rle);
|
||||||
|
ctx->pictures[picture].rle_buffer_size = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static av_cold int init_decoder(AVCodecContext *avctx)
|
static av_cold int init_decoder(AVCodecContext *avctx)
|
||||||
{
|
{
|
||||||
avctx->pix_fmt = AV_PIX_FMT_PAL8;
|
avctx->pix_fmt = AV_PIX_FMT_PAL8;
|
||||||
@ -82,17 +96,7 @@ static av_cold int init_decoder(AVCodecContext *avctx)
|
|||||||
|
|
||||||
static av_cold int close_decoder(AVCodecContext *avctx)
|
static av_cold int close_decoder(AVCodecContext *avctx)
|
||||||
{
|
{
|
||||||
uint16_t picture;
|
flush_cache(avctx);
|
||||||
|
|
||||||
PGSSubContext *ctx = avctx->priv_data;
|
|
||||||
|
|
||||||
av_freep(&ctx->presentation.objects);
|
|
||||||
ctx->presentation.object_count = 0;
|
|
||||||
|
|
||||||
for (picture = 0; picture < UINT16_MAX; ++picture) {
|
|
||||||
av_freep(&ctx->pictures[picture].rle);
|
|
||||||
ctx->pictures[picture].rle_buffer_size = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user