Loading...
Searching...
No Matches
Buffer source API
libavfilter

## Files

file | buffersrc.h
| Memory buffer source API.

## Data Structures

struct | AVBufferSrcParameters
| This structure contains the parameters describing the frames that will be passed to this filter. More...

## Enumerations

enum | { AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT = 1 , AV_BUFFERSRC_FLAG_PUSH = 4 , AV_BUFFERSRC_FLAG_KEEP_REF = 8 }

## Functions

unsigned | av_buffersrc_get_nb_failed_requests (AVFilterContext *buffer_src)
| Get the number of failed requests.
AVBufferSrcParameters * | av_buffersrc_parameters_alloc (void)
| Allocate a new AVBufferSrcParameters instance.
int | av_buffersrc_parameters_set (AVFilterContext *ctx, AVBufferSrcParameters *param)
| Initialize the buffersrc or abuffersrc filter with the provided parameters.
av_warn_unused_result int | av_buffersrc_write_frame (AVFilterContext *ctx, const AVFrame *frame)
| Add a frame to the buffer source.
av_warn_unused_result int | av_buffersrc_add_frame (AVFilterContext *ctx, AVFrame *frame)
| Add a frame to the buffer source.
av_warn_unused_result int | av_buffersrc_add_frame_flags (AVFilterContext *buffer_src, AVFrame *frame, int flags)
| Add a frame to the buffer source.
int | av_buffersrc_close (AVFilterContext *ctx, int64_t pts, unsigned flags)
| Close the buffer source after EOF.

## Detailed Description

## Enumeration Type Documentation

## anonymous enum

anonymous enum

Enumerator
AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT | Do not check for format changes.
AV_BUFFERSRC_FLAG_PUSH | Immediately push the frame to the output.
AV_BUFFERSRC_FLAG_KEEP_REF | Keep a reference to the frame. If the frame if reference-counted, create a new reference; otherwise copy the frame data.

Definition at line 36 of file buffersrc.h.

## Function Documentation

## av_buffersrc_get_nb_failed_requests()

unsigned av_buffersrc_get_nb_failed_requests | ( | AVFilterContext * | buffer_src | ) |

Get the number of failed requests.

A failed request is when the request_frame method is called while no frame is present in the buffer. The number is reset when a frame is added.

## av_buffersrc_parameters_alloc()

AVBufferSrcParameters * av_buffersrc_parameters_alloc | ( | void |  | ) |

Allocate a new AVBufferSrcParameters instance.

It should be freed by the caller with av_free().

## av_buffersrc_parameters_set()

int av_buffersrc_parameters_set | ( | AVFilterContext * | ctx,
|  | AVBufferSrcParameters * | param )

Initialize the buffersrc or abuffersrc filter with the provided parameters.

This function may be called multiple times, the later calls override the previous ones. Some of the parameters may also be set through AVOptions, then whatever method is used last takes precedence.

Parameters

  ctx | an instance of the buffersrc or abuffersrc filter
  param | the stream parameters. The frames later passed to this filter must conform to those parameters. All the allocated fields in param remain owned by the caller, libavfilter will make internal copies or references when necessary.

Returns
  0 on success, a negative AVERROR code on failure.

## av_buffersrc_write_frame()

av_warn_unused_result int av_buffersrc_write_frame | ( | AVFilterContext * | ctx,
|  | const AVFrame * | frame )

Add a frame to the buffer source.

Parameters

  ctx | an instance of the buffersrc filter
  frame | frame to be added. If the frame is reference counted, this function will make a new reference to it. Otherwise the frame data will be copied.

Returns
  0 on success, a negative AVERROR on error

This function is equivalent to av_buffersrc_add_frame_flags() with the AV_BUFFERSRC_FLAG_KEEP_REF flag.

## av_buffersrc_add_frame()

av_warn_unused_result int av_buffersrc_add_frame | ( | AVFilterContext * | ctx,
|  | AVFrame * | frame )

Add a frame to the buffer source.

Parameters

  ctx | an instance of the buffersrc filter
  frame | frame to be added. If the frame is reference counted, this function will take ownership of the reference(s) and reset the frame. Otherwise the frame data will be copied. If this function returns an error, the input frame is not touched.

Returns
  0 on success, a negative AVERROR on error.

Note
  the difference between this function and av_buffersrc_write_frame() is that av_buffersrc_write_frame() creates a new reference to the input frame, while this function takes ownership of the reference passed to it.

This function is equivalent to av_buffersrc_add_frame_flags() without the AV_BUFFERSRC_FLAG_KEEP_REF flag.

Examples
  filter_audio.c.

Referenced by main().

## av_buffersrc_add_frame_flags()

av_warn_unused_result int av_buffersrc_add_frame_flags | ( | AVFilterContext * | buffer_src,
|  | AVFrame * | frame,
|  | int | flags )

Add a frame to the buffer source.

By default, if the frame is reference-counted, this function will take ownership of the reference(s) and reset the frame. This can be controlled using the flags.

If this function returns an error, the input frame is not touched.

Parameters

  buffer_src | pointer to a buffer source context
  frame | a frame, or NULL to mark EOF
  flags | a combination of AV_BUFFERSRC_FLAG_*

Returns
  >= 0 in case of success, a negative AVERROR code in case of failure

Examples
  decode_filter_audio.c, decode_filter_video.c, and transcode.c.

Referenced by filter_encode_write_frame(), and main().

## av_buffersrc_close()

int av_buffersrc_close | ( | AVFilterContext * | ctx,
|  | int64_t | pts,
|  | unsigned | flags )

Close the buffer source after EOF.

This is similar to passing NULL to av_buffersrc_add_frame_flags() except it takes the timestamp of the EOF, i.e. the timestamp of the end of the last frame.