asf->nb_packets = 0;
if (asf_write_header1(s, 0, 50) < 0) {
- free(asf);
+ av_free(asf);
return -1;
}
put_flush_packet(&s->pb);
- free(asf);
+ av_free(asf);
return 0;
}
for(i=0;i<s->nb_streams;i++) {
AVStream *st = s->streams[i];
if (st)
- free(st->priv_data);
- free(st);
+ av_free(st->priv_data);
+ av_free(st);
}
- free(asf);
+ av_free(asf);
return -1;
}
for(i=0;i<s->nb_streams;i++) {
AVStream *st = s->streams[i];
- free(st->priv_data);
+ av_free(st->priv_data);
}
- free(asf);
+ av_free(asf);
return 0;
}
}
/* now we are ready: build format streams */
- st = malloc(sizeof(AVStream));
+ st = av_malloc(sizeof(AVStream));
if (!st)
return -1;
s->nb_streams = 1;
s->channels = st->codec.channels;
ret = audio_open(s, 1);
if (ret < 0) {
- free(s);
+ av_free(s);
return -EIO;
} else {
return 0;
AudioData *s = s1->priv_data;
audio_close(s);
- free(s);
+ av_free(s);
return 0;
}
return -ENOMEM;
st = av_mallocz(sizeof(AVStream));
if (!st) {
- free(s);
+ av_free(s);
return -ENOMEM;
}
s1->priv_data = s;
ret = audio_open(s, 0);
if (ret < 0) {
- free(st);
- free(s);
+ av_free(st);
+ av_free(s);
return -EIO;
} else {
/* take real parameters */
AudioData *s = s1->priv_data;
audio_close(s);
- free(s);
+ av_free(s);
return 0;
}
/* wav.c */
extern AVFormat wav_format;
+/* crc.c */
+extern AVFormat crc_format;
+
/* img.c */
extern AVFormat pgm_format;
extern AVFormat ppm_format;
int i, bps;
AVStream *st;
- avi = malloc(sizeof(AVIContext));
+ avi = av_malloc(sizeof(AVIContext));
if (!avi)
return -1;
memset(avi, 0, sizeof(AVIContext));
s->nb_streams = get_le32(pb);
for(i=0;i<s->nb_streams;i++) {
AVStream *st;
- st = malloc(sizeof(AVStream));
+ st = av_malloc(sizeof(AVStream));
if (!st)
goto fail;
memset(st, 0, sizeof(AVStream));
if (stream_index != s->nb_streams - 1) {
fail:
for(i=0;i<s->nb_streams;i++) {
- if (s->streams[i])
- free(s->streams[i]);
+ av_freep(&s->streams[i]);
}
return -1;
}
int avi_read_close(AVFormatContext *s)
{
AVIContext *avi = s->priv_data;
- free(avi);
+ av_free(avi);
return 0;
}
AVCodecContext *stream, *video_enc;
offset_t list1, list2, strh, strf;
- avi = malloc(sizeof(AVIContext));
+ avi = av_malloc(sizeof(AVIContext));
if (!avi)
return -1;
memset(avi, 0, sizeof(AVIContext));
}
if (!video_enc) {
- free(avi);
+ av_free(avi);
return -1;
}
nb_frames = 0;
break;
case CODEC_TYPE_AUDIO:
if (put_wav_header(pb, stream) < 0) {
- free(avi);
+ av_free(avi);
return -1;
}
break;
avi->audio_strm_length[stream_index] += size;
if (!url_is_streamed(&s->pb)) {
- idx = malloc(sizeof(AVIIndex));
+ idx = av_malloc(sizeof(AVIIndex));
memcpy(idx->tag, tag, 4);
idx->flags = flags;
idx->pos = url_ftell(pb) - avi->movi_list;
}
put_flush_packet(pb);
- free(avi);
+ av_free(avi);
return 0;
}
}
return -ENOENT;
found:
- uc = malloc(sizeof(URLContext));
+ uc = av_malloc(sizeof(URLContext));
if (!uc)
return -ENOMEM;
uc->prot = up;
uc->packet_size = 1; /* default packet size */
err = up->url_open(uc, filename, flags);
if (err < 0) {
- free(uc);
+ av_free(uc);
*puc = NULL;
return err;
}
int ret;
ret = h->prot->url_close(h);
- free(h);
+ av_free(h);
return ret;
}
int buffer_size;
buffer_size = (IO_BUFFER_SIZE / h->packet_size) * h->packet_size;
- buffer = malloc(buffer_size);
+ buffer = av_malloc(buffer_size);
if (!buffer)
return -ENOMEM;
if (init_put_byte(s, buffer, buffer_size,
(h->flags & URL_WRONLY) != 0, h,
url_read_packet, url_write_packet, url_seek_packet) < 0) {
- free(buffer);
+ av_free(buffer);
return -EIO;
}
s->is_streamed = h->is_streamed;
int url_setbufsize(ByteIOContext *s, int buf_size)
{
UINT8 *buffer;
- buffer = malloc(buf_size);
+ buffer = av_malloc(buf_size);
if (!buffer)
return -ENOMEM;
- free(s->buffer);
+ av_free(s->buffer);
s->buffer = buffer;
s->buffer_size = buf_size;
s->buf_ptr = buffer;
{
URLContext *h = s->opaque;
- free(s->buffer);
+ av_free(s->buffer);
memset(s, 0, sizeof(ByteIOContext));
return url_close(h);
}
snprintf(buf, sizeof(buf), "CRC=%08x\n", crc->crcval);
put_buffer(&s->pb, buf, strlen(buf));
put_flush_packet(&s->pb);
+ av_free(crc);
return 0;
}
for(i=0;i<s->nb_streams;i++) {
st = s->streams[i];
fst = st->priv_data;
- if (fst)
- free(fst);
+ av_free(fst);
}
- free(ffm);
+ av_free(ffm);
return -1;
}
put_flush_packet(pb);
for(i=0;i<s->nb_streams;i++)
- free(s->streams[i]->priv_data);
- free(ffm);
+ av_free(s->streams[i]->priv_data);
+ av_free(ffm);
return 0;
}
st = s->streams[i];
if (st) {
fst = st->priv_data;
- if (fst)
- free(fst);
- free(st);
+ av_free(fst);
+ av_free(st);
}
}
if (ffm)
- free(ffm);
+ av_free(ffm);
return -1;
}
for(i=0;i<s->nb_streams;i++) {
st = s->streams[i];
- free(st->priv_data);
+ av_free(st->priv_data);
}
- free(s->priv_data);
+ av_free(s->priv_data);
return 0;
}
return -1;
*/
- gif = malloc(sizeof(GIFContext));
+ gif = av_malloc(sizeof(GIFContext));
if (!gif)
return -1;
s->priv_data = gif;
}
if (!video_enc) {
- free(gif);
+ av_free(gif);
return -1;
} else {
width = video_enc->width;
put_byte(pb, 0x3b);
put_flush_packet(&s->pb);
- free(gif);
+ av_free(gif);
return 0;
}
return -ENOMEM;
st = av_mallocz(sizeof(AVStream));
if (!st) {
- free(s);
+ av_free(s);
return -ENOMEM;
}
s1->priv_data = s;
fail:
if (video_fd >= 0)
close(video_fd);
- free(st);
- free(s);
+ av_free(st);
+ av_free(s);
return -EIO;
}
ioctl(s->fd, VIDIOCSAUDIO, &audio_saved);
close(s->fd);
- free(s);
+ av_free(s);
return 0;
}
h->is_streamed = 1;
- s = malloc(sizeof(HTTPContext));
+ s = av_malloc(sizeof(HTTPContext));
if (!s) {
return -ENOMEM;
}
fail:
if (fd >= 0)
close(fd);
- free(s);
+ av_free(s);
return -EIO;
}
ByteIOContext pb1, *f = &pb1;
AVStream *st;
- s = malloc(sizeof(VideoData));
+ s = av_malloc(sizeof(VideoData));
if (!s)
return -ENOMEM;
s1->nb_streams = 1;
st = av_mallocz(sizeof(AVStream));
if (!st) {
- free(s);
+ av_free(s);
return -ENOMEM;
}
s1->streams[0] = st;
if (!s->is_pipe)
url_fclose(f);
fail:
- free(s);
+ av_free(s);
return -EIO;
}
static int img_read_close(AVFormatContext *s1)
{
VideoData *s = s1->priv_data;
- free(s);
+ av_free(s);
return 0;
}
}
return 0;
fail:
- free(img);
+ av_free(img);
return -EIO;
}
static int img_write_trailer(AVFormatContext *s)
{
VideoData *img = s->priv_data;
- free(img);
+ av_free(img);
return 0;
}
static int jpeg_write_trailer(AVFormatContext *s1)
{
JpegContext *s = s1->priv_data;
- free(s);
+ av_free(s);
return 0;
}
s1->nb_streams = 1;
st = av_mallocz(sizeof(AVStream));
if (!st) {
- free(s);
+ av_free(s);
return -ENOMEM;
}
s1->streams[0] = st;
st->codec.frame_rate = ap->frame_rate;
return 0;
fail:
- free(s);
+ av_free(s);
return -EIO;
}
static int jpeg_read_close(AVFormatContext *s1)
{
JpegContext *s = s1->priv_data;
- free(s);
+ av_free(s);
return 0;
}
+++ /dev/null
-# Microsoft Developer Studio Project File - Name="libav" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=libav - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "libav.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "libav.mak" CFG="libav - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "libav - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "libav - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "libav - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "../Release/libav"
-# PROP Intermediate_Dir "../Release/libav"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "../libavcodec" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD BASE RSC /l 0x40c /d "NDEBUG"
-# ADD RSC /l 0x40c /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ELSEIF "$(CFG)" == "libav - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "../Debug/libav"
-# PROP Intermediate_Dir "../Debug/libav"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../libavcodec" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x40c /d "_DEBUG"
-# ADD RSC /l 0x40c /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# SUBTRACT LIB32 /nologo
-
-!ENDIF
-
-# Begin Target
-
-# Name "libav - Win32 Release"
-# Name "libav - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\asf.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\avformat.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\avi.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\avidec.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\avienc.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\avio.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\avio.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\aviobuf.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\file.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\img.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\jpegenc.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\mpeg.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\raw.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\rm.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\swf.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\utils.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\wav.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# End Target
-# End Project
#endif
c = (MOVContext *)param;
- st = malloc(sizeof(AVStream));
- if (!st) return -2;
+ st = av_malloc(sizeof(AVStream));
+ if (!st) return -2;
memset(st, 0, sizeof(AVStream));
c->fc->streams[c->fc->nb_streams] = st;
- sc = malloc(sizeof(MOVStreamContext));
+ sc = av_malloc(sizeof(MOVStreamContext));
st->priv_data = sc;
st->codec.codec_type = CODEC_TYPE_MOV_OTHER;
c->streams[c->fc->nb_streams++] = sc;
} else {
len = get_byte(pb);
if(len) {
- buf = malloc(len+1);
+ buf = av_malloc(len+1);
get_buffer(pb, buf, len);
buf[len] = '\0';
#ifdef DEBUG
puts(buf);
#endif
- free(buf);
+ av_free(buf);
}
}
}
/*
if(len) {
- buf = malloc(len+1);
+ buf = av_malloc(len+1);
get_buffer(pb, buf, len);
buf[len] = '\0';
puts(buf);
- free(buf);
+ av_free(buf);
}
*/
return 0;
entries = get_be32(pb);
sc->chunk_count = entries;
- sc->chunk_offsets = malloc(entries * sizeof(INT64));
+ sc->chunk_offsets = av_malloc(entries * sizeof(INT64));
if(atom_type == MKTAG('s', 't', 'c', 'o')) {
for(i=0; i<entries; i++) {
sc->chunk_offsets[i] = get_be32(pb);
entries = get_be32(pb);
sc->sample_to_chunk_sz = entries;
- sc->sample_to_chunk = malloc(entries * sizeof(MOV_sample_to_chunk_tbl));
+ sc->sample_to_chunk = av_malloc(entries * sizeof(MOV_sample_to_chunk_tbl));
for(i=0; i<entries; i++) {
sc->sample_to_chunk[i].first = get_be32(pb);
sc->sample_to_chunk[i].count = get_be32(pb);
printf("sample_size = %ld sample_count = %ld\n", sc->sample_size, sc->sample_count);
if(sc->sample_size)
return 0; /* there isn't any table following */
- sc->sample_sizes = malloc(entries * sizeof(long));
+ sc->sample_sizes = av_malloc(entries * sizeof(long));
for(i=0; i<entries; i++) {
sc->sample_sizes[i] = get_be32(pb);
#ifdef DEBUG
static void mov_free_stream_context(MOVStreamContext *sc)
{
if(sc) {
- if(sc->chunk_offsets)
- free(sc->chunk_offsets);
- if(sc->sample_to_chunk)
- free(sc->sample_to_chunk);
- free(sc);
+ av_free(sc->chunk_offsets);
+ av_free(sc->sample_to_chunk);
+ av_free(sc);
}
}
int i, j, nb, err;
INT64 size;
- mov = malloc(sizeof(MOVContext));
+ mov = av_mallocz(sizeof(MOVContext));
if (!mov)
return -1;
- memset(mov, 0, sizeof(MOVContext));
s->priv_data = mov;
mov->fc = s;
#if 1
for(i=0; i<s->nb_streams;) {
if(s->streams[i]->codec.codec_type == CODEC_TYPE_MOV_OTHER) {/* not audio, not video, delete */
- free(s->streams[i]);
+ av_free(s->streams[i]);
for(j=i+1; j<s->nb_streams; j++)
s->streams[j-1] = s->streams[j];
s->nb_streams--;
for(i=0; i<mov->total_streams; i++)
mov_free_stream_context(mov->streams[i]);
for(i=0; i<s->nb_streams; i++)
- free(s->streams[i]);
- free(mov);
+ av_free(s->streams[i]);
+ av_free(mov);
return 0;
}
AVStream *st;
StreamInfo *stream;
- s = malloc(sizeof(MpegMuxContext));
+ s = av_mallocz(sizeof(MpegMuxContext));
if (!s)
return -1;
- memset(s, 0, sizeof(MpegMuxContext));
ctx->priv_data = s;
s->packet_number = 0;
return 0;
fail:
for(i=0;i<ctx->nb_streams;i++) {
- free(ctx->streams[i]->priv_data);
+ av_free(ctx->streams[i]->priv_data);
}
- free(s);
+ av_free(s);
return -ENOMEM;
}
static int mpeg_mux_read_close(AVFormatContext *s)
{
MpegDemuxContext *m = s->priv_data;
- free(m);
+ av_free(m);
return 0;
}
int n;
AVCodecContext *codec;
- rm = malloc(sizeof(RMContext));
+ rm = av_malloc(sizeof(RMContext));
if (!rm)
return -1;
memset(rm, 0, sizeof(RMContext));
int i;
/* XXX: suppress this malloc */
- buf1= (UINT8*) malloc( size * sizeof(UINT8) );
+ buf1= (UINT8*) av_malloc( size * sizeof(UINT8) );
write_packet_header(s, stream, size, stream->enc->key_frame);
put_buffer(pb, buf1, size);
put_flush_packet(pb);
stream->nb_frames++;
- free(buf1);
+ av_free(buf1);
return 0;
}
}
put_flush_packet(pb);
- free(rm);
+ av_free(rm);
return 0;
}
fail:
for(i=0;i<s->nb_streams;i++) {
- free(s->streams[i]);
+ av_free(s->streams[i]);
}
return -EIO;
}
static int rm_read_close(AVFormatContext *s)
{
RMContext *rm = s->priv_data;
- free(rm);
+ av_free(rm);
return 0;
}
UINT8 buf1[256];
int i, width, height, rate;
- swf = malloc(sizeof(SWFContext));
+ swf = av_malloc(sizeof(SWFContext));
if (!swf)
return -1;
s->priv_data = swf;
break;
default:
/* not supported */
- free(swf);
+ av_free(swf);
return -1;
}
if (audio_enc->channels == 2)
url_fseek(pb, swf->duration_pos, SEEK_SET);
put_le16(pb, video_enc->frame_number);
}
- free(swf);
+ av_free(swf);
return 0;
}
st->codec.sample_rate = 44100;
break;
default:
- free(st);
+ av_free(st);
return -EIO;
}
st->codec.codec_type = CODEC_TYPE_AUDIO;
goto fail;
}
- s = malloc(sizeof(UDPContext));
+ s = av_malloc(sizeof(UDPContext));
if (!s)
return -ENOMEM;
h->priv_data = s;
register_avformat(&gif_format);
register_avformat(&au_format);
register_avformat(&wav_format);
+ register_avformat(&crc_format);
+
register_avformat(&pcm_s16le_format);
register_avformat(&pcm_s16be_format);
register_avformat(&pcm_u16le_format);
int av_new_packet(AVPacket *pkt, int size)
{
- pkt->data = malloc(size);
+ pkt->data = av_malloc(size);
if (!pkt->data)
return -ENOMEM;
pkt->size = size;
void av_free_packet(AVPacket *pkt)
{
- free(pkt->data);
+ av_freep(&pkt->data);
/* fail safe */
- pkt->data = NULL;
pkt->size = 0;
}
int fifo_init(FifoBuffer *f, int size)
{
- f->buffer = malloc(size);
+ f->buffer = av_malloc(size);
if (!f->buffer)
return -1;
f->end = f->buffer + size;
void fifo_free(FifoBuffer *f)
{
- free(f->buffer);
+ av_free(f->buffer);
}
int fifo_size(FifoBuffer *f, UINT8 *rptr)
return ic;
fail:
- if (ic)
- free(ic);
+ av_free(ic);
return NULL;
}
/* read packet from packet buffer, if there is data */
*pkt = pktl->pkt;
s->packet_buffer = pktl->next;
- free(pktl);
+ av_free(pktl);
return 0;
} else {
return s->format->read_packet(s, pkt);
if (s->format->read_close)
s->format->read_close(s);
for(i=0;i<s->nb_streams;i++) {
- free(s->streams[i]);
+ av_free(s->streams[i]);
}
if (s->packet_buffer) {
AVPacketList *p, *p1;
while (p != NULL) {
p1 = p->next;
av_free_packet(&p->pkt);
- free(p);
+ av_free(p);
p = p1;
}
s->packet_buffer = NULL;
if (!(s->format->flags & AVFMT_NOFILE)) {
url_fclose(&s->pb);
}
- free(s);
+ av_free(s);
}
ByteIOContext *pb = &s->pb;
offset_t fmt;
- wav = malloc(sizeof(WAVContext));
+ wav = av_malloc(sizeof(WAVContext));
if (!wav)
return -1;
memset(wav, 0, sizeof(WAVContext));
/* format header */
fmt = start_tag(pb, "fmt ");
if (put_wav_header(pb, &s->streams[0]->codec) < 0) {
- free(wav);
+ av_free(wav);
return -1;
}
end_tag(pb, fmt);
put_flush_packet(pb);
}
- free(wav);
+ av_free(wav);
return 0;
}
return -1;
/* now we are ready: build format streams */
- st = malloc(sizeof(AVStream));
+ st = av_malloc(sizeof(AVStream));
if (!st)
return -1;
s->nb_streams = 1;