ffmpeg.git
4 years agodvbsubdec: Fix function return type
Vittorio Giovara [Fri, 2 Oct 2015 10:43:40 +0000 (12:43 +0200)]
dvbsubdec: Fix function return type

4 years agodv: Mark internal frame reference as const
Vittorio Giovara [Fri, 2 Oct 2015 10:43:39 +0000 (12:43 +0200)]
dv: Mark internal frame reference as const

Silence a warning due to frame assignment in dvenc. All uses of the
reference in dvdec are read only, except the ones in the main decoding
function, so use the frame pointer directly there.

4 years agodcadec: Always initialize return variable
Vittorio Giovara [Fri, 2 Oct 2015 10:43:44 +0000 (12:43 +0200)]
dcadec: Always initialize return variable

Silence an uninitialized warning from clang.

4 years agod3d11va: make av_d3d11va_alloc_context() available at all times
Anton Khirnov [Sun, 27 Sep 2015 18:54:01 +0000 (20:54 +0200)]
d3d11va: make av_d3d11va_alloc_context() available at all times

The public API should not depend on the build configuration.

4 years agod3d11va: check for malloc failure
Anton Khirnov [Sun, 27 Sep 2015 18:47:23 +0000 (20:47 +0200)]
d3d11va: check for malloc failure

4 years agoavutil/avstring: Inline some tiny functions
Henrik Gramner [Sat, 26 Sep 2015 20:27:36 +0000 (22:27 +0200)]
avutil/avstring: Inline some tiny functions

They're short enough that inlining them actually reduces code size due to
all the overhead associated with making a function call.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agomatroskaenc: Don't write a track language tag
John Stebbins [Fri, 25 Sep 2015 15:36:30 +0000 (08:36 -0700)]
matroskaenc: Don't write a track language tag

"language" is not an offical matroska tag.
Track languages are specified with the MATROSKA_ID_TRACKLANGUAGE ebml.
Writing the tag overrides the ebml specified language during playback with
libav and some other players.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agocheckasm: Fix the function name sorting algorithm
Henrik Gramner [Mon, 28 Sep 2015 14:50:31 +0000 (16:50 +0200)]
checkasm: Fix the function name sorting algorithm

The previous implementation was behaving incorrectly in some corner cases.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agodnxhddata: Deduplicate cid 1256 chroma table
Christophe Gisquet [Thu, 1 Oct 2015 14:54:57 +0000 (16:54 +0200)]
dnxhddata: Deduplicate cid 1256 chroma table

CID 1256 is specified as using the same table for luma and chroma,
which is the same as CID 1235 luma table. This is consistent with
the format supposedly being RGB, although most sequences seem to
actually be YCbCr-encoded.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agodnxhddata: Deduplicate dnx100 tables
Jeremy James [Thu, 1 Oct 2015 14:54:56 +0000 (16:54 +0200)]
dnxhddata: Deduplicate dnx100 tables

Tables 1258 and 1259 were not zigzagged when added, so it was not
possible to notice the equivalence.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agodnxhddata: Fix cid 1260 luma and chroma tables
Jeremy James [Thu, 1 Oct 2015 14:54:55 +0000 (16:54 +0200)]
dnxhddata: Fix cid 1260 luma and chroma tables

These table was not zigzagged when added.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agodnxhddata: Fix 10-bit DNxHD quant matrices
Joseph Artsimovich [Thu, 1 Oct 2015 15:06:26 +0000 (17:06 +0200)]
dnxhddata: Fix 10-bit DNxHD quant matrices

Convert them to zigzag order, as the rest of them are.

When I was adding support for 10-bit DNxHD, I just copy-pasted the
missing quant matrices from the spec. Now it turns out the existing
matrices in dnxhddata.c were in zigzag order. This resulted in wrong
quantization for 10-bit DNxHD. The attached patch fixes the problem by
converting 10-bit quant matrices to zigzag order.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
4 years agox264: Add option to force IDR frames
Derek Buitenhuis [Mon, 31 Aug 2015 13:34:54 +0000 (15:34 +0200)]
x264: Add option to force IDR frames

