Commit Graph

42645 Commits

Author SHA1 Message Date
Anton Khirnov
18156b53f9 hevc: do not pass an entire HEVCContext into export_stream_params()
It only needs the parameter sets.
2015-07-12 18:52:02 +02:00
Anton Khirnov
650060dfb6 hevc_parser: parse and export some stream parameters
Particularly those that will be needed by the QSV decoder.
More can be added later as necessary.
2015-07-12 18:15:40 +02:00
Anton Khirnov
7f78155dc6 hevc: improve a comment
That loop does the actual full decoding, so 'parse' can be misleading.
2015-07-12 18:15:40 +02:00
Anton Khirnov
d82e1adc20 hevc: move splitting the packet into NALUs into a separate function
This function is independent of the decoding context, so we'll be able
to use it in the parser.
2015-07-12 18:15:39 +02:00
Anton Khirnov
ae05b48655 hevc: eliminate the second call to hls_nal_unit()
Also, make hls_nal_unit() work only on the provided NAL unit, without
requiring a whole decoding context.

This will allow splitting this code for reuse by the parser.
2015-07-12 18:15:39 +02:00
Anton Khirnov
d7bebe4805 hevc: skip invalid/ignored NALUs when splitting the packet
There is no need to wait until actually decoding the NALU. This will
allow to get rid of the second hls_nal_unit() call later.
2015-07-12 18:15:39 +02:00
Anton Khirnov
b11acd5732 hevc: remove HEVCContext usage from hevc_ps
Factor out the parameter sets into a separate struct and use it instead.

This will allow us to reuse this code in the parser.
2015-07-12 18:15:39 +02:00
Anton Khirnov
ab05ed4c32 mpegvideo_parser: export pixel format and dimensions 2015-07-12 18:15:39 +02:00
Andreas Cadhalpun
9f4c7397a2 hevc: check slice address length
It is used as get_bits argument and reading 0 bits doesn't make sense.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-07-12 18:15:39 +02:00
Anton Khirnov
a9a2f36130 doc: add a section about building with libmfx 2015-07-12 18:15:39 +02:00
Anton Khirnov
86eee85dad bytestream2: set the reader to the end when reading more than available
This prevents possible infinite loops with the calling code along the
lines of while (bytestream2_get_bytes_left()) { ... }, where the reader
does not advance.

CC: libav-stable@libav.org
2015-07-12 18:15:39 +02:00
Henrik Gramner
8bc67ec2c0 Checkasm: assembly testing and benchmarking tool
It provides the following features:
 * verify correctness by comparing output to the C version.
 * detect failure to save and restore clobbered callee-saved registers.
 * detect 32-bit parameters being used as if they were 64-bit in x86-64
   (the upper halves are not guaranteed to be zero - but in practice
   they very often are, which makes those bugs hard to spot otherwise).
 * easy benchmarking.

Compile by running 'make checkasm'.
Execute by running 'tests/checkasm/checkasm'.

Optional arguments are '--bench' to run benchmarks for all functions,
'--bench=<pattern>' to run benchmarks for all functions that starts with
<pattern>, and '<integer>' to seed the PRNG for reproducible results.

Contains unit tests for most h264pred functions to get started, more tests
can be added afterwards using those as a reference.

Loosely based on code from x264. Currently only supports x86 and x86-64,
but additional architectures shouldn't be too much of an obstacle to add.

Note that functions with floating point parameters or floating point
return values are not supported. Some compiler-specific features or
preprocessor hacks would likely be required to add support for that.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2015-07-12 16:39:07 +02:00
Hendrik Leppkes
796268654c asfdec: always reset packet state after seeking
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-12 13:24:23 +02:00
Andreas Cadhalpun
f1bdc23437 riff: Validate bitrate 2015-07-11 18:45:45 +02:00
Luca Barbato
c1d647b15a mp3: Make the seek more robust
Try to parse up to 4 packets to find the closest packet.

Reported-By: jan.schlueter@ofai.at
2015-07-11 18:45:45 +02:00
Luca Barbato
d80811c94e riff: Use the correct logging context 2015-07-11 18:45:44 +02:00
Luca Barbato
355864ef7a g726: Do not crash on user mistake
Properly report the sample rate as invalid

CC: libav-stable@libav.org
2015-07-11 18:45:44 +02:00
Dan Flett
87f98a2b9d fbdev: Support the RGB565 colour space.
Tested on a Raspberry Pi.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-07-11 10:15:59 +03:00
Andreas Cadhalpun
1410eeb6ea imc: Use correct position for flcoeffs2 calculation
flcoeffs2[pos] should be the log2 of flcoeffs1[pos].
flcoeffs1[0] can be 0 here, thus flcoeffs2[pos] gets set to -inf,
causing problems further down.

This seems to have been copied from imc_decode_level_coefficients in
commit 4eb4bb3 without updating the position.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-10 23:13:30 +02:00
Alexandra Hájková
872fab4a3d asfdec: Fix reading from the pipe
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-10 13:25:02 +02:00
Vittorio Giovara
67c884eb07 libvpx: Add the library header
Unbreak make checkheaders
2015-07-09 21:36:19 +02:00
Luca Barbato
461b45efd0 lavc: Add nvenc.h to the skipheader
Unbreak make checkheaders
2015-07-09 21:34:57 +02:00
Luca Barbato
84b223cc6d configure: Make the new qsv encoder depend on libmfx
Found-by: kropping
2015-07-09 00:20:27 +02:00
Henrik Gramner
d1a6cb195f x86: Serialize rdtsc in read_time()
Improves the accuracy of measurements, especially in short sections.

