[FFmpeg-devel] [PATCH 3/3] lavf/movenc: add faststart option.

Clément Bœsch ubitux at gmail.com
Wed Sep 26 17:45:56 CEST 2012


On Mon, Sep 24, 2012 at 09:58:07AM +0200, Clément Bœsch wrote:
> On Sun, Sep 23, 2012 at 03:55:10AM +0200, Michael Niedermayer wrote:
> > On Thu, Sep 20, 2012 at 10:47:20AM +0200, Clément Bœsch wrote:
> > > From: Clément Bœsch <clement.boesch at smartjog.com>
> > > 
> > > ---
> > >  libavformat/movenc.c |  125 +++++++++++++++++++++++++++++++++++++++++++++++---
> > >  libavformat/movenc.h |    3 +-
> > >  2 files changed, 121 insertions(+), 7 deletions(-)
> > 
> > this will need a fate test
> > 
> 
> Added a commit on top of the patch set, see attached.
> 
> > 
> > [...]
> > > +static int shift_data(AVFormatContext *s)
> > > +{
> > > +    int ret, moov_size;
> > > +    MOVMuxContext *mov = s->priv_data;
> > > +    int64_t pos, pos_end = avio_tell(s->pb);
> > > +    uint8_t *buf, *read_buf[2];
> > > +    int read_buf_id = 0;
> > > +    int read_size[2];
> > > +    AVIOContext *read_pb;
> > > +
> > > +    moov_size = compute_moov_size(s);
> > > +    if (moov_size < 0)
> > > +        return moov_size;
> > > +
> > > +    buf = av_malloc(moov_size * 2);
> > > +    if (!buf)
> > > +        return AVERROR(ENOMEM);
> > > +    read_buf[0] = buf;
> > > +    read_buf[1] = buf + moov_size;
> > > +
> > > +    /* Shift the data: the AVIO context of the output can only be used for
> > > +     * writing, so we re-open the same output, but for reading. It also avoids
> > > +     * a read/seek/write/seek back and forth. */
> > > +    avio_flush(s->pb);
> > > +    ret = avio_open(&read_pb, s->filename, AVIO_FLAG_READ);
> > > +    if (ret < 0) {
> > > +        av_log(s, AV_LOG_ERROR, "Unable to re-open %s output file for "
> > > +               "the second pass (faststart)\n", s->filename);
> > > +        return ret;
> > > +    }
> > 
> > memleak (buf)
> > 
> 
> Fixed.
> 
> > otherwise things look nice from a quick look
> > 
> 
> I'll give 3 days before pushing unless you want that feature in 0.12.
> 
[...]

I'll push the patch set tomorrow if I see no other comment.

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120926/9cb073f6/attachment.asc>


More information about the ffmpeg-devel mailing list