When forwarding the frame type information, by default x264 can
decide which kind of keyframe output, add an option to force it
to output IDR frames in to support use-cases such as preparing
the content for segmented streams formats.

4 years agox264: Expose the NV21 input support
Yu Xiaolei [Fri, 31 Jul 2015 22:42:15 +0000 (06:42 +0800)]
x264: Expose the NV21 input support

x264 build 147 adds the native support for NV21.

Useful to avoid additional pixel format conversion when encoding
from a wide range of capture devices, Android among those.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agohls: Check av_opt_set_dict return value as well
Luca Barbato [Wed, 30 Sep 2015 23:34:35 +0000 (01:34 +0200)]
hls: Check av_opt_set_dict return value as well

Bug-Id: CID 1320426

4 years agodcadec: make a number of samples per subband per subsubframe a named constant
Alexandra Khirnova [Fri, 18 Sep 2015 11:34:20 +0000 (13:34 +0200)]
dcadec: make a number of samples per subband per subsubframe a named constant

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agobuild: Add support for known custom allocators
Luca Barbato [Thu, 3 Sep 2015 09:55:48 +0000 (11:55 +0200)]
build: Add support for known custom allocators

Makes slightly easier to use jemalloc and tcmalloc.

The two are quite common choices for profiling and debugging.

4 years agoScreenpresso SPV1 decoder
Vittorio Giovara [Thu, 24 Sep 2015 22:36:50 +0000 (00:36 +0200)]
Screenpresso SPV1 decoder

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agolavu: Deprecate AVFrame.error[]
Vittorio Giovara [Mon, 28 Sep 2015 09:40:09 +0000 (11:40 +0200)]
lavu: Deprecate AVFrame.error[]

These field are difficult to interpret, and are provided by a single
encoder (mpegvideoenc). In general they do not belong to a structure
containing raw data only, so remove them from AVFrame.

Mpegvideoenc now uses a private field in Picture for its internal
computations.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agoconfigure: address a copy-paste typo
Vicente Olivert Riera [Tue, 29 Sep 2015 16:28:33 +0000 (17:28 +0100)]
configure: address a copy-paste typo

The correct instruction for mips32r1 is addi.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agotiny_psnr: Use the correct abs() version
Vittorio Giovara [Tue, 22 Sep 2015 11:56:48 +0000 (13:56 +0200)]
tiny_psnr: Use the correct abs() version

4 years agovf_framepack: Use av_image_copy() where appropriate
Vittorio Giovara [Tue, 22 Sep 2015 12:22:15 +0000 (14:22 +0200)]
vf_framepack: Use av_image_copy() where appropriate

This correctly adjust chroma subsampling for column interleaved mode,
and allows future high bitdepth support.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agodnxhddec: Enable frame threading
Vittorio Giovara [Sat, 26 Sep 2015 15:38:23 +0000 (17:38 +0200)]
dnxhddec: Enable frame threading

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agodnxhddec: Decode and use interlace mb flag
Christophe Gisquet [Sat, 26 Sep 2015 15:38:22 +0000 (17:38 +0200)]
dnxhddec: Decode and use interlace mb flag

This bit is 1 in some samples, and seems to coincide with interlaced
mbs and CID1260. 2008 specs do not know about it, and maintain qscale
is 11 bits. This looks oversized, but may help larger bitdepths.

Currently, it leads to an obviously incorrect qscale value, meaning
its syntax is shifted by 1. However, reading 11 bits also leads to
obviously incorrect decoding: qscale seems to be 10 bits.

However, as most profiles still have 11bits qscale, the feature is
restricted to the CID1260 profile (this flag is dependent on
a higher-level flag located in the header).

The encoder writes 12 bits of syntax, last and first bits always 0,
which is now somewhat inconsistent with the decoder, but ends up with
the same effect (progressive + reserved bit).

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agoriff: Add support for RV40 codec in AVI
Thierry Foucu [Sat, 26 Sep 2015 14:21:06 +0000 (16:21 +0200)]
riff: Add support for RV40 codec in AVI

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 years agoavconv: Make the private options discovery more manifest
Vittorio Giovara [Sun, 27 Sep 2015 14:13:01 +0000 (16:13 +0200)]
avconv: Make the private options discovery more manifest

