FFmpeg
Data Structures | Macros | Functions
frame_thread_encoder.c File Reference
#include <stdatomic.h>
#include "frame_thread_encoder.h"
#include "libavutil/avassert.h"
#include "libavutil/imgutils.h"
#include "libavutil/opt.h"
#include "libavutil/thread.h"
#include "avcodec.h"
#include "internal.h"
#include "thread.h"

Go to the source code of this file.

Data Structures

struct  Task
 
struct  ThreadContext
 

Macros

#define MAX_THREADS   64
 
#define BUFFER_SIZE   (MAX_THREADS + 2)
 

Functions

static void *attribute_align_arg worker (void *v)
 
int ff_frame_thread_encoder_init (AVCodecContext *avctx, AVDictionary *options)
 Initialize frame thread encoder. More...
 
void ff_frame_thread_encoder_free (AVCodecContext *avctx)
 
int ff_thread_video_encode_frame (AVCodecContext *avctx, AVPacket *pkt, AVFrame *frame, int *got_packet_ptr)
 

Macro Definition Documentation

◆ MAX_THREADS

#define MAX_THREADS   64

Definition at line 33 of file frame_thread_encoder.c.

◆ BUFFER_SIZE

#define BUFFER_SIZE   (MAX_THREADS + 2)

Definition at line 38 of file frame_thread_encoder.c.

Function Documentation

◆ worker()

static void* attribute_align_arg worker ( void *  v)
static

Definition at line 67 of file frame_thread_encoder.c.

Referenced by ff_frame_thread_encoder_init().

◆ ff_frame_thread_encoder_init()

int ff_frame_thread_encoder_init ( AVCodecContext avctx,
AVDictionary options 
)

Initialize frame thread encoder.

Note
hardware encoders are not supported

Definition at line 124 of file frame_thread_encoder.c.

Referenced by avcodec_open2().

◆ ff_frame_thread_encoder_free()

void ff_frame_thread_encoder_free ( AVCodecContext avctx)

Definition at line 255 of file frame_thread_encoder.c.

Referenced by avcodec_close(), and ff_frame_thread_encoder_init().

◆ ff_thread_video_encode_frame()

int ff_thread_video_encode_frame ( AVCodecContext avctx,
AVPacket pkt,
AVFrame frame,
int got_packet_ptr 
)

Definition at line 281 of file frame_thread_encoder.c.

Referenced by encode_simple_internal().