FFmpeg git repo
Go to file
Martin Storsjö 4f6cd883f0 rtpenc: Don't set max_frames_per_packet based on the packet frame size or frame rate
Instead check the timestamps while muxing, to avoid buffering a
too long timestamp range into one single packet.

This makes the AMR and AAC packetization slightly less efficient,
since we set a possibly unnecessarily high max_frames_per_packet.
(These packetizers end up doing a memmove of the TOC bytes if
sending a packet before max_frames_per_packet is achieved, and
we end up setting max_frames_per_packet to a value that should
be high enough for most uses.)

All packetizers that use max_frames_per_packet now set it either
to a default value, or to a value calculated based on other
parameters, so none of them rely on the previous default setting.

For iLBC, copy one frame at a time, to allow checking the timestamp
range for each of them - basically doing potentially multiple
loops to simplify the code instead of trying to calculate the
number of frames to buffer while honoring s1->max_delay.

This is in preparation for reducing the coupling between libavformat
and libavcodec, by not having the muxers use the encoder field
frame_size (which may not be available during e.g. stream copy).

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-02-28 22:54:31 +02:00
compat
doc Add a QSV decoding example. 2015-02-28 21:51:24 +01:00
libavcodec avcodec/utils: use correct printf specifier in ff_set_sar 2015-02-28 21:51:24 +01:00
libavdevice x11grab: Unbreak building 2015-02-28 21:51:24 +01:00
libavfilter graphparser: Check av_get_token() memory error 2015-02-17 11:27:41 -05:00
libavformat rtpenc: Don't set max_frames_per_packet based on the packet frame size or frame rate 2015-02-28 22:54:31 +02:00
libavresample libavresample: NEON optimized FIR audio resampling 2015-02-21 22:08:39 +02:00
libavutil libavutil: Add ARM av_clip_intp2_arm 2015-02-21 00:54:40 +01:00
libswscale swscale: Check memory allocations 2015-02-17 12:16:43 -05:00
presets
tests fate: Rename fate-dts test to fate-dca-core 2015-02-23 16:26:32 +01:00
tools
.gitattributes
.gitignore
arch.mak
avconv_dxva2.c
avconv_filter.c
avconv_opt.c avconv: Check rc_override memory allocation 2015-02-17 11:27:41 -05:00
avconv_vda.c
avconv_vdpau.c
avconv.c
avconv.h
avplay.c avplay: Check format allocation inside decode_thread() 2015-02-17 11:27:41 -05:00
avprobe.c
Changelog libavformat: add T.140 RTP depacketization (RFC 4103) 2015-02-24 16:19:44 +02:00
cmdutils_common_opts.h
cmdutils.c
cmdutils.h
common.mak
configure Add a QSV decoding example. 2015-02-28 21:51:24 +01:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
INSTALL
library.mak
LICENSE
Makefile
README
README.md
RELEASE
version.sh

Libav

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.