4 years agoRevert "avconv_opt: Allow printing private options"
Vittorio Giovara [Sun, 27 Sep 2015 14:13:00 +0000 (16:13 +0200)]
Revert "avconv_opt: Allow printing private options"

This reverts commit 7bb1c1bfd22de2200743af04ebd0c7c775f56f7e.
A long existing version in the form of avconv -h decoder=h264 already
existed, and this just duplicates it.

4 years agolavc: Simplify checking quant bias option
Vittorio Giovara [Sat, 26 Sep 2015 21:00:57 +0000 (23:00 +0200)]
lavc: Simplify checking quant bias option

4 years agoavresample: Remove an unused variable
Ganesh Ajjanagadde [Sat, 26 Sep 2015 14:24:02 +0000 (16:24 +0200)]
avresample: Remove an unused variable

This fixes a -Wunused-variable warning.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
4 years agomotion_est_template: Fix undefined left shift of negative number
Ganesh Ajjanagadde [Sat, 26 Sep 2015 14:24:01 +0000 (16:24 +0200)]
motion_est_template: Fix undefined left shift of negative number

This fixes a -Wshift-negative-value warning reported with clang 3.7+.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
4 years agomlpdec: Fix a undefined left shift of negative number
Ganesh Ajjanagadde [Sat, 26 Sep 2015 14:24:00 +0000 (16:24 +0200)]
mlpdec: Fix a undefined left shift of negative number

This fixes a -Wshift-negative-value warning reported with clang 3.7+.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
4 years agolavc: Make AVPacket.duration int64, and deprecate convergence_duration
wm4 [Sat, 26 Sep 2015 16:13:55 +0000 (18:13 +0200)]
lavc: Make AVPacket.duration int64, and deprecate convergence_duration

Note that convergence_duration had another meaning, one which was in
practice never used. The only real use for it was a 64 bit replacement
for the duration field. It's better just to make duration 64 bits, and
to get rid of it.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agomips: intreadwrite: Only execute that code for mips r1 or r2
Vicente Olivert Riera [Fri, 25 Sep 2015 06:56:25 +0000 (08:56 +0200)]
mips: intreadwrite: Only execute that code for mips r1 or r2

MIPS R6 supports unaligned memory access and does not have
the load/store-left/right family of instructions.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera at imgtec.com>
Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agoconfigure: mips: Support mips r6, r2 and r1
Luca Barbato [Fri, 25 Sep 2015 06:56:25 +0000 (08:56 +0200)]
configure: mips: Support mips r6, r2 and r1

Detect the different MIPS architecture variants.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agoconfigure: Set the initial ldflags to match the cflags
Luca Barbato [Fri, 25 Sep 2015 06:56:25 +0000 (08:56 +0200)]
configure: Set the initial ldflags to match the cflags

Some gcc-based toolchain would fail to link if the abi set by the
cpuflags does not match the default.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agolibopenh264enc: Use av_log() to log messages
Gregory J. Wolfe [Wed, 9 Sep 2015 19:32:42 +0000 (15:32 -0400)]
libopenh264enc: Use av_log() to log messages

File libopenh264enc.c has been modified so that the encoder uses av_log()
to log messages (error, warning, info, etc.) instead of logging them
directly to stderr.  At the time the encoder is created, the current
libav log level is mapped to an equivalent libopenh264 log level.  This
log level, and a message logging function that invokes av_log() to
actually log messages, are then set on the encoder.

This contains further changes and simplifications by Michael Niedermayer
and Martin Storsjö.

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agoqsvdec: make ff_qsv_decode_init() static
Anton Khirnov [Wed, 5 Aug 2015 12:30:37 +0000 (14:30 +0200)]
qsvdec: make ff_qsv_decode_init() static

It is not used outside of qsvdec.c anymore.