To quote the Intel 64 and IA-32 Architectures Software Developer's Manual:
"The RDTSC instruction is not a serializing instruction. It does not necessarily
wait until all previous instructions have been executed before reading the counter.
Similarly, subsequent instructions may begin execution before the read operation
is performed. If software requires RDTSC to be executed only after all previous
instructions have completed locally, it can either use RDTSCP (if the processor
supports that instruction) or execute the sequence LFENCE;RDTSC."

SSE2 is a requirement for lfence so only use it on SSE2-capable systems.
Prefer lfence;rdtsc over rdtscp since rdtscp is supported on fewer systems.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-09 00:10:13 +02:00
Sebastien Zwickert
40af330adf avconv: vda: Unlock the pixel buffer once it is accessed
Avoid possible issues with memmapped hardware buffers in
case VDA is not doing a conversion on behalf of the user
and make the code more proper as working example.

CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-09 00:10:13 +02:00
Luca Barbato
8fcd121b82 doc: Use the succinct syntax for the channelmap example
Mixing succinct and long syntax does not work.
2015-07-09 00:09:53 +02:00
Anton Khirnov
66acb76bb0 lavc: add Intel libmfx-based HEVC encoder 2015-07-08 23:40:11 +02:00
Anton Khirnov
3a85397e8b lavc: add Intel libmfx-based MPEG2 encoder 2015-07-08 23:39:28 +02:00
Anton Khirnov
69ab9f53f9 hevc: split bitstream unescaping to a separate file
It will be useful in the QSV HEVC encoder.
2015-07-08 23:38:32 +02:00
Anton Khirnov
fd124d8357 hevc_ps: split the code for parsing the SPS and exporting it into the context
This will be useful in the later commits, where we want to parse an SPS
without having a whole decoding context.
2015-07-08 23:36:22 +02:00
Anton Khirnov
0e7c0ec344 lavf/hevc: pad the RBSP buffer as required by the bistream reader 2015-07-08 23:36:10 +02:00
Vittorio Giovara
1761ab838c lavc: Deprecate avctx.rc_strategy
Only used by libxvid in ratecontrol module, so move it to a codec
private option.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-08 16:36:39 +01:00
Stian Selnes
02b7c63087 h261: Signal freeze picture release for intra frames
Freeze picture release should be set to 1 when we're responding to a
fast update request. For simplicity we set it for all intra frames,
including those that starts a GOP.

Fixes issue where Tandberg MXP1700 does not recover from packet loss
state since it's waiting for the freeze picture relase indication.

Bug-Id: 873
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-07 15:11:15 +02:00
Stian Selnes
dc1de0b958 h261: Set 'still image mode off' in picture header
Ref H.261 recommendation section 4.2.1.3, setting the still image flag
to 1 disables still image mode. Some decoders require this in order to
decode the bitstream as normal video.

Fixes H.261 calls to Cisco E20.

Also, reserved (aka spare) bits should be set to 1 unless specified
otherwise.

Bug-Id: 872
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-07 15:04:55 +02:00
Luca Barbato
c8b8271379 xcbgrab: Explicitly include xcb/shape.h
Found-By: Cheristheus
2015-07-06 20:00:34 +02:00
Frank Heckenbach
161a301d44 mpjpeg: Write the Content-length 2015-07-04 00:51:03 +02:00
Luca Barbato
d09b4cce21 mpjpeg: Simplify using avio_printf 2015-07-04 00:46:44 +02:00
Vittorio Giovara
f046c3b5ac lavc: Move deprecation warning disabling to files including the table
Unbreak build from 7a5902c556.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-03 21:02:50 +02:00
Vittorio Giovara
7a5902c556 lavc: Disable deprectation warnings coming from options table 2015-07-03 14:30:17 +01:00
Vittorio Giovara
832129431f lavu: Add version information for av_version_info()
Move the APIchange entry at the top.
2015-07-03 14:30:11 +01:00
Luca Barbato
80f955c908 vda: Check the correct pointer for buffer allocation
CC: libav-stable@libav.org
Found-By: kropping
2015-07-03 01:58:32 +02:00
Andreas Cadhalpun
76d4c62734 webp: Make sure enough bytes are available
Every chunk needs at least 8 bytes for chunk_type and chunk_size.
Prevent a possible infinite loop.

CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-03 01:50:09 +02:00
Alexandra Hájková
016cac75c6 asfdec: prevent the infinite loop in detect unknown_subobject
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-03 01:50:09 +02:00
Alexandra Hájková
9752d2e6cc asfdec: prevent possible memory leak in the asf_read_metadata_obj
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-03 01:50:09 +02:00
Vittorio Giovara
910247f172 lavc: Deprecate avctx.{inter,intra}_quant_bias
They are used by dnxhd and mpegvideo_enc exclusively, move them to codec
private options instead.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-02 22:37:59 +01:00
wm4
1316df7aa9 lavu: add an API function to return the Libav version string
This returns something like "v12_dev0-1332-g333a27c". This is much more
useful than the individual library versions, of which there are too
many, and which are very hard to map back to releases or git commits.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2015-07-02 23:22:53 +02:00
Janne Grunau
a31c4b2cbe fate-g2m3: disable the audio stream
The audio decoder is not in fate-g2m3 dependencies and the wma2 decoder
is probably not bit-exact since it it float based.
2015-07-01 21:42:48 +02:00
Michael Niedermayer
4e0819310e elsdec: Replace EOVERFLOW with INVALIDDATA
EOVERFLOW is not available on all platforms.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-01 16:26:42 +01:00
Janne Grunau
f91fe24e9b g2meet: force simple idct for identical results over all fate configs 2015-07-01 15:33:20 +02:00
Janne Grunau
9eec23b8a7 g2meet: use av_ceil_log2 instead of a custom function 2015-07-01 13:58:34 +02:00