80 "flv only supports wideband (16kHz) Speex audio\n");
108 "flv does not support that sample rate, "
109 "choose from (44100, 22050, 11025).\n");
160 size_t len = strlen(str);
170 avio_w8(pb, (ts >> 24) & 0x7F);
195 int i, metadata_count = 0;
196 double framerate = 0.0;
197 int64_t metadata_size_pos, data_size, metadata_count_pos;
211 "at most one video stream is supported in flv\n");
223 "at most one audio stream is supported in flv\n");
285 metadata_count = 4 * !!video_enc +
308 if (framerate != 0.0) {
355 data_size =
avio_tell(pb) - metadata_size_pos - 10;
357 avio_seek(pb, metadata_count_pos, SEEK_SET);
360 avio_seek(pb, metadata_size_pos, SEEK_SET);
387 avio_seek(pb, -data_size - 10, SEEK_CUR);
439 int flags = 0, flags_size;
456 "video codec %X not compatible with flv\n",
488 "Packets are not in the proper order with respect to DTS\n");
497 "8 frames per packet. Adobe Flash "
498 "Player cannot handle this!\n");
505 avio_w8(pb, (ts >> 24) & 0x7F);
510 int64_t metadata_size_pos =
avio_tell(pb);
524 data_size =
avio_tell(pb) - metadata_size_pos;
525 avio_seek(pb, metadata_size_pos - 10, SEEK_SET);
527 avio_seek(pb, data_size + 10 - 3, SEEK_CUR);
559 .mime_type =
"video/x-flv",
void avio_wb64(AVIOContext *s, uint64_t val)
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
int64_t delay
first dts delay (needed for AVC & Speex)
#define AV_LOG_WARNING
Something somehow does not look correct.
int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
fseek() equivalent for AVIOContext.
static av_always_inline uint64_t av_double2int(double f)
Reinterpret a double as a 64-bit integer.
Opaque data information usually continuous.
uint8_t * extradata
some codecs need / can use extradata like Huffman tables.
AVStream ** streams
A list of all streams in the file.
static double av_q2d(AVRational a)
Convert rational to double.
AVDictionaryEntry * av_dict_get(const AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags)
Get a dictionary entry with matching key.
static av_always_inline int64_t avio_tell(AVIOContext *s)
ftell() equivalent for AVIOContext.
int bits_per_coded_sample
bits per sample/pixel from the demuxer (needed for huffyuv).
void avio_write(AVIOContext *s, const unsigned char *buf, int size)
int duration
Duration of this packet in AVStream->time_base units, 0 if unknown.
#define AV_PKT_FLAG_KEY
The packet contains a keyframe.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
AVDictionary * metadata
Metadata that applies to the whole file.
void av_free(void *ptr)
Free a memory block which has been allocated with av_malloc(z)() or av_realloc(). ...
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
preferred ID for decoding MPEG audio layer 1, 2 or 3
void av_log(void *avcl, int level, const char *fmt,...)
AVRational avg_frame_rate
Average framerate.
int ff_avc_parse_nal_units_buf(const uint8_t *buf_in, uint8_t **buf, int *size)
int flags
A combination of AV_PKT_FLAG values.
AVCodecContext * codec
Codec context associated with this stream.
unsigned int nb_streams
Number of elements in AVFormatContext.streams.
int bit_rate
the average bitrate
#define AV_TIME_BASE
Internal time base represented as integer.
int width
picture width / height.
void avio_wb24(AVIOContext *s, unsigned int val)
static av_always_inline int64_t avio_skip(AVIOContext *s, int64_t offset)
Skip given number of bytes forward.
enum AVMediaType codec_type
int sample_rate
samples per second
AVIOContext * pb
I/O context.
void avio_w8(AVIOContext *s, int b)
main external API structure.
unsigned int codec_tag
fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
int error
contains the error code or 0 if no error happened
void avio_wb16(AVIOContext *s, unsigned int val)
int channels
number of audio channels
void * priv_data
Format private data.
static void write_header(FFV1Context *f)
int64_t dts
Decompression timestamp in AVStream->time_base units; the time at which the packet is decompressed...
void avio_wb32(AVIOContext *s, unsigned int val)
int64_t duration
Duration of the stream, in AV_TIME_BASE fractional seconds.
#define AV_DICT_IGNORE_SUFFIX
This structure stores compressed data.
void * av_mallocz(size_t size)
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if ...
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...
int64_t last_ts
last timestamp for each stream
int ff_isom_write_avcc(AVIOContext *pb, const uint8_t *data, int len)
#define AV_NOPTS_VALUE
Undefined timestamp value.