FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Enumerations | Functions
subtitles.h File Reference
#include <stdint.h>
#include "avformat.h"
#include "libavutil/bprint.h"

Go to the source code of this file.

Data Structures

struct  FFDemuxSubtitlesQueue
 

Enumerations

enum  sub_sort { SUB_SORT_TS_POS = 0, SUB_SORT_POS_TS }
 

Functions

AVPacketff_subtitles_queue_insert (FFDemuxSubtitlesQueue *q, const uint8_t *event, int len, int merge)
 Insert a new subtitle event.
 
void ff_subtitles_queue_finalize (FFDemuxSubtitlesQueue *q)
 Set missing durations and sort subtitles by PTS, and then byte position.
 
int ff_subtitles_queue_read_packet (FFDemuxSubtitlesQueue *q, AVPacket *pkt)
 Generic read_packet() callback for subtitles demuxers using this queue system.
 
int ff_subtitles_queue_seek (FFDemuxSubtitlesQueue *q, AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags)
 Update current_sub_idx to emulate a seek.
 
void ff_subtitles_queue_clean (FFDemuxSubtitlesQueue *q)
 Remove and destroy all the subtitles packets.
 
int ff_smil_extract_next_chunk (AVIOContext *pb, AVBPrint *buf, char *c)
 SMIL helper to load next chunk ("<...>" or untagged content) in buf.
 
const char * ff_smil_get_attr_ptr (const char *s, const char *attr)
 SMIL helper to point on the value of an attribute in the given tag.
 
void ff_subtitles_read_chunk (AVIOContext *pb, AVBPrint *buf)
 Read a subtitles chunk.
 
static av_always_inline int ff_subtitles_next_line (const char *ptr)
 Get the number of characters to increment to jump to the next line, or to the end of the string.
 

Enumeration Type Documentation

enum sub_sort
Enumerator:
SUB_SORT_TS_POS 

sort by timestamps, then position

SUB_SORT_POS_TS 

sort by position, then timestamps

Definition at line 28 of file subtitles.h.

Function Documentation

AVPacket* ff_subtitles_queue_insert ( FFDemuxSubtitlesQueue q,
const uint8_t event,
int  len,
int  merge 
)

Insert a new subtitle event.

Parameters
eventthe subtitle line, may not be zero terminated
lenthe length of the event (in strlen() sense, so without '\0')
mergeset to 1 if the current event should be concatenated with the previous one instead of adding a new entry, 0 otherwise

Definition at line 26 of file subtitles.c.

Referenced by aqt_read_header(), ass_read_header(), jacosub_read_header(), microdvd_read_header(), mpl2_read_header(), mpsub_read_header(), parse_file(), pjs_read_header(), realtext_read_header(), sami_read_header(), srt_read_header(), subviewer1_read_header(), subviewer_read_header(), vplayer_read_header(), and webvtt_read_header().

void ff_subtitles_queue_finalize ( FFDemuxSubtitlesQueue q)
int ff_subtitles_queue_read_packet ( FFDemuxSubtitlesQueue q,
AVPacket pkt 
)
int ff_subtitles_queue_seek ( FFDemuxSubtitlesQueue q,
AVFormatContext s,
int  stream_index,
int64_t  min_ts,
int64_t  ts,
int64_t  max_ts,
int  flags 
)

Update current_sub_idx to emulate a seek.

Except the first parameter, it matches AVInputFormat->read_seek2 prototypes.

Definition at line 133 of file subtitles.c.

Referenced by aqt_read_seek(), ass_read_seek(), jacosub_read_seek(), microdvd_read_seek(), mpl2_read_seek(), mpsub_read_seek(), pjs_read_seek(), realtext_read_seek(), sami_read_seek(), srt_read_seek(), subviewer1_read_seek(), subviewer_read_seek(), tedcaptions_read_seek(), vplayer_read_seek(), and webvtt_read_seek().

void ff_subtitles_queue_clean ( FFDemuxSubtitlesQueue q)
int ff_smil_extract_next_chunk ( AVIOContext pb,
AVBPrint buf,
char *  c 
)

SMIL helper to load next chunk ("<...>" or untagged content) in buf.

Parameters
ccached character, to avoid a backward seek

Definition at line 195 of file subtitles.c.

Referenced by realtext_read_header(), and sami_read_header().

const char* ff_smil_get_attr_ptr ( const char *  s,
const char *  attr 
)

SMIL helper to point on the value of an attribute in the given tag.

Parameters
sSMIL tag ("<...>")
attrthe attribute to look for

Definition at line 218 of file subtitles.c.

Referenced by realtext_read_header(), and sami_read_header().

void ff_subtitles_read_chunk ( AVIOContext pb,
AVBPrint buf 
)

Read a subtitles chunk.

A chunk is defined by a multiline "event", ending with a second line break. The trailing line breaks are trimmed. CRLF are supported. Example: "foo\r\nbar\r\n\r\nnext" will print "foo\r\nbar" into buf, and pb will focus on the 'n' of the "next" string.

Parameters
pbI/O context
bufan initialized buf where the chunk is written
Note
buf is cleared before writing into it.

Definition at line 243 of file subtitles.c.

Referenced by mpsub_read_header(), srt_read_header(), and webvtt_read_header().

static av_always_inline int ff_subtitles_next_line ( const char *  ptr)
static

Get the number of characters to increment to jump to the next line, or to the end of the string.

The function handles the following line breaks schemes: LF, CRLF (MS), or standalone CR (old MacOS).

Definition at line 111 of file subtitles.h.

Referenced by get_pts(), jacosub_probe(), microdvd_probe(), mpl2_probe(), mpsub_probe(), srt_get_duration(), and srt_probe().