[FFmpeg-devel] FFmpeg 3.5 / 4.0

wm4 nfxjfg at googlemail.com
Thu Apr 19 18:05:30 EEST 2018

On Thu, 19 Apr 2018 17:01:56 +0200
Nicolas George <george at nsup.org> wrote:

> James Almer (2018-04-19):
> > It would have not been backwards compatible in such scenario to load at
> > runtime an hypotetical 3.4.x lavf library with that change in an
> > application that was built against 3.3.x or older. Regardless of 0 being
> > defined as EOF or not in documentation, the behavior of one library
> > would have not been the same as the other, at least as i said above,
> > without the compat change you eventually committed.  
> I did not remember the compat code was added afterwards. Anyway, it
> excludes packet callbacks on purpose.
> The thing is, we could NOT fix the initial bug (EOF caused by empty UDP
> packets, reported by an user). It just was not possible. Apart from
> leaving the bug, there were two options to fix this:
> - break empty packet for all applications and all packets protocols, or
> - break packet callbacks returning 0 for EOF.

- add a flag that controls the wanted behavior

- return a special error code for 0 sized packets which users can treat
  as non-fatal (seems justified for such an obscure corner case)

> Since empty packets are legitimate, and even used in a few multimedia
> protocols, while callbacks returning 0 are using an undocumented and
> illogical feature, there was little doubt about which one to break.

There's still no way to use that via API (if I read
retry_transfer_wrapper() and all the glue code correctly).

More information about the ffmpeg-devel mailing list