4 years agoexamples/qsvdec: free the lavc decoder before closing MFX/VAAPI
Anton Khirnov [Tue, 11 Aug 2015 13:00:24 +0000 (15:00 +0200)]
examples/qsvdec: free the lavc decoder before closing MFX/VAAPI

lavc expects MFX to still be in a usable state on close.

4 years agoexamples/qsvdec: do not free the surfaces in the frame_free() callback
Anton Khirnov [Tue, 11 Aug 2015 12:57:07 +0000 (14:57 +0200)]
examples/qsvdec: do not free the surfaces in the frame_free() callback

Even though libmfx might not need them anymore, avcodec might still
access the surfaces. So free them separately at the end.

4 years agoqsvdec: close the MFX decoder on uninit
Anton Khirnov [Tue, 11 Aug 2015 12:52:31 +0000 (14:52 +0200)]
qsvdec: close the MFX decoder on uninit

4 years agoqsv: document AVQSVContext members
Anton Khirnov [Mon, 20 Jul 2015 12:30:07 +0000 (14:30 +0200)]
qsv: document AVQSVContext members

4 years agoqsvenc: mark the encoders as INIT_CLEANUP
Anton Khirnov [Wed, 5 Aug 2015 11:42:08 +0000 (13:42 +0200)]
qsvenc: mark the encoders as INIT_CLEANUP

Should fix some leaks on init failure.

4 years agoqsvenc: do not try to close the encoder if the session is NULL
Anton Khirnov [Wed, 5 Aug 2015 11:40:03 +0000 (13:40 +0200)]
qsvenc: do not try to close the encoder if the session is NULL

4 years agoqsvdec: list supported pixel formats
Anton Khirnov [Tue, 21 Jul 2015 07:45:05 +0000 (09:45 +0200)]
qsvdec: list supported pixel formats

This is useful for detecting QSV-enabled decoders.

4 years agolavfi: do not exclude hwaccel formats from ff_all_formats()
Anton Khirnov [Mon, 20 Jul 2015 08:07:25 +0000 (10:07 +0200)]
lavfi: do not exclude hwaccel formats from ff_all_formats()

It should be possible to pass hwaccel frames through lavfi.

4 years agocheckasm/x86: Correctly handle variadic functions
Henrik Gramner [Wed, 23 Sep 2015 15:22:38 +0000 (17:22 +0200)]
checkasm/x86: Correctly handle variadic functions

The System V ABI on x86-64 specifies that the al register contains an upper
bound of the number of arguments passed in vector registers when calling
variadic functions, so we aren't allowed to clobber it.

checkasm_fail_func() is a variadic function so also zero al before calling it.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agocheckasm: Use a self-balancing tree
Henrik Gramner [Fri, 25 Sep 2015 19:35:35 +0000 (21:35 +0200)]
checkasm: Use a self-balancing tree

Tested functions are internally kept in a binary search tree for efficient
lookups. The downside of the current implementation is that the tree quickly
becomes unbalanced which causes an unneccessary amount of comparisons between
nodes. Improve this by changing the tree into a self-balancing left-leaning
red-black tree with a worst case lookup/insertion time complexity of O(log n).

Significantly reduces the recursion depth and makes the tests run around 10%
faster overall. The relative performance improvement compared to the existing
non-balanced tree will also most likely increase as more tests are added.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agovdpau: fix constrained baseline fallback
wm4 [Sat, 26 Sep 2015 13:17:23 +0000 (15:17 +0200)]
vdpau: fix constrained baseline fallback

It appears vdpau drivers can return constrained baseline as unsupported,
even if libvdpau knows about the symbol, and the main profile is
supported.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agompegts: use avcodec_get_type() to set codec_type
wm4 [Sat, 26 Sep 2015 16:42:51 +0000 (18:42 +0200)]
mpegts: use avcodec_get_type() to set codec_type

