libcaption
Classes | Macros | Enumerations | Functions
flv.h File Reference
#include "mpeg.h"
#include <inttypes.h>
#include <stddef.h>
#include <stdio.h>

Go to the source code of this file.

Classes

struct  flvtag_t
 

Macros

#define FLV_HEADER_SIZE   13
 
#define FLV_FOOTER_SIZE   4
 
#define FLV_TAG_HEADER_SIZE   11
 
#define FLV_TAG_FOOTER_SIZE   4
 

Enumerations

enum  flvtag_type_t { flvtag_type_audio = 0x08, flvtag_type_video = 0x09, flvtag_type_scriptdata = 0x12 }
 
enum  flvtag_soundformat_t {
  flvtag_soundformat_unknown = -1, flvtag_soundformat_linearpcmplatformendian = 0, flvtag_soundformat_adpcm = 1, flvtag_soundformat_mp3 = 2,
  flvtag_soundformat_linearpcmlittleendian = 3, flvtag_soundformat_nellymoser_16khzmono = 4, flvtag_soundformat_nellymoser_8khzmono = 5, flvtag_soundformat_nellymoser = 6,
  flvtag_soundformat_g711alawlogarithmicpcm = 7, flvtag_soundformat_g711mulawlogarithmicpcm = 8, flvtag_soundformat_reserved = 9, flvtag_soundformat_aac = 10,
  flvtag_soundformat_speex = 11, flvtag_soundformat_mp3_8khz = 14, flvtag_soundformat_devicespecificsound = 15
}
 
enum  flvtag_codecid_t {
  flvtag_codecid_unknown = -1, flvtag_codecid_sorensonh263 = 2, flvtag_codecid_screenvideo = 3, flvtag_codecid_on2vp6 = 4,
  flvtag_codecid_on2vp6withalphachannel = 5, flvtag_codecid_screenvideoversion2 = 6, flvtag_codecid_avc = 7
}
 
enum  flvtag_frametype_t {
  flvtag_frametype_unknown = -1, flvtag_frametype_keyframe = 1, flvtag_frametype_interframe = 2, flvtag_frametype_disposableinterframe = 3,
  flvtag_frametype_generatedkeyframe = 4, flvtag_frametype_commandframe = 5
}
 
enum  flvtag_avcpackettype_t { flvtag_avcpackettype_unknown = -1, flvtag_avcpackettype_sequenceheader = 0, flvtag_avcpackettype_nalu = 1, flvtag_avcpackettype_endofsequence = 2 }
 

Functions

void flvtag_init (flvtag_t *tag)
 
void flvtag_free (flvtag_t *tag)
 
void flvtag_swap (flvtag_t *tag1, flvtag_t *tag2)
 
static flvtag_type_t flvtag_type (flvtag_t *tag)
 
static flvtag_soundformat_t flvtag_soundformat (flvtag_t *tag)
 
static flvtag_codecid_t flvtag_codecid (flvtag_t *tag)
 
static flvtag_frametype_t flvtag_frametype (flvtag_t *tag)
 
static flvtag_avcpackettype_t flvtag_avcpackettype (flvtag_t *tag)
 
static size_t flvtag_size (flvtag_t *tag)
 
static uint32_t flvtag_timestamp (flvtag_t *tag)
 
static uint32_t flvtag_dts (flvtag_t *tag)
 
static uint32_t flvtag_cts (flvtag_t *tag)
 
static uint32_t flvtag_pts (flvtag_t *tag)
 
static double flvtag_dts_seconds (flvtag_t *tag)
 
static double flvtag_cts_seconds (flvtag_t *tag)
 
static double flvtag_pts_seconds (flvtag_t *tag)
 
size_t flvtag_header_size (flvtag_t *tag)
 
size_t flvtag_payload_size (flvtag_t *tag)
 
uint8_t * flvtag_payload_data (flvtag_t *tag)
 
FILE * flv_open_read (const char *flv)
 
FILE * flv_open_write (const char *flv)
 
FILE * flv_close (FILE *flv)
 
static const uint8_t * flvtag_raw_data (flvtag_t *tag)
 
static const size_t flvtag_raw_size (flvtag_t *tag)
 
int flv_read_tag (FILE *flv, flvtag_t *tag)
 
int flv_write_tag (FILE *flv, flvtag_t *tag)
 
int flv_read_header (FILE *flv, int *has_audio, int *has_video)
 
int flv_write_header (FILE *flv, int has_audio, int has_video)
 
sei_t * flv_read_sei (FILE *flv, flvtag_t *tag)
 
int flvtag_initavc (flvtag_t *tag, uint32_t dts, int32_t cts, flvtag_frametype_t type)
 
int flvtag_avcwritenal (flvtag_t *tag, uint8_t *data, size_t size)
 
int flvtag_addcaption_scc (flvtag_t *tag, const scc_t *scc)
 
int flvtag_addcaption_text (flvtag_t *tag, const utf8_char_t *text)
 
int flvtag_amfcaption_708 (flvtag_t *tag, uint32_t timestamp, sei_message_t *msg)
 
