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 build: Add version numbers to "Requires" entries in pkg-config files 2016-12-28 17:41:54 +01:00
compat compat/atomics: add typecasts in atomic_compare_exchange_strong() 2016-12-08 15:53:58 -05:00
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 build: Generate pkg-config files from Make and not from configure 2016-12-22 12:30:54 +01:00
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 swscale-test: const correctness for pointer variable 2017-01-24 13:03:57 +01:00
presets
tests fate: Skip the checkasm test if CONFIG_STATIC is disabled 2017-01-09 13:57:02 +02:00
tools build: Move entries related to building TOOLS to a subdirectory Makefile 2016-12-07 11:02:31 +01:00
.gitattributes
.gitignore build: Move build-system-related helper files to a separate subdirectory 2016-12-22 11:07:50 +01:00
.travis.yml travis: Enable OSX integration 2015-11-17 16:51:00 +01:00
avconv_dxva2.c avconv_dxva2: add a profile check for hevc 2016-07-20 16:33:09 +02:00
avconv_filter.c avconv: make sure the filtergraph is freed on init failure 2016-10-02 11:41:45 +02:00
avconv_opt.c avconv: allow -b to be used with streamcopy 2017-02-01 10:42:59 +01:00
avconv_qsv.c avconv_qsv: use the actual pixel format provided by lavc 2016-07-22 19:08:12 +02:00
avconv_vaapi.c avconv_vaapi: Convert to use hw_frames_ctx only 2016-08-30 22:16:01 +01:00
avconv_vda.c avconv: vda: Unlock the pixel buffer once it is accessed 2015-07-09 00:10:13 +02:00
avconv_vdpau.c avconv_vdpau: use the hwcontext device creation API 2016-05-26 15:40:34 +02:00
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
avplay.c Replace cmdutils_common_opts.h by a macro 2017-01-12 11:42:21 +01:00
avprobe.c Replace cmdutils_common_opts.h by a macro 2017-01-12 11:42:21 +01:00
Changelog vaapi_encode: Add VP8 support 2017-01-30 23:03:46 +00:00
cmdutils.c cmdutils: update copyright year to 2017 2017-01-01 17:10:11 -05:00
cmdutils.h Replace cmdutils_common_opts.h by a macro 2017-01-12 11:42:21 +01:00
configure configure: Add require_cpp_condition() convenience function 2017-02-02 17:49:51 +01:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
INSTALL
LICENSE Remove the legacy X11 screen grabber 2016-07-29 19:03:10 +02:00
Makefile Replace cmdutils_common_opts.h by a macro 2017-01-12 11:42:21 +01:00
README
README.md doc: Add travis badge 2015-09-14 00:19:08 +02:00
RELEASE Make the RELEASE file match with the most recent tag 2016-10-14 13:52:51 -04:00

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.