Note that this slightly changes behavior: it sets AVMEDIA_TYPE_UNKNOWN
if the codec type is unknown. This should be ok.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agolavc: reimplement avcodec_get_type() using codec descriptors
wm4 [Sat, 26 Sep 2015 16:42:50 +0000 (18:42 +0200)]
lavc: reimplement avcodec_get_type() using codec descriptors

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agovdpau: deprecate av_vdpau_get_profile()
Rémi Denis-Courmont [Sun, 27 Sep 2015 10:49:09 +0000 (13:49 +0300)]
vdpau: deprecate av_vdpau_get_profile()

This function can intrinsically not deal with codec profile fallback
(for H.264 Constrained Baseline especially), and was made redundant
by av_vdpau_bind_context().

Signed-off-by: Anton Khirnov <anton@khirnov.net>
4 years agodxv: Improve error message
Vittorio Giovara [Tue, 22 Sep 2015 11:58:00 +0000 (13:58 +0200)]
dxv: Improve error message

4 years agodxv: Support RAW intermediate compression
Vittorio Giovara [Tue, 22 Sep 2015 11:57:59 +0000 (13:57 +0200)]
dxv: Support RAW intermediate compression

Sample-Id: boombox64.mov
Reported-by: Aarni Koskela
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agodxv: Print texture information after header parsing
Vittorio Giovara [Tue, 22 Sep 2015 11:57:58 +0000 (13:57 +0200)]
dxv: Print texture information after header parsing

4 years agodxv: Support the original first version
Vittorio Giovara [Tue, 22 Sep 2015 11:57:57 +0000 (13:57 +0200)]
dxv: Support the original first version

DXV 1.0 provided DXT1 with LZF only.

Sample-Id: Orange-Strings-07_640_DXV.mov
Reported-by: Carl Eugen Hoyos
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agodxv: Parse ancillary encoder information
Vittorio Giovara [Tue, 22 Sep 2015 11:57:56 +0000 (13:57 +0200)]
dxv: Parse ancillary encoder information

Header does not contain the number of channels, but rather the encoder
version, so rename the variable, and read the additional byte.

4 years agommal: Fix AVBufferRef usage
wm4 [Thu, 24 Sep 2015 06:49:41 +0000 (08:49 +0200)]
mmal: Fix AVBufferRef usage

AVBufferRef.data and AVPacket.data don't need to have the same value.
AVPacket could point anywhere into the buffer. Likewise, the sizes
don't need to be the same.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agommal: Remove setting extradata on input format
wm4 [Thu, 24 Sep 2015 06:49:41 +0000 (08:49 +0200)]
mmal: Remove setting extradata on input format

This works only for extradata sizes up to 128 bytes. Additionally, I
could never actually see it doing anything. The new code using
MMAL_BUFFER_HEADER_FLAG_CONFIG now takes care of this.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agommal: drop the h264 BSF
wm4 [Thu, 24 Sep 2015 06:49:41 +0000 (08:49 +0200)]
mmal: drop the h264 BSF

We can send mp4-style data directly. But for some reason, this requires
sending the extradata as buffer with MMAL_BUFFER_HEADER_FLAG_CONFIG
set. Reuse the infrastructure for sending AVPackets to do this.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agoavconv_opt: Allow printing private options
Vittorio Giovara [Mon, 14 Sep 2015 11:39:55 +0000 (13:39 +0200)]
avconv_opt: Allow printing private options

Add an allowed parameter to -h and --help avconv option to print private
options from a codec, format, or filter, named with the provided input
value.

In case multiple classes are found (eg. mov demuxer and mov muxer, or
h264 decoder and h264 demuxer) print all options from all classes.
It is possible to select the type of class to print by adding it
before the name (eg. demuxer:mov and muxer:mov, or decoder:h264and
demuxer:h264).

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agod3d11va: WindowsPhone requires a mutex around ID3D11VideoContext
Steve Lhomme [Wed, 16 Sep 2015 11:27:42 +0000 (13:27 +0200)]
d3d11va: WindowsPhone requires a mutex around ID3D11VideoContext

4 years agocheckasm: v210: Fix array overwrite
Henrik Gramner [Wed, 16 Sep 2015 12:03:01 +0000 (14:03 +0200)]
checkasm: v210: Fix array overwrite