int flvtag_amfcaption_utf8 (flvtag_t *tag, uint32_t timestamp, const utf8_char_t *text)
 

Macro Definition Documentation

#define FLV_FOOTER_SIZE   4
#define FLV_HEADER_SIZE   13
#define FLV_TAG_FOOTER_SIZE   4
#define FLV_TAG_HEADER_SIZE   11

Enumeration Type Documentation

Enumerator
flvtag_avcpackettype_unknown 
flvtag_avcpackettype_sequenceheader 
flvtag_avcpackettype_nalu 
flvtag_avcpackettype_endofsequence 
Enumerator
flvtag_codecid_unknown 
flvtag_codecid_sorensonh263 
flvtag_codecid_screenvideo 
flvtag_codecid_on2vp6 
flvtag_codecid_on2vp6withalphachannel 
flvtag_codecid_screenvideoversion2 
flvtag_codecid_avc 
Enumerator
flvtag_frametype_unknown 
flvtag_frametype_keyframe 
flvtag_frametype_interframe 
flvtag_frametype_disposableinterframe 
flvtag_frametype_generatedkeyframe 
flvtag_frametype_commandframe 
Enumerator
flvtag_soundformat_unknown 
flvtag_soundformat_linearpcmplatformendian 
flvtag_soundformat_adpcm 
flvtag_soundformat_mp3 
flvtag_soundformat_linearpcmlittleendian 
flvtag_soundformat_nellymoser_16khzmono 
flvtag_soundformat_nellymoser_8khzmono 
flvtag_soundformat_nellymoser 
flvtag_soundformat_g711alawlogarithmicpcm 
flvtag_soundformat_g711mulawlogarithmicpcm 
flvtag_soundformat_reserved 
flvtag_soundformat_aac 
flvtag_soundformat_speex 
flvtag_soundformat_mp3_8khz 
flvtag_soundformat_devicespecificsound 
Enumerator
flvtag_type_audio 
flvtag_type_video 
flvtag_type_scriptdata 

Function Documentation

FILE* flv_close ( FILE *  flv)
FILE* flv_open_read ( const char *  flv)
FILE* flv_open_write ( const char *  flv)
int flv_read_header ( FILE *  flv,
int *  has_audio,
int *  has_video 
)
sei_t* flv_read_sei ( FILE *  flv,
flvtag_t tag 
)
int flv_read_tag ( FILE *  flv,
flvtag_t tag 
)
int flv_write_header ( FILE *  flv,
int  has_audio,
int  has_video 
)
int flv_write_tag ( FILE *  flv,
flvtag_t tag 
)
int flvtag_addcaption_scc ( flvtag_t tag,
const scc_t *  scc 
)
int flvtag_addcaption_text ( flvtag_t tag,
const utf8_char_t *  text 
)
int flvtag_amfcaption_708 ( flvtag_t tag,
uint32_t  timestamp,
sei_message_t *  msg 
)
int flvtag_amfcaption_utf8 ( flvtag_t tag,
uint32_t  timestamp,
const utf8_char_t *  text 
)
static flvtag_avcpackettype_t flvtag_avcpackettype ( flvtag_t tag)
inlinestatic
int flvtag_avcwritenal ( flvtag_t tag,
uint8_t *  data,
size_t  size 
)
static flvtag_codecid_t flvtag_codecid ( flvtag_t tag)
inlinestatic
static uint32_t flvtag_cts ( flvtag_t tag)
inlinestatic
static double flvtag_cts_seconds ( flvtag_t tag)
inlinestatic
static uint32_t flvtag_dts ( flvtag_t tag)
inlinestatic
static double flvtag_dts_seconds ( flvtag_t tag)
inlinestatic
static flvtag_frametype_t flvtag_frametype ( flvtag_t tag)
inlinestatic
void flvtag_free ( flvtag_t tag)
size_t flvtag_header_size ( flvtag_t tag)
void flvtag_init ( flvtag_t tag)
int flvtag_initavc ( flvtag_t tag,
uint32_t  dts,
int32_t  cts,
flvtag_frametype_t  type 
)
uint8_t* flvtag_payload_data ( flvtag_t tag)
size_t flvtag_payload_size ( flvtag_t tag)
static uint32_t flvtag_pts ( flvtag_t tag)
inlinestatic
static double flvtag_pts_seconds ( flvtag_t tag)
inlinestatic
static const uint8_t* flvtag_raw_data ( flvtag_t tag)
inlinestatic
static const size_t flvtag_raw_size ( flvtag_t tag)
inlinestatic
static size_t flvtag_size ( flvtag_t tag)
inlinestatic
static flvtag_soundformat_t flvtag_soundformat ( flvtag_t tag)
inlinestatic
void flvtag_swap ( flvtag_t tag1,
flvtag_t tag2 
)
static uint32_t flvtag_timestamp ( flvtag_t tag)
inlinestatic
static flvtag_type_t flvtag_type ( flvtag_t tag)
inlinestatic