Browse Source

avcodec/bsf: add a flushing mechanism to AVBSFContext

Meant to reset the internal bsf state without the need to reinitialize it.

Signed-off-by: James Almer <jamrial@gmail.com>
tags/n4.1
James Almer 7 years ago
parent
commit
b33f5299a5
4 changed files with 21 additions and 2 deletions
  1. +3
    -0
      doc/APIchanges
  2. +6
    -0
      libavcodec/avcodec.h
  3. +10
    -0
      libavcodec/bsf.c
  4. +2
    -2
      libavcodec/version.h

+ 3
- 0
doc/APIchanges View File

@@ -15,6 +15,9 @@ libavutil: 2017-10-21

API changes, most recent first:

2018-08-16 - xxxxxxxxxx - lavc 58.23.100 - avcodec.h
Add av_bsf_flush().

2018-05-xx - xxxxxxxxxx - lavf 58.15.100 - avformat.h
Add pmt_version field to AVProgram



+ 6
- 0
libavcodec/avcodec.h View File

@@ -5769,6 +5769,7 @@ typedef struct AVBitStreamFilter {
int (*init)(AVBSFContext *ctx);
int (*filter)(AVBSFContext *ctx, AVPacket *pkt);
void (*close)(AVBSFContext *ctx);
void (*flush)(AVBSFContext *ctx);
} AVBitStreamFilter;

#if FF_API_OLD_BSF
@@ -5895,6 +5896,11 @@ int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt);
*/
int av_bsf_receive_packet(AVBSFContext *ctx, AVPacket *pkt);

/**
* Reset the internal bitstream filter state / flush internal buffers.
*/
void av_bsf_flush(AVBSFContext *ctx);

/**
* Free a bitstream filter context and everything associated with it; write NULL
* into the supplied pointer.


+ 10
- 0
libavcodec/bsf.c View File

@@ -172,6 +172,16 @@ int av_bsf_init(AVBSFContext *ctx)
return 0;
}

void av_bsf_flush(AVBSFContext *ctx)
{
ctx->internal->eof = 0;

av_packet_unref(ctx->internal->buffer_pkt);

if (ctx->filter->flush)
ctx->filter->flush(ctx);
}

int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt)
{
int ret;


+ 2
- 2
libavcodec/version.h View File

@@ -28,8 +28,8 @@
#include "libavutil/version.h"

#define LIBAVCODEC_VERSION_MAJOR 58
#define LIBAVCODEC_VERSION_MINOR 22
#define LIBAVCODEC_VERSION_MICRO 101
#define LIBAVCODEC_VERSION_MINOR 23
#define LIBAVCODEC_VERSION_MICRO 100

#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \


Loading…
Cancel
Save