FFmpeg git repo
Go to file
Martin Storsjö 15a92e0c40 rtmp: Correctly handle the Window Acknowledgement Size packets
This swaps which field is set when the Window Acknowledgement Size
and Set Peer BW packets are received, renames the fields in
order to clarify their role further and adds verbose comments
explaining their respective roles and how well the code currently
does what it is supposed to.

The Set Peer BW packet tells the receiver of the packet (which
can be either client or server) that it should not send more data
if it already has sent more data than the specified number of bytes,
without receiving acknowledgement for them. Actually checking this
limit is currently not implemented.

In order to be able to check that properly, one can send the
Window Acknowledgement Size packet, which tells the receiver of the
packet that it needs to send Acknowledgement packets
(RTMP_PT_BYTES_READ) at least after receiving a given number of bytes
since the last Acknowledgement.

Therefore, when we receive a Window Acknowledgement Size packet,
this sets the maximum number of bytes we can receive without sending
an Acknowledgement; therefore when handling this packet we should set
the receive_report_size field (previously client_report_size).

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-02-03 09:27:41 +02:00
avbuild
compat
doc lavc: deprecate refcounted_frames field 2017-02-01 10:47:46 +01:00
libavcodec svq3: Convert to the new bitstream reader 2017-02-02 17:06:17 +01:00
libavdevice
libavfilter Mark some arrays that never change as const. 2017-02-01 10:42:59 +01:00
libavformat rtmp: Correctly handle the Window Acknowledgement Size packets 2017-02-03 09:27:41 +02:00
libavresample Mark some arrays that never change as const. 2017-02-01 10:42:59 +01:00
libavutil hwcontext_cuda: implement frames_get_constraints 2017-02-01 10:43:00 +01:00
libswscale
presets
tests
tools
.gitattributes
.gitignore
.travis.yml
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
Changelog
INSTALL
LICENSE
Makefile
README
README.md
RELEASE
avconv.c avconv: allow -b to be used with streamcopy 2017-02-01 10:42:59 +01:00
avconv.h avconv: allow -b to be used with streamcopy 2017-02-01 10:42:59 +01:00
avconv_dxva2.c
avconv_filter.c
avconv_opt.c avconv: allow -b to be used with streamcopy 2017-02-01 10:42:59 +01:00
avconv_qsv.c
avconv_vaapi.c
avconv_vda.c
avconv_vdpau.c
avplay.c
avprobe.c
cmdutils.c
cmdutils.h
configure configure: Add require_cpp_condition() convenience function 2017-02-02 17:49:51 +01:00

README.md

Libav

Build Status

Libav is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.

Libraries

  • libavcodec provides implementation of a wider range of codecs.
  • libavformat implements streaming protocols, container formats and basic I/O access.
  • libavutil includes hashers, decompressors and miscellaneous utility functions.
  • libavfilter provides a mean to alter decoded Audio and Video through chain of filters.
  • libavdevice provides an abstraction to access capture and playback devices.
  • libavresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • avconv is a command line toolbox to manipulate, convert and stream multimedia content.
  • avplay is a minimalistic multimedia player.
  • avprobe is a simple analisys tool to inspect multimedia content.
  • Additional small tools such as aviocat, ismindex and qt-faststart.

Documentation

The offline documentation is available in the doc/ directory.

The online documentation is available in the main website and in the wiki.

Examples

Conding examples are available in the doc/example directory.

License

Libav codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.