FFmpeg  4.0
Data Structures | Macros | Functions | Variables
srtenc.c File Reference
#include <stdarg.h>
#include "avcodec.h"
#include "libavutil/avstring.h"
#include "libavutil/bprint.h"
#include "ass_split.h"
#include "ass.h"

Go to the source code of this file.

Data Structures

struct  SRTContext
 

Macros

#define SRT_STACK_SIZE   64
 

Functions

static void srt_print (SRTContext *s, const char *str,...)
 
static int srt_stack_push (SRTContext *s, const char c)
 
static char srt_stack_pop (SRTContext *s)
 
static int srt_stack_find (SRTContext *s, const char c)
 
static void srt_close_tag (SRTContext *s, char tag)
 
static void srt_stack_push_pop (SRTContext *s, const char c, int close)
 
static void srt_style_apply (SRTContext *s, const char *style)
 
static av_cold int srt_encode_init (AVCodecContext *avctx)
 
static void srt_text_cb (void *priv, const char *text, int len)
 
static void srt_new_line_cb (void *priv, int forced)
 
static void srt_style_cb (void *priv, char style, int close)
 
static void srt_color_cb (void *priv, unsigned int color, unsigned int color_id)
 
static void srt_font_name_cb (void *priv, const char *name)
 
static void srt_font_size_cb (void *priv, int size)
 
static void srt_alignment_cb (void *priv, int alignment)
 
static void srt_cancel_overrides_cb (void *priv, const char *style)
 
static void srt_move_cb (void *priv, int x1, int y1, int x2, int y2, int t1, int t2)
 
static void srt_end_cb (void *priv)
 
static int encode_frame (AVCodecContext *avctx, unsigned char *buf, int bufsize, const AVSubtitle *sub, const ASSCodesCallbacks *cb)
 
static int srt_encode_frame (AVCodecContext *avctx, unsigned char *buf, int bufsize, const AVSubtitle *sub)
 
static int text_encode_frame (AVCodecContext *avctx, unsigned char *buf, int bufsize, const AVSubtitle *sub)
 
static int srt_encode_close (AVCodecContext *avctx)
 

Variables

static const ASSCodesCallbacks srt_callbacks
 
static const ASSCodesCallbacks text_callbacks
 

Macro Definition Documentation

◆ SRT_STACK_SIZE

#define SRT_STACK_SIZE   64

Definition at line 30 of file srtenc.c.

Referenced by srt_stack_push().

Function Documentation

◆ srt_print()

static void srt_print ( SRTContext s,
const char *  str,
  ... 
)
static

◆ srt_stack_push()

static int srt_stack_push ( SRTContext s,
const char  c 
)
static

Definition at line 53 of file srtenc.c.

Referenced by srt_stack_push_pop(), and srt_style_apply().

◆ srt_stack_pop()

static char srt_stack_pop ( SRTContext s)
static

Definition at line 61 of file srtenc.c.

Referenced by srt_stack_push_pop().

◆ srt_stack_find()

static int srt_stack_find ( SRTContext s,
const char  c 
)
static

Definition at line 68 of file srtenc.c.

Referenced by srt_stack_push_pop().

◆ srt_close_tag()

static void srt_close_tag ( SRTContext s,
char  tag 
)
static

Definition at line 77 of file srtenc.c.

Referenced by srt_stack_push_pop().

◆ srt_stack_push_pop()

static void srt_stack_push_pop ( SRTContext s,
const char  c,
int  close 
)
static

◆ srt_style_apply()

static void srt_style_apply ( SRTContext s,
const char *  style 
)
static

Definition at line 94 of file srtenc.c.

Referenced by encode_frame(), and srt_cancel_overrides_cb().

◆ srt_encode_init()

static av_cold int srt_encode_init ( AVCodecContext avctx)
static

Definition at line 133 of file srtenc.c.

Referenced by srt_encode_close().

◆ srt_text_cb()

static void srt_text_cb ( void priv,
const char *  text,
int  len 
)
static

Definition at line 142 of file srtenc.c.

◆ srt_new_line_cb()

static void srt_new_line_cb ( void priv,
int  forced 
)
static

Definition at line 148 of file srtenc.c.

