| FFmpegKit Linux API 6.0

Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions
fftools_sync_queue.h File Reference

Go to the source code of this file.

## Data Structures
union | SyncQueueFrame

## Macros
#define | SQFRAME(frame) ((SyncQueueFrame){ .f = (frame) })
#define | SQPKT(pkt) ((SyncQueueFrame){ .p = (pkt) })

## Typedefs
typedef union SyncQueueFrame | SyncQueueFrame
typedef struct SyncQueue | SyncQueue

## Enumerations
enum | SyncQueueType { SYNC_QUEUE_PACKETS , SYNC_QUEUE_FRAMES }

## Functions
SyncQueue * | sq_alloc (enum SyncQueueType type, int64_t buf_size_us)
void | sq_free (SyncQueue **sq)
int | sq_add_stream (SyncQueue *sq, int limiting)
void | sq_set_tb (SyncQueue *sq, unsigned int stream_idx, AVRational tb)
void | sq_limit_frames (SyncQueue *sq, unsigned int stream_idx, uint64_t max_frames)
int | sq_send (SyncQueue *sq, unsigned int stream_idx, SyncQueueFrame frame)
int | sq_receive (SyncQueue *sq, int stream_idx, SyncQueueFrame frame)

## Macro Definition Documentation

## ◆ SQFRAME

#define SQFRAME | ( |  | frame | ) | ((SyncQueueFrame){ .f = (frame) })

Definition at line 51 of file fftools_sync_queue.h.

## ◆ SQPKT

#define SQPKT | ( |  | pkt | ) | ((SyncQueueFrame){ .p = (pkt) })

Definition at line 52 of file fftools_sync_queue.h.

## Typedef Documentation

## ◆ SyncQueue

typedef struct SyncQueue SyncQueue

Definition at line 54 of file fftools_sync_queue.h.

## ◆ SyncQueueFrame

typedef union SyncQueueFrame SyncQueueFrame

## Enumeration Type Documentation

## ◆ SyncQueueType

enum SyncQueueType

Enumerator
SYNC_QUEUE_PACKETS |
SYNC_QUEUE_FRAMES |

Definition at line 41 of file fftools_sync_queue.h.

## Function Documentation

## ◆ sq_add_stream()

int sq_add_stream | ( | SyncQueue * | sq,
|  | int | limiting
| ) |  |

Add a new stream to the sync queue.

Parameters

  limiting | whether the stream is limiting, i.e. no other stream can be longer than this one

Returns
  - a non-negative stream index on success
  - a negative error code on error

Definition at line 365 of file fftools_sync_queue.c.

## ◆ sq_alloc()

SyncQueue * sq_alloc | ( | enum SyncQueueType | type,
|  | int64_t | buf_size_us
| ) |  |

Allocate a sync queue of the given type.

Parameters

  buf_size_us | maximum duration that will be buffered in microseconds

Definition at line 419 of file fftools_sync_queue.c.

## ◆ sq_free()

void sq_free | ( | SyncQueue ** | sq | ) |

Definition at line 442 of file fftools_sync_queue.c.

## ◆ sq_limit_frames()

void sq_limit_frames | ( | SyncQueue * | sq,
|  | unsigned int | stream_idx,
|  | uint64_t | max_frames
| ) |  |

Limit the number of output frames for stream with index stream_idx to max_frames.

Definition at line 407 of file fftools_sync_queue.c.

## ◆ sq_receive()

int sq_receive | ( | SyncQueue * | sq,
|  | int | stream_idx,
|  | SyncQueueFrame | frame
| ) |  |

Read a frame from the queue.

Parameters

  stream_idx | index of the stream to read a frame for. May be -1, then try to read a frame from any stream that is ready for output.
  frame | output frame will be written here on success. The frame is owned by the caller.

Returns
  - a non-negative index of the stream to which the returned frame belongs
  - AVERROR(EAGAIN) when more frames need to be submitted to the queue
  - AVERROR_EOF when no more frames will be available for this stream (for any stream if stream_idx is -1)
  - another negative error code on failure

Definition at line 353 of file fftools_sync_queue.c.

## ◆ sq_send()

int sq_send | ( | SyncQueue * | sq,
|  | unsigned int | stream_idx,
|  | SyncQueueFrame | frame
| ) |  |

Submit a frame for the stream with index stream_idx.

On success, the sync queue takes ownership of the frame and will reset the contents of the supplied frame. On failure, the frame remains owned by the caller.

Sending a frame with NULL contents marks the stream as finished.

Returns
  - 0 on success
  - AVERROR_EOF when no more frames should be submitted for this stream
  - another a negative error code on failure

Definition at line 248 of file fftools_sync_queue.c.

## ◆ sq_set_tb()

void sq_set_tb | ( | SyncQueue * | sq,
|  | unsigned int | stream_idx,
|  | AVRational | tb
| ) |  |

Set the timebase for the stream with index stream_idx. Should be called before sending any frames for this stream.

Definition at line 392 of file fftools_sync_queue.c.