mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
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>
This commit is contained in:
parent
fe06ed22e6
commit
b33f5299a5
@ -15,6 +15,9 @@ libavutil: 2017-10-21
|
|||||||
|
|
||||||
API changes, most recent first:
|
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
|
2018-05-xx - xxxxxxxxxx - lavf 58.15.100 - avformat.h
|
||||||
Add pmt_version field to AVProgram
|
Add pmt_version field to AVProgram
|
||||||
|
|
||||||
|
@ -5769,6 +5769,7 @@ typedef struct AVBitStreamFilter {
|
|||||||
int (*init)(AVBSFContext *ctx);
|
int (*init)(AVBSFContext *ctx);
|
||||||
int (*filter)(AVBSFContext *ctx, AVPacket *pkt);
|
int (*filter)(AVBSFContext *ctx, AVPacket *pkt);
|
||||||
void (*close)(AVBSFContext *ctx);
|
void (*close)(AVBSFContext *ctx);
|
||||||
|
void (*flush)(AVBSFContext *ctx);
|
||||||
} AVBitStreamFilter;
|
} AVBitStreamFilter;
|
||||||
|
|
||||||
#if FF_API_OLD_BSF
|
#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);
|
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
|
* Free a bitstream filter context and everything associated with it; write NULL
|
||||||
* into the supplied pointer.
|
* into the supplied pointer.
|
||||||
|
@ -172,6 +172,16 @@ int av_bsf_init(AVBSFContext *ctx)
|
|||||||
return 0;
|
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 av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -28,8 +28,8 @@
|
|||||||
#include "libavutil/version.h"
|
#include "libavutil/version.h"
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_MAJOR 58
|
#define LIBAVCODEC_VERSION_MAJOR 58
|
||||||
#define LIBAVCODEC_VERSION_MINOR 22
|
#define LIBAVCODEC_VERSION_MINOR 23
|
||||||
#define LIBAVCODEC_VERSION_MICRO 101
|
#define LIBAVCODEC_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||||
LIBAVCODEC_VERSION_MINOR, \
|
LIBAVCODEC_VERSION_MINOR, \
|
||||||
|
Loading…
Reference in New Issue
Block a user