◆ srt_style_cb()

static void srt_style_cb ( void priv,
char  style,
int  close 
)
static

Definition at line 153 of file srtenc.c.

◆ srt_color_cb()

static void srt_color_cb ( void priv,
unsigned int  color,
unsigned int  color_id 
)
static

Definition at line 160 of file srtenc.c.

◆ srt_font_name_cb()

static void srt_font_name_cb ( void priv,
const char *  name 
)
static

Definition at line 170 of file srtenc.c.

◆ srt_font_size_cb()

static void srt_font_size_cb ( void priv,
int  size 
)
static

Definition at line 177 of file srtenc.c.

◆ srt_alignment_cb()

static void srt_alignment_cb ( void priv,
int  alignment 
)
static

Definition at line 184 of file srtenc.c.

◆ srt_cancel_overrides_cb()

static void srt_cancel_overrides_cb ( void priv,
const char *  style 
)
static

Definition at line 193 of file srtenc.c.

◆ srt_move_cb()

static void srt_move_cb ( void priv,
int  x1,
int  y1,
int  x2,
int  y2,
int  t1,
int  t2 
)
static

Definition at line 199 of file srtenc.c.

◆ srt_end_cb()

static void srt_end_cb ( void priv)
static

Definition at line 206 of file srtenc.c.

◆ encode_frame()

static int encode_frame ( AVCodecContext avctx,
unsigned char *  buf,
int  bufsize,
const AVSubtitle sub,
const ASSCodesCallbacks cb 
)
static

Definition at line 229 of file srtenc.c.

Referenced by srt_encode_frame(), and text_encode_frame().

◆ srt_encode_frame()

static int srt_encode_frame ( AVCodecContext avctx,
unsigned char *  buf,
int  bufsize,
const AVSubtitle sub 
)
static

Definition at line 286 of file srtenc.c.

Referenced by srt_encode_close().

◆ text_encode_frame()

static int text_encode_frame ( AVCodecContext avctx,
unsigned char *  buf,
int  bufsize,
const AVSubtitle sub 
)
static

Definition at line 292 of file srtenc.c.

Referenced by srt_encode_close().

◆ srt_encode_close()

static int srt_encode_close ( AVCodecContext avctx)
static

Definition at line 298 of file srtenc.c.

Variable Documentation

◆ srt_callbacks

const ASSCodesCallbacks srt_callbacks
static
Initial value:
= {
.text = srt_text_cb,
.new_line = srt_new_line_cb,
.style = srt_style_cb,
.color = srt_color_cb,
.font_name = srt_font_name_cb,
.font_size = srt_font_size_cb,
.alignment = srt_alignment_cb,
.cancel_overrides = srt_cancel_overrides_cb,
.move = srt_move_cb,
.end = srt_end_cb,
}
static void srt_font_size_cb(void *priv, int size)
Definition: srtenc.c:177
static void srt_color_cb(void *priv, unsigned int color, unsigned int color_id)
Definition: srtenc.c:160
static void srt_move_cb(void *priv, int x1, int y1, int x2, int y2, int t1, int t2)
Definition: srtenc.c:199
static void srt_cancel_overrides_cb(void *priv, const char *style)
Definition: srtenc.c:193
static void srt_style_cb(void *priv, char style, int close)
Definition: srtenc.c:153
static void srt_font_name_cb(void *priv, const char *name)
Definition: srtenc.c:170
static void srt_new_line_cb(void *priv, int forced)
Definition: srtenc.c:148
static void srt_alignment_cb(void *priv, int alignment)
Definition: srtenc.c:184
static void srt_text_cb(void *priv, const char *text, int len)
Definition: srtenc.c:142
static void srt_end_cb(void *priv)
Definition: srtenc.c:206

Definition at line 211 of file srtenc.c.

◆ text_callbacks

const ASSCodesCallbacks text_callbacks
static
Initial value:
= {
.text = srt_text_cb,
.new_line = srt_new_line_cb,
}
static void srt_new_line_cb(void *priv, int forced)
Definition: srtenc.c:148
static void srt_text_cb(void *priv, const char *text, int len)
Definition: srtenc.c:142

Definition at line 224 of file srtenc.c.