51 tag_len = pos - swf->
tag_pos - 2;
59 assert(tag_len < 0x3f);
65 static inline void max_nbits(
int *nbits_ptr,
int val)
82 int xmin,
int xmax,
int ymin,
int ymax)
95 mask = (1 << nbits) - 1;
118 mask = (1 << nbits) - 1;
124 }
else if (dy == 0) {
138 int a,
int b,
int c,
int d,
int tx,
int ty)
309 case 11025: v |= 1 << 2;
break;
310 case 22050: v |= 2 << 2;
break;
311 case 44100: v |= 3 << 2;
break;
314 av_log(s,
AV_LOG_ERROR,
"swf does not support that sample rate, choose from (44100, 22050, 11025).\n");
341 av_log(enc,
AV_LOG_INFO,
"warning: Flash Player limit of 16000 frames reached\n");
447 av_log(enc,
AV_LOG_INFO,
"warning: Flash Player limit of 16000 frames reached\n");
512 .mime_type =
"application/x-shockwave-flash",
522 #if CONFIG_AVM2_MUXER
526 .mime_type =
"application/x-shockwave-flash",
void avio_wl16(AVIOContext *s, unsigned int val)
int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, void(*func)(void *, void *, int))
Feed data from an AVFifoBuffer to a user-supplied callback.
int av_fifo_size(AVFifoBuffer *f)
Return the amount of data in bytes in the AVFifoBuffer, that is the amount of data you can read from ...
int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
fseek() equivalent for AVIOContext.
#define TAG_FREECHARACTER
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented...
void avio_wl32(AVIOContext *s, unsigned int val)
int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int(*func)(void *, void *, int))
Feed data from a user-supplied callback to an AVFifoBuffer.
#define TAG_FILEATTRIBUTES
static void put_swf_rect(AVIOContext *pb, int xmin, int xmax, int ymin, int ymax)
static av_always_inline int64_t avio_tell(AVIOContext *s)
ftell() equivalent for AVIOContext.
void avio_write(AVIOContext *s, const unsigned char *buf, int size)
static void put_swf_line_edge(PutBitContext *pb, int dx, int dy)
struct AVOutputFormat * oformat
AVFifoBuffer * av_fifo_alloc(unsigned int size)
Initialize an AVFifoBuffer.
static int swf_write_video(AVFormatContext *s, AVCodecContext *enc, const uint8_t *buf, int size)
static uint8_t * put_bits_ptr(PutBitContext *s)
Return the pointer to the byte where the bitstream writer will put the next bit.
static const uint16_t mask[17]
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
void av_log(void *avcl, int level, const char *fmt,...)
static void put_bits(PutBitContext *s, int n, unsigned int value)
Write up to 31 bits into a bitstream.
AVCodecContext * codec
codec context
unsigned int nb_streams
A list of all streams in the file.
int seekable
A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable.
int void avio_flush(AVIOContext *s)
static void put_swf_tag(AVFormatContext *s, int tag)
static void max_nbits(int *nbits_ptr, int val)
static int swf_write_audio(AVFormatContext *s, AVCodecContext *enc, uint8_t *buf, int size)
int width
picture width / height.
AVCodecContext * audio_enc
static int swf_write_packet(AVFormatContext *s, AVPacket *pkt)
void av_fifo_free(AVFifoBuffer *f)
Free an AVFifoBuffer.
int frame_size
Samples per packet, initialized when calling 'init'.
static int swf_write_header(AVFormatContext *s)
enum AVMediaType codec_type
int sample_rate
samples per second
void avio_w8(AVIOContext *s, int b)
main external API structure.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
AVCodecContext * video_enc
static const AVCodecTag swf_codec_tags[]
unsigned int ff_codec_get_tag(const AVCodecTag *tags, enum CodecID id)
static void put_swf_end_tag(AVFormatContext *s)
static void flush_put_bits(PutBitContext *s)
Pad the end of the output stream with zeros.
static void init_put_bits(PutBitContext *s, uint8_t *buffer, int buffer_size)
Initialize the PutBitContext s.
int channels
number of audio channels
void * priv_data
Format private data.
void avio_wb32(AVIOContext *s, unsigned int val)
AVFifoBuffer * audio_fifo
static int swf_write_trailer(AVFormatContext *s)
static void put_swf_matrix(AVIOContext *pb, int a, int b, int c, int d, int tx, int ty)
preferred ID for decoding MPEG audio layer 1, 2 or 3