mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
movenc: Use null buffers for measuring the amount of data to be written
Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
3627ce2f1d
commit
72fe16a13e
@ -2443,13 +2443,11 @@ static int mov_write_moof_tag(AVIOContext *pb, MOVMuxContext *mov, int tracks)
|
|||||||
{
|
{
|
||||||
AVIOContext *avio_buf;
|
AVIOContext *avio_buf;
|
||||||
int ret, moof_size;
|
int ret, moof_size;
|
||||||
uint8_t *buf;
|
|
||||||
|
|
||||||
if ((ret = avio_open_dyn_buf(&avio_buf)) < 0)
|
if ((ret = ffio_open_null_buf(&avio_buf)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
mov_write_moof_tag_internal(avio_buf, mov, tracks, 0);
|
mov_write_moof_tag_internal(avio_buf, mov, tracks, 0);
|
||||||
moof_size = avio_close_dyn_buf(avio_buf, &buf);
|
moof_size = ffio_close_null_buf(avio_buf);
|
||||||
av_free(buf);
|
|
||||||
return mov_write_moof_tag_internal(pb, mov, tracks, moof_size);
|
return mov_write_moof_tag_internal(pb, mov, tracks, moof_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2738,11 +2736,10 @@ static int mov_flush_fragment(AVFormatContext *s)
|
|||||||
if (i < mov->nb_streams)
|
if (i < mov->nb_streams)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if ((ret = avio_open_dyn_buf(&moov_buf)) < 0)
|
if ((ret = ffio_open_null_buf(&moov_buf)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
mov_write_moov_tag(moov_buf, mov, s);
|
mov_write_moov_tag(moov_buf, mov, s);
|
||||||
buf_size = avio_close_dyn_buf(moov_buf, &buf);
|
buf_size = ffio_close_null_buf(moov_buf);
|
||||||
av_free(buf);
|
|
||||||
for (i = 0; i < mov->nb_streams; i++)
|
for (i = 0; i < mov->nb_streams; i++)
|
||||||
mov->tracks[i].data_offset = pos + buf_size + 8;
|
mov->tracks[i].data_offset = pos + buf_size + 8;
|
||||||
|
|
||||||
@ -3348,16 +3345,13 @@ static int mov_write_header(AVFormatContext *s)
|
|||||||
static int get_moov_size(AVFormatContext *s)
|
static int get_moov_size(AVFormatContext *s)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
uint8_t *buf;
|
|
||||||
AVIOContext *moov_buf;
|
AVIOContext *moov_buf;
|
||||||
MOVMuxContext *mov = s->priv_data;
|
MOVMuxContext *mov = s->priv_data;
|
||||||
|
|
||||||
if ((ret = avio_open_dyn_buf(&moov_buf)) < 0)
|
if ((ret = ffio_open_null_buf(&moov_buf)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
mov_write_moov_tag(moov_buf, mov, s);
|
mov_write_moov_tag(moov_buf, mov, s);
|
||||||
ret = avio_close_dyn_buf(moov_buf, &buf);
|
return ffio_close_null_buf(moov_buf);
|
||||||
av_free(buf);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user