[FFmpeg-devel] [PATCH 1/4] ffmpeg: Flush output BSFs when encode reaches EOF

Michael Niedermayer michael at niedermayer.cc
Sat Jun 24 13:29:59 EEST 2017


On Mon, Jun 19, 2017 at 10:48:15PM +0100, Mark Thompson wrote:
> On 19/06/17 16:32, Michael Niedermayer wrote:
> > On Sun, Jun 18, 2017 at 11:09:23PM +0100, Mark Thompson wrote:
> >> Before this, output bitstream filters would never see EOF and
> >> therefore would not be able to flush any delayed packets.
> >>
> >> (cherry picked from commit f64d1100a54d12c78ce436181bb64229c56da6b3)
> >> ---
> >>  ffmpeg.c | 30 +++++++++++++++++++-----------
> >>  1 file changed, 19 insertions(+), 11 deletions(-)
> >>
> >> diff --git a/ffmpeg.c b/ffmpeg.c
> >> index 6170bd453c..f265980fdd 100644
> >> --- a/ffmpeg.c
> >> +++ b/ffmpeg.c
> >> @@ -814,7 +814,8 @@ static void close_output_stream(OutputStream *ost)
> >>      }
> >>  }
> >>  
> >> -static void output_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost)
> >> +static void output_packet(OutputFile *of, AVPacket *pkt,
> >> +                          OutputStream *ost, int eof)
> >>  {
> >>      int ret = 0;
> >>  
> > 
> > please document why pkt==NULL is not used for eof detection and what
> > the functionn does with pkt. The caller must be aware of it, if it is
> > not just used as unchanged input that is written
> 
> """
> /*
>  * Send a single packet to the output, applying any bitstream filters
>  * associated with the output stream.  This may result in any number
>  * of packets actually being written, depending on what bitstream
>  * filters are applied.  The supplied packet is consumed and will be
>  * empty when this function returns.
>  *
>  * If eof is set, instead indicate EOF to all bitstream filters and
>  * therefore flush any delayed packets to the output.  An empty packet
>  * must be supplied in this case.
>  */
> static void output_packet(OutputFile *of, AVPacket *pkt,
>                           OutputStream *ost, int eof)

LGTM

maybe "empty packet" could be clarified.

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No great genius has ever existed without some touch of madness. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20170624/a2d6c552/attachment.sig>


More information about the ffmpeg-devel mailing list