4 years agopixfmt: Add new SMPTE color primaries and transfer characteristic values
Kevin Wheatley [Fri, 28 Aug 2015 14:20:22 +0000 (15:20 +0100)]
pixfmt: Add new SMPTE color primaries and transfer characteristic values

Appeared in ITU-T Rec H.265 10/2014.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agodcadec: set channel layout in a separate function
Alexandra Hájková [Tue, 15 Sep 2015 12:13:26 +0000 (14:13 +0200)]
dcadec: set channel layout in a separate function

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agodcadec: scan for extensions in a separate function
Alexandra Hájková [Tue, 15 Sep 2015 11:11:32 +0000 (13:11 +0200)]
dcadec: scan for extensions in a separate function

to make dca_decode_frame more readable

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agortpdec: Forward the memory failure
Luca Barbato [Wed, 16 Sep 2015 10:07:00 +0000 (12:07 +0200)]
rtpdec: Forward the memory failure

And avoid a memory leak.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agortsp: warning when max_delay reached
Eloi BAIL [Tue, 15 Sep 2015 15:38:23 +0000 (11:38 -0400)]
rtsp: warning when max_delay reached

packets are queued due to packet reordering until the queue reach its
maximal size or max delay is reached.
This commit adds a warning trace when max delay is reached.

Signed-off-by: Eloi BAIL <eloi.bail@savoirfairelinux.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agortpdec: inform jitter buffer size
Eloi BAIL [Tue, 15 Sep 2015 15:38:22 +0000 (11:38 -0400)]
rtpdec: inform jitter buffer size

This commit print as AV_LOG_VERBOSE the jitter buffer
size. It might be the default value or the value set by application.

Signed-off-by: Eloi BAIL <eloi.bail@savoirfairelinux.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agortpdec: add a trace when jitter buffer is full
Eloi BAIL [Tue, 15 Sep 2015 15:38:21 +0000 (11:38 -0400)]
rtpdec: add a trace when jitter buffer is full

This commit adds a warning trace when jitter buffer
is full. It helps to understand leading decoding issues.

Signed-off-by: Eloi BAIL <eloi.bail@savoirfairelinux.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agortpdec: Increase the max size of the jitter buffer to 500 packets
Martin Storsjö [Sat, 12 Sep 2015 14:37:09 +0000 (16:37 +0200)]
rtpdec: Increase the max size of the jitter buffer to 500 packets

Since the actual max length of the jitter buffer is restricted by
max_delay, this shouldn't harm the overall latency (assuming that
max_delay is set properly), while allowing packet reordering with
a larger number of packets (which may be required with high bitrate
video).

Signed-off-by: Martin Storsjö <martin@martin.st>
4 years agojpeg2000: Factor out prec init
Luca Barbato [Mon, 14 Sep 2015 12:50:19 +0000 (14:50 +0200)]
jpeg2000: Factor out prec init

Makes debugging a little simpler.

4 years agojpeg2000: Factor out band stepsize initialization
Luca Barbato [Fri, 11 Sep 2015 03:26:35 +0000 (05:26 +0200)]
jpeg2000: Factor out band stepsize initialization

4 years agojpeg2000: Factor out band initialization
Luca Barbato [Fri, 11 Sep 2015 03:26:35 +0000 (05:26 +0200)]
jpeg2000: Factor out band initialization

4 years agojpeg2000: Refactor decode_packets
Luca Barbato [Fri, 11 Sep 2015 02:29:49 +0000 (04:29 +0200)]
jpeg2000: Refactor decode_packets

Move the packet-specific parsers in separate functions.

4 years agojpeg2000: Templatize the frame writer
Luca Barbato [Fri, 11 Sep 2015 02:08:17 +0000 (04:08 +0200)]
jpeg2000: Templatize the frame writer

4 years agojpeg2000: Split codeblock decoding from the main tile decoding
Luca Barbato [Fri, 11 Sep 2015 01:42:26 +0000 (03:42 +0200)]
jpeg2000: Split codeblock decoding from the main tile decoding

That loop is completely stand-alone.

4 years agodoc: Add travis badge
Luca Barbato [Mon, 31 Aug 2015 11:42:06 +0000 (13:42 +0200)]
doc: Add travis badge

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agompegvideo: Drop mpegvideo.h where not needed
Vittorio Giovara [Sat, 12 Sep 2015 14:11:05 +0000 (16:11 +0200)]
mpegvideo: Drop mpegvideo.h where not needed

Add necessary headers in .c files.

4 years agompegvideo: Make sure mpegutils.h is included where needed
Vittorio Giovara [Sat, 12 Sep 2015 13:58:48 +0000 (15:58 +0200)]
mpegvideo: Make sure mpegutils.h is included where needed

4 years agompegvideo: Move macros to more appropriate headers
Vittorio Giovara [Sat, 12 Sep 2015 13:58:47 +0000 (15:58 +0200)]
mpegvideo: Move macros to more appropriate headers

MAX_MB_BYTES -> mpegutils.h
FRAME_SKIPPED -> mpegutils.h
INPLACE_OFFSET -> mpegutils.h
ME_MAP_SIZE -> motion_est.h

4 years agoavfilter: Support both syntaxes for the scale filter
Luca Barbato [Thu, 10 Sep 2015 15:05:56 +0000 (17:05 +0200)]
avfilter: Support both syntaxes for the scale filter

4 years agolavr: Remove unreachable code
Vittorio Giovara [Thu, 10 Sep 2015 15:05:55 +0000 (17:05 +0200)]
lavr: Remove unreachable code

Bug-Id: CID 1323180

4 years agobuffersrc: Improve initialization log message
Vittorio Giovara [Thu, 10 Sep 2015 15:05:54 +0000 (17:05 +0200)]
buffersrc: Improve initialization log message

Add timebase and aspect ratio information.

4 years agofate: Change global error option to private error_rate option
Vittorio Giovara [Thu, 10 Sep 2015 15:05:53 +0000 (17:05 +0200)]
fate: Change global error option to private error_rate option

4 years agofate: Move mv0 option from global to mpv private
Vittorio Giovara [Thu, 10 Sep 2015 15:05:52 +0000 (17:05 +0200)]
fate: Move mv0 option from global to mpv private

4 years agolavc: Keep idct integer option
Vittorio Giovara [Thu, 10 Sep 2015 15:05:51 +0000 (17:05 +0200)]
lavc: Keep idct integer option

"int" is useful in testing because provides accurate results across
different plaftforms, so remove it from the scheduled FF_API_UNUSED_MEMBERS
deprecation.

4 years agoavconv_filter: Use full named options
Vittorio Giovara [Thu, 10 Sep 2015 15:05:50 +0000 (17:05 +0200)]
avconv_filter: Use full named options

This introduces a slight timebase computation difference in zmbv-8bit
fate test. This is expected since the new options are double instead
of ints, and the additional precision skews the results in a non
meaningful way.

4 years agolavf: Update to the new crypto API
Vittorio Giovara [Thu, 10 Sep 2015 15:05:49 +0000 (17:05 +0200)]
lavf: Update to the new crypto API

4 years agoasfdec: add more checks for size left in asf packet buffer
Alexandra Hájková [Mon, 7 Sep 2015 10:18:17 +0000 (12:18 +0200)]
asfdec: add more checks for size left in asf packet buffer

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agolavc: Fix compilation with --disable-everything --enable-parser=mpeg4video
Hendrik Schreiber [Thu, 10 Sep 2015 11:27:05 +0000 (13:27 +0200)]
lavc: Fix compilation with --disable-everything --enable-parser=mpeg4video

4 years agolavc: Sanitize header inclusion guards
Vittorio Giovara [Thu, 10 Sep 2015 18:26:09 +0000 (20:26 +0200)]
lavc: Sanitize header inclusion guards

Fix typos, add missing comments, and remove stray lines.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agolavc: Enable side data only packets by default
Vittorio Giovara [Fri, 11 Sep 2015 15:47:29 +0000 (17:47 +0200)]
lavc: Enable side data only packets by default

Deprecate the now unused option, but temporarily retain the capability
to disable the now default behaviour.

Mention this change in the AVPacket documentation.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
4 years agotravis: fix dependencies
James Almer [Sat, 12 Sep 2015 06:23:45 +0000 (03:23 -0300)]
travis: fix dependencies

bc hasn't been needed since a982c5d74fbc7ff5bd2f2f73af61ae48e9b1bcc6

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agommaldec: fix pkt_dts determination
wm4 [Tue, 8 Sep 2015 17:42:26 +0000 (19:42 +0200)]
mmaldec: fix pkt_dts determination

This also drops setting the frame->pts field. This is usually not set by
decoders, so this would be an inconsistency that's at worst a danger to
the API user.

It appears the buffer->dts field is normally not set by the MMAL
decoder, so don't use it. If it's ever going to be set by MMAL, we
don't know whether the value will be what we want.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agolavc: allow asynchronous decoders to return correct pkt_dts values
wm4 [Fri, 11 Sep 2015 16:36:56 +0000 (18:36 +0200)]
lavc: allow asynchronous decoders to return correct pkt_dts values

The generic code in utils.c sets the AVFrame.pkt_dts field from the
packet it was supposedly decoded. This does not have to be true for a
fully asynchronous decoder like mmaldec. It could be overwritten with an
incorrect value. Even if the decoder doesn't determine the DTS (but sets
it to AV_NOPTS_VALUE), it's impossible to determine a correct value in
utils.c.

Decoders can now be marked with FF_CODEC_CAP_SETS_PKT_DTS, in which case
utils.c won't overwrite the field. The decoders are expected to set this
field (even if they only set it to AV_NOPTS_VALUE).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agommaldec: disable timestamp interpolation
wm4 [Tue, 8 Sep 2015 17:42:24 +0000 (19:42 +0200)]
mmaldec: disable timestamp interpolation

This MMAL feature fills in missing timestamps from the framerate set on
the input port. This is generally unwanted, since libavcodec decoders
merely pass through timestamps without ever "fixing" them. The framerate
is also unknown, and even the timebase doesn't have to be set.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agommaldec: fix problems with flush logic
wm4 [Tue, 8 Sep 2015 17:42:23 +0000 (19:42 +0200)]
mmaldec: fix problems with flush logic

Don't try to do a blocking wait for MMAL output if we haven't even sent
a single real packet, but only flush packets. Obviously we can't expect
to get anything back.

Additionally, don't send a flush packet to MMAL in the same case. It
appears the MMAL decoder will sometimes hang in mmal_vc_port_disable()
(called from ffmmal_close_decoder()), waiting for a reply from the GPU
which never arrives. Either MMAL disallows sending flush packets without
preceding real data, or it's a MMAL bug.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agommaldec: hack against buffering problems on broken input
wm4 [Tue, 8 Sep 2015 17:42:22 +0000 (19:42 +0200)]
mmaldec: hack against buffering problems on broken input

I can't come up with a nice way to handle this. It's hard to keep the
lock-stepped input/output in this case. You can't predict whether the
MMAL decoder will output a picture (because it's asynchronous), so
you have to assume in general that any packet could produce 0 or 1
frames. You can't continue to write input packets to the decoder,
because then you might get too many output frames, which you can't
get rid of because the lavc decoding API does not allow the decoder
to return an output frame without consuming an input frame (except
when flushing).

The ideal fix is a M:N decoding API (preferably asynchronous), which
would make this code potentially much cleaner. For now, this hack
will do.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
4 years agojpeg2000: Split codeblock decoding from the main tile decoding
Luca Barbato [Fri, 11 Sep 2015 16:19:39 +0000 (18:19 +0200)]
jpeg2000: Split codeblock decoding from the main tile decoding

That loop is completely stand-alone.

4 years agojpeg2000: Do not warn about known and skippable markers
Luca Barbato [Fri, 11 Sep 2015 01:00:36 +0000 (03:00 +0200)]
jpeg2000: Do not warn about known and skippable markers

Matches the openjpeg behaviour.