OSDN Git Service

android-x86/external-ffmpeg.git
8 years agotiffenc: Check zlib support for deflate option during initialization
Vittorio Giovara [Mon, 27 Jun 2016 00:08:54 +0000 (20:08 -0400)]
tiffenc: Check zlib support for deflate option during initialization

This converts a misleading error about an option not found to a more
meaningful one.

8 years agotiffenc: Check av_pix_fmt_desc_get() return value
Vittorio Giovara [Mon, 27 Jun 2016 00:08:55 +0000 (20:08 -0400)]
tiffenc: Check av_pix_fmt_desc_get() return value

8 years agotargaenc: Move size check to initialization function
Vittorio Giovara [Mon, 27 Jun 2016 00:08:53 +0000 (20:08 -0400)]
targaenc: Move size check to initialization function

In case of bogus input, fail early at codec initialization, rather than
at the encode function.

8 years agorle: K&R formatting cosmetics
Vittorio Giovara [Mon, 27 Jun 2016 00:08:56 +0000 (20:08 -0400)]
rle: K&R formatting cosmetics

8 years agobuild: Drop unnecessary libavcodec <-> libavformat object dependencies
Diego Biurrun [Mon, 27 Jun 2016 14:21:47 +0000 (16:21 +0200)]
build: Drop unnecessary libavcodec <-> libavformat object dependencies

8 years agobuild: Move MP2 muxer declaration away from MP3 muxer code
Diego Biurrun [Tue, 28 Jun 2016 11:53:29 +0000 (13:53 +0200)]
build: Move MP2 muxer declaration away from MP3 muxer code

The MP2 muxer uses none of the code of the MP3 muxer.

8 years agocheckasm: hevc: Iterate over features first, then over bitdepths
Martin Storsjö [Tue, 28 Jun 2016 20:58:04 +0000 (23:58 +0300)]
checkasm: hevc: Iterate over features first, then over bitdepths

This avoids listing the same feature multiple times in the
test output. Previously the output contained something like this:

SSE2:
 - hevc_mc.qpel              [OK]
 - hevc_mc.epel              [OK]
 - hevc_mc.unweighted_pred   [OK]
 - hevc_mc.qpel              [OK]
 - hevc_mc.epel              [OK]
 - hevc_mc.unweighted_pred   [OK]

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agobuild: Move ff_mpeg12_frame_rate_tab to a separate file
Diego Biurrun [Mon, 27 Jun 2016 14:09:00 +0000 (16:09 +0200)]
build: Move ff_mpeg12_frame_rate_tab to a separate file

It is also used by the Dirac parsing code.

8 years agobuild: Add a new component for H.264 parsing code
Diego Biurrun [Tue, 28 Jun 2016 08:24:05 +0000 (10:24 +0200)]
build: Add a new component for H.264 parsing code

This fixes standalone compilation of the SVQ3 decoder, which had
incomplete dependencies related to H.264 parsing.

8 years agoffv1: Report additional bitstream information in verbose mode
Luca Barbato [Fri, 24 Jun 2016 15:38:33 +0000 (17:38 +0200)]
ffv1: Report additional bitstream information in verbose mode

Useful to inspect samples.

8 years agoffv1: Remove version 2 and mark version 3 as non-experimental
Luca Barbato [Sat, 25 Jun 2016 12:37:59 +0000 (14:37 +0200)]
ffv1: Remove version 2 and mark version 3 as non-experimental

The encoder produces bitstream compatible with the current specification
and version 2 is set as reserved (non-standardizable).

8 years agofate: Add test for webp
Diego Biurrun [Thu, 23 Jun 2016 15:05:42 +0000 (17:05 +0200)]
fate: Add test for webp

8 years agocheckasm: h264dsp: Move the x and y variables into the randomize_buffer macro
Martin Storsjö [Mon, 27 Jun 2016 19:24:15 +0000 (22:24 +0300)]
checkasm: h264dsp: Move the x and y variables into the randomize_buffer macro

This avoids the risk of accidentally clobbering such variables outside
of the macro if the same variables are used there.

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agocheckasm: h264dsp: Initialize the padding area
Martin Storsjö [Mon, 27 Jun 2016 19:22:21 +0000 (22:22 +0300)]
checkasm: h264dsp: Initialize the padding area

This fixes valgrind warnings about conditional jumps based on
uninitialized data (even though the uninitialized data only ever
was compared with a direct copy of the same uninitialized data).

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agoAdd an OpenH264 decoder wrapper
Martin Storsjö [Thu, 23 Jun 2016 21:58:17 +0000 (00:58 +0300)]
Add an OpenH264 decoder wrapper

While it is less featureful (and slower) than the built-in H264
decoder, one could potentially want to use it to take advantage
of the cisco patent license offer.

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agomovenc: Apply offsets on timestamps when peeking into interleaving queues
Martin Storsjö [Fri, 24 Jun 2016 20:38:54 +0000 (23:38 +0300)]
movenc: Apply offsets on timestamps when peeking into interleaving queues

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agoqsvdec_hevc: add the UID of the HEVC HW decoder plugin
Anton Khirnov [Wed, 22 Jun 2016 10:03:22 +0000 (12:03 +0200)]
qsvdec_hevc: add the UID of the HEVC HW decoder plugin

8 years agoqsvdec_hevc: fix a variable name
Anton Khirnov [Wed, 22 Jun 2016 10:00:48 +0000 (12:00 +0200)]
qsvdec_hevc: fix a variable name

hevcenc -> hevcdec, this is a _decoder_ plugin.

8 years agohwcontext_vaapi: allow transfers to/from any size of sw frame
Mark Thompson [Fri, 15 Apr 2016 09:58:51 +0000 (10:58 +0100)]
hwcontext_vaapi: allow transfers to/from any size of sw frame

The hw frame used as reference has an attached size but it need not
match the actual size of the surface, so enforcing that the sw frame
used in copying matches its size exactly is not useful.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
8 years agovf_hwdownload: allocate the destination frame for the pool size
Anton Khirnov [Fri, 15 Apr 2016 08:44:02 +0000 (10:44 +0200)]
vf_hwdownload: allocate the destination frame for the pool size

The reasoning is the same as for the previous commit.

8 years agohwcontext: allocate the destination frame for the pool size
Anton Khirnov [Fri, 15 Apr 2016 08:44:02 +0000 (10:44 +0200)]
hwcontext: allocate the destination frame for the pool size

The source frame may be cropped, so that its dimensions are smaller than
the pool dimensions. The transfer_data API requires the allocated size
of the destination frame to be the same as the pool size.

8 years agohwcontext: clarify the behaviour of transfer_data() for cropped frames
Anton Khirnov [Sat, 25 Jun 2016 12:48:47 +0000 (14:48 +0200)]
hwcontext: clarify the behaviour of transfer_data() for cropped frames

8 years agoavconv: restructure sending EOF to filters
Anton Khirnov [Mon, 27 Jun 2016 17:03:42 +0000 (19:03 +0200)]
avconv: restructure sending EOF to filters

Be more careful when an input stream encounters EOF when its filtergraph
has not been configured yet. The current code would immediately mark the
corresponding output streams as finished, while there may still be
buffered frames waiting for frames to appear on other filtergraph
inputs.

This should fix the random FATE failures for complex filtergraph tests
after a3a0230a9870b9018dc7415ae5872784d524cfe5

8 years agoavconv: move flushing the queued frames to configure_filtergraph()
Anton Khirnov [Mon, 27 Jun 2016 16:59:23 +0000 (18:59 +0200)]
avconv: move flushing the queued frames to configure_filtergraph()

This is a more appropriate place for it, and will also be useful in the
following commit.

8 years agooptions_table: Add aliases for color properties
Vittorio Giovara [Tue, 21 Jun 2016 14:22:59 +0000 (10:22 -0400)]
options_table: Add aliases for color properties

All option names now match the ones provided by the av_color_*_name().

8 years agopixdesc: Fix AVCOL_TRC_BT2020_12 name
Vittorio Giovara [Tue, 21 Jun 2016 14:22:58 +0000 (10:22 -0400)]
pixdesc: Fix AVCOL_TRC_BT2020_12 name

8 years agopixdesc: Add aliases to SMPTE color properties
Vittorio Giovara [Tue, 21 Jun 2016 14:22:57 +0000 (10:22 -0400)]
pixdesc: Add aliases to SMPTE color properties

Drop ST from names and symbols, it does not add anything distinctive or
descriptive.

8 years agovaapi_encode: Maintain a pool of bitstream output buffers
Mark Thompson [Sun, 5 Jun 2016 16:18:04 +0000 (17:18 +0100)]
vaapi_encode: Maintain a pool of bitstream output buffers

Previously we would allocate a new one for every frame.  This instead
maintains an AVBufferPool of them to use as-needed.

Also makes the maximum size of an output buffer adapt to the frame
size - the fixed upper bound was a bit too easy to hit when encoding
large pictures at high quality.

8 years agoavconv: Remove hw_device_ctx output filter reinit hack
Mark Thompson [Thu, 23 Jun 2016 00:40:04 +0000 (01:40 +0100)]
avconv: Remove hw_device_ctx output filter reinit hack

Not needed any more because we no longer have any useful case which
will reinitialise with hardware frames here.

8 years agolibavcodec: fix constness in clobber test avcodec_open2() wrappers
Clément Bœsch [Sat, 25 Jun 2016 11:41:13 +0000 (13:41 +0200)]
libavcodec: fix constness in clobber test avcodec_open2() wrappers

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agoavconv_qsv: use the device creation API
Anton Khirnov [Sun, 22 May 2016 07:40:46 +0000 (09:40 +0200)]
avconv_qsv: use the device creation API

8 years agoavconv: pass the hwaccel frames context to the decoder
Anton Khirnov [Fri, 27 May 2016 10:54:48 +0000 (12:54 +0200)]
avconv: pass the hwaccel frames context to the decoder

8 years agoavconv: init filtergraphs only after we have a frame on each input
Anton Khirnov [Fri, 27 May 2016 10:14:33 +0000 (12:14 +0200)]
avconv: init filtergraphs only after we have a frame on each input

This makes sure the actual stream parameters are used, which is
important mainly for hardware decoding+filtering cases, which would
previously require various weird workarounds to handle the fact that a
fake software graph has to be constructed, but never used.
This should also improve behaviour in rare cases where
avformat_find_stream_info() does not provide accurate information.

8 years agoavconv: do packet ts rescaling in write_packet()
Anton Khirnov [Fri, 27 May 2016 10:04:29 +0000 (12:04 +0200)]
avconv: do packet ts rescaling in write_packet()

This will be useful in the following commit, after which the muxer
timebase is not always available when encoding.

8 years agoavconv: decouple configuring filtergraphs and setting output parameters
Anton Khirnov [Mon, 23 May 2016 12:09:08 +0000 (14:09 +0200)]
avconv: decouple configuring filtergraphs and setting output parameters

Currently, a filtergraph will pull in the output constraints from its
corresponding decoder context, which breaks proper layering. Instead,
explicitly send the constaints on the output parameters to the
filtergraph.

This is similar to what is done for filtergraph inputs in
30ab4c51a180610d9f1720c75518d763515c0d9f

8 years agoavconv: factor out initializing stream parameters for encoding
Anton Khirnov [Mon, 23 May 2016 07:37:10 +0000 (09:37 +0200)]
avconv: factor out initializing stream parameters for encoding

Setting the filter input parameters is moved to init_input_stream(),
so that it is done before the decoder is opened, potentially overwriting
the information from avformat_find_stream_info() with less accurate
data.

This commit temporarily disables QSV transcoding with hw frames. The
functionality will be re-added in the following commits.

8 years agoavconv: decouple configuring filtergraphs and setting input parameters
Anton Khirnov [Mon, 23 May 2016 12:09:08 +0000 (14:09 +0200)]
avconv: decouple configuring filtergraphs and setting input parameters

Currently, calling configure_filtergraph() will pull in the input
parameters from the corresponding decoder context. This has the
following disadvantages:
- the decoded frame is a more proper source for this information
- a filter accessing decoder data breaks proper layering

Add functions for explicitly sending the input stream parameters to a
filtergraph input - currently from a frame and a decoder. The decoder
one will be dropped in future commits after some more restructuring.

8 years agoavconv: buffer the packets written while the muxer is not initialized
Anton Khirnov [Mon, 23 May 2016 08:48:26 +0000 (10:48 +0200)]
avconv: buffer the packets written while the muxer is not initialized

8 years agoavconv: explicitly postpone writing the header until all streams are initialized
Anton Khirnov [Mon, 23 May 2016 07:19:25 +0000 (09:19 +0200)]
avconv: explicitly postpone writing the header until all streams are initialized

This should have no practical effect for now, but will make a difference
in the following commits.

8 years agolavfi: set the link hwframes context before configuring the dst input
Anton Khirnov [Tue, 21 Jun 2016 17:39:51 +0000 (19:39 +0200)]
lavfi: set the link hwframes context before configuring the dst input

The destination filter might expect the hw frames context to be already
set (this is the case e.g. for hwdownload).

8 years agoomx: Don't return > 0 from omx_encode_frame
Martin Storsjö [Thu, 23 Jun 2016 22:13:16 +0000 (01:13 +0300)]
omx: Don't return > 0 from omx_encode_frame

The encode function is supposed to just return 0 on success.
This stems from a mixup with the return value of decode functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agolibopenh264enc: Fix inconsistent whitespace
Martin Storsjö [Thu, 23 Jun 2016 22:06:12 +0000 (01:06 +0300)]
libopenh264enc: Fix inconsistent whitespace

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agomsmpeg4: Remove commented-out debug logging code
Diego Biurrun [Thu, 23 Jun 2016 12:43:45 +0000 (14:43 +0200)]
msmpeg4: Remove commented-out debug logging code

8 years agomsmpeg4: Remove some broken, commented-out cruft
Diego Biurrun [Thu, 23 Jun 2016 12:36:37 +0000 (14:36 +0200)]
msmpeg4: Remove some broken, commented-out cruft

8 years agoh264: Eliminate unused but set variable
Diego Biurrun [Tue, 21 Jun 2016 11:24:41 +0000 (13:24 +0200)]
h264: Eliminate unused but set variable

libavcodec/h264_slice.c:1384:9: warning: variable 'droppable' set but not used

8 years agolibrtmp: Avoid an infiniloop setting connection arguments
Luca Barbato [Wed, 22 Jun 2016 04:36:31 +0000 (06:36 +0200)]
librtmp: Avoid an infiniloop setting connection arguments

The exit condition was missing.

CC: libav-stable@libav.org
8 years agohwcontext_vaapi: Return all formats for constraints without config
Mark Thompson [Sat, 18 Jun 2016 13:10:13 +0000 (14:10 +0100)]
hwcontext_vaapi: Return all formats for constraints without config

No longer make a dummy device configuration to query.  Instead, just
return everything we recognise from the whole format list.  Also
change the device setup code to query that list only, rather than
intersecting it with the constraint output.

This makes hwupload more usable on mesa/gallium where the video
processor only declares support for RGB formats, making it unable to
deal with YUV formats before this patch.  It might introduce some
different trickier failures in the internal upload/download code
because the set of allowed formats there has changed, though I didn't
find any obvious regressions with i965.

8 years agovaapi_encode: Fix fallback when input does not match any format
Mark Thompson [Sat, 18 Jun 2016 12:05:23 +0000 (13:05 +0100)]
vaapi_encode: Fix fallback when input does not match any format

Just a typo.  Add a comment to make it clearer what it's doing.

8 years agodxva2_h264: Remove an unused variable
Martin Storsjö [Tue, 21 Jun 2016 11:13:40 +0000 (14:13 +0300)]
dxva2_h264: Remove an unused variable

This was introduced by mistake in 39cdbb12aa214 (only one of the
added variables were really needed).

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agocheckasm: Issue emms after benchmarking functions
Martin Storsjö [Tue, 21 Jun 2016 11:00:01 +0000 (14:00 +0300)]
checkasm: Issue emms after benchmarking functions

The functions may not clean up properly after using MMX
registers. For the normal testing calls, the checkasm_checked_call
functions will do the cleanup (and check that functions that
should clean up do it as well), but when benchmarking functions
that don't clean up, we don't currently properly clean up at all.

This causes issues if a benchmarked function is followed by testing
of a function that is supposed to not clobber the MMX/FPU state but
doesn't touch it at all.

Signed-off-by: Martin Storsjö <martin@martin.st>
8 years agoUse AVFrame.pts instead of deprecated pkt_pts.
Anton Khirnov [Sun, 20 Mar 2016 06:51:11 +0000 (07:51 +0100)]
Use AVFrame.pts instead of deprecated pkt_pts.

8 years agolavc: export the timestamps when decoding in AVFrame.pts
Anton Khirnov [Sat, 19 Mar 2016 20:45:24 +0000 (21:45 +0100)]
lavc: export the timestamps when decoding in AVFrame.pts

Currently it's exported as AVFrame.pkt_pts, which is also the only use
for that field. The reason it is done like this is that lavc used to
export various codec-specific "timing" information in AVFrame.pts, which
is not done anymore.

Since it is confusing to the callers to have a separate field which is
used only for decoder timestamps and nothing else, deprecate pkt_pts and
use just AVFrame.pts everywhere.

8 years agolavfi: add a QSV scaling filter
Anton Khirnov [Sat, 26 Mar 2016 11:39:58 +0000 (12:39 +0100)]
lavfi: add a QSV scaling filter

8 years agoqsvenc: support getting the session from an AVHWFramesContext
Anton Khirnov [Sun, 12 Jun 2016 18:45:02 +0000 (20:45 +0200)]
qsvenc: support getting the session from an AVHWFramesContext

8 years agoqsvdec: support getting the session from an AVHWFramesContext
Anton Khirnov [Fri, 27 May 2016 11:23:19 +0000 (13:23 +0200)]
qsvdec: support getting the session from an AVHWFramesContext

8 years agohwcontext: add a QSV implementation
Anton Khirnov [Wed, 13 Jan 2016 13:25:58 +0000 (14:25 +0100)]
hwcontext: add a QSV implementation

8 years agoqsvdec: move reading the user-provided session to qsv_decode_init()
Anton Khirnov [Sat, 21 May 2016 16:26:40 +0000 (18:26 +0200)]
qsvdec: move reading the user-provided session to qsv_decode_init()

This is a more appropriate place for it.

8 years agolavc: allow using AVCodecContext.hw_frames_ctx for decoding
Anton Khirnov [Mon, 9 May 2016 19:40:08 +0000 (21:40 +0200)]
lavc: allow using AVCodecContext.hw_frames_ctx for decoding

For now it will only be used by the default get_buffer2 callback for
allocating hw frames.

8 years agotruemotion2rt: Use ff_set_dimensions
Vittorio Giovara [Tue, 21 Jun 2016 13:11:32 +0000 (09:11 -0400)]
truemotion2rt: Use ff_set_dimensions

8 years agopixdesc: Add new SMPTE 431, 432, and 2085 color properties
Vittorio Giovara [Wed, 15 Jun 2016 18:25:04 +0000 (14:25 -0400)]
pixdesc: Add new SMPTE 431, 432, and 2085 color properties

Appeared in H.264 2016/02.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
8 years agopixfmt: Add ARIB STD-B76 color transfer characteristic
Neil Birkbeck [Wed, 15 Jun 2016 18:25:00 +0000 (14:25 -0400)]
pixfmt: Add ARIB STD-B76 color transfer characteristic

Adding hybrid log-gamma (https://en.wikipedia.org/wiki/Hybrid_Log-Gamma)
based on the standardization in ARIB STD-B67:
http://www.arib.or.jp/english/html/overview/doc/2-STD-B67v1_0.pdf

The choice of enum value of 18 is consistent with HEVC:
http://phenix.it-sudparis.eu/jct/doc_end_user/current_document.php?id=10481

And also with latest proposal for color format in mkv:
https://mailarchive.ietf.org/arch/search/?email_list=cellar&gbt=1&q=Colour+Format+proposal

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
8 years agoavconv: factor out initializing stream parameters for streamcopy
Anton Khirnov [Mon, 23 May 2016 07:37:10 +0000 (09:37 +0200)]
avconv: factor out initializing stream parameters for streamcopy

8 years agoavconv: initialize output framerate earlier
Anton Khirnov [Mon, 23 May 2016 14:52:28 +0000 (16:52 +0200)]
avconv: initialize output framerate earlier

This will be needed in the following commits.

8 years agoavconv: do not set encoder options when streamcopy is used
Anton Khirnov [Mon, 23 May 2016 07:29:01 +0000 (09:29 +0200)]
avconv: do not set encoder options when streamcopy is used

8 years agoavconv: refactor selecting an encoder
Anton Khirnov [Mon, 23 May 2016 05:38:58 +0000 (07:38 +0200)]
avconv: refactor selecting an encoder

Fail immediately if automatic encoder selection failed. Always set the
stream_copy/encoding_needed flags in one place.

8 years agoavconv: fix handling attachments in init_output_stream
Anton Khirnov [Mon, 23 May 2016 07:59:35 +0000 (09:59 +0200)]
avconv: fix handling attachments in init_output_stream

The current code assumes that encoding_needed is simply an inverse of
stream_copy, which is not true for manually attached files (for which
neither of those is true).

8 years agoavconv: create simple filtergraphs earlier
Anton Khirnov [Sun, 22 May 2016 17:57:36 +0000 (19:57 +0200)]
avconv: create simple filtergraphs earlier

We already have all the necessary information in open_output_file().
This makes the information about the stream/filtergraph mappings
available earlier.

8 years agoavconv: add a function for determining whether a filtergraph is simple
Anton Khirnov [Sun, 22 May 2016 15:57:59 +0000 (17:57 +0200)]
avconv: add a function for determining whether a filtergraph is simple

This makes the code easier to read.

8 years agoh264: handle frame recovery in h264_field_start()
Anton Khirnov [Fri, 20 May 2016 10:42:23 +0000 (12:42 +0200)]
h264: handle frame recovery in h264_field_start()

This is a more appropriate place for this. H264Context.recovery_frame is
shared between frame threads, so modifying it where it is right now is
invalid.

8 years agoh264: discard slices of redundant pictures right after parsing the slice header
Anton Khirnov [Fri, 20 May 2016 10:30:42 +0000 (12:30 +0200)]
h264: discard slices of redundant pictures right after parsing the slice header

Going through the whole decoder initialization process for a slice we
are not going to decode is unnecessary and potentially dangerous.

8 years agoh264: always set redundant_pic_count during slice header parsing
Anton Khirnov [Fri, 20 May 2016 10:33:30 +0000 (12:33 +0200)]
h264: always set redundant_pic_count during slice header parsing

It is always checked in the surrounding code, so this make sure we don't
see a value from an old slice.

8 years agoh264: call the hwaccel frame_start() from h264_field_start()
Anton Khirnov [Fri, 20 May 2016 10:21:36 +0000 (12:21 +0200)]
h264: call the hwaccel frame_start() from h264_field_start()

This is a more appropriate place for it.

8 years agoh264: fix the check for mixed IDR/non-IDR slices
Anton Khirnov [Fri, 20 May 2016 09:04:55 +0000 (11:04 +0200)]
h264: fix the check for mixed IDR/non-IDR slices

8 years agoh264: do not pass H264Context to h264_slice_header_parse()
Anton Khirnov [Fri, 20 May 2016 08:20:33 +0000 (10:20 +0200)]
h264: do not pass H264Context to h264_slice_header_parse()

This should make it more clear that this function does not need any
decoder-global state other than the parameter sets.

8 years agoh264: fix warnings in fill_filter_caches_inter()
Anton Khirnov [Thu, 19 May 2016 06:19:14 +0000 (08:19 +0200)]
h264: fix warnings in fill_filter_caches_inter()

The code does some weird casting to a 2-dimensional sub-array of
ref2frm. This is not necessary, since only one dimension is needed
there.

8 years agoh264: drop tests whether the codec id is AV_CODEC_ID_H264
Anton Khirnov [Wed, 18 May 2016 12:33:33 +0000 (14:33 +0200)]
h264: drop tests whether the codec id is AV_CODEC_ID_H264

Those are unused remnants of the old SVQ3 code.

8 years agoh264_cabac: drop an always true condition
Anton Khirnov [Wed, 18 May 2016 12:31:48 +0000 (14:31 +0200)]
h264_cabac: drop an always true condition

8 years agoh264: add H264_ prefix to the NAL unit types
Anton Khirnov [Wed, 18 May 2016 08:36:33 +0000 (10:36 +0200)]
h264: add H264_ prefix to the NAL unit types

This will prevent conflicts e.g. in code that deals with both h264 and
hevc.

8 years agoh264_sei: drop an unnecessary h264dec.h include
Anton Khirnov [Wed, 18 May 2016 08:23:21 +0000 (10:23 +0200)]
h264_sei: drop an unnecessary h264dec.h include

The code does not depend on the h264 decoder anymore and only needs
information from h264_ps

8 years agolavc: drop unnecessary h264dec.h includes
Anton Khirnov [Wed, 18 May 2016 08:22:24 +0000 (10:22 +0200)]
lavc: drop unnecessary h264dec.h includes

8 years agoh264: tighten the valid range for ref_frame_count
Anton Khirnov [Wed, 18 May 2016 08:04:44 +0000 (10:04 +0200)]
h264: tighten the valid range for ref_frame_count

This field (which the spec calls max_num_ref_frames) must be less than
or equal to MaxDpbFrames, which is at most 16.

8 years agoh264: move the parameter set definitions to a new header file
Anton Khirnov [Wed, 18 May 2016 07:40:33 +0000 (09:40 +0200)]
h264: move the parameter set definitions to a new header file

The PS parsing code is independent from the decoder, so it makes more
sense for it to have its own separate header.

8 years agosvq3: stop using H264Picture
Anton Khirnov [Wed, 18 May 2016 07:34:05 +0000 (09:34 +0200)]
svq3: stop using H264Picture

The SVQ3 decoder has been decoupled from the H.264 decoder, so it can
now use its own data type.

8 years agoh264: create a new header for common h264 definitions
Anton Khirnov [Wed, 18 May 2016 07:16:35 +0000 (09:16 +0200)]
h264: create a new header for common h264 definitions

Move the NAL unit types into it. This will allow to stop including the
whole decoder-specific h264dec.h in some code that is unrelated to the
decoder and only needs some enum values.

8 years agoh264: rename h264.[ch] to h264dec.[ch]
Anton Khirnov [Wed, 18 May 2016 07:02:39 +0000 (09:02 +0200)]
h264: rename h264.[ch] to h264dec.[ch]

This is more consistent with the naming of other decoders.

8 years agoh264: factor out setting frame properties / side data
Anton Khirnov [Wed, 18 May 2016 05:27:32 +0000 (07:27 +0200)]
h264: factor out setting frame properties / side data

Right now this code is mixed with selecting the next output frame. Move
it to a separate function called from h264_field_start(), which is a
more appropriate place for this.

8 years agoh264: drop unused NAL_FF_IGNORE
Anton Khirnov [Tue, 17 May 2016 18:01:34 +0000 (20:01 +0200)]
h264: drop unused NAL_FF_IGNORE

8 years agoh264: move a per-field block from decode_slice_header() to field_start()
Anton Khirnov [Tue, 17 May 2016 17:00:18 +0000 (19:00 +0200)]
h264: move a per-field block from decode_slice_header() to field_start()

This is a more appropriate place for it.

8 years agoh264: only allow ending a field/starting a new one before finish_setup()
Anton Khirnov [Tue, 17 May 2016 16:57:23 +0000 (18:57 +0200)]
h264: only allow ending a field/starting a new one before finish_setup()

Doing this after ff_thread_finish_setup() is called is invalid and can
conflict with reads from the other thread.

8 years agoh264: store {curr,max}_pic_num in the per-slice context
Anton Khirnov [Tue, 17 May 2016 14:45:15 +0000 (16:45 +0200)]
h264: store {curr,max}_pic_num in the per-slice context

While the value of those variables will be constant for the whole frame,
they are only used in two functions called from slice header decoding.
Moving them to the per-slice context allows us to make the H264Context
passed to slice_header_parse() constant.

8 years agoh264: decode the poc values from the slice header into the per-slice context
Anton Khirnov [Tue, 17 May 2016 13:35:50 +0000 (15:35 +0200)]
h264: decode the poc values from the slice header into the per-slice context

Copy them into the decoder-global context in field_start(). This avoids
modifying the decoder-global context during bitstream parsing.

8 years agoh264: set mb_aff_frame in frame_start()
Anton Khirnov [Tue, 17 May 2016 13:07:23 +0000 (15:07 +0200)]
h264: set mb_aff_frame in frame_start()

Avoid unnecessary modification of the decoder-global state in per-slice
code.

8 years agoh264: move the block starting a new field out of slice_header_parse()
Anton Khirnov [Tue, 17 May 2016 12:51:01 +0000 (14:51 +0200)]
h264: move the block starting a new field out of slice_header_parse()

There is no bitstream parsing in that block and messing with
decoder-global state is not something that belongs into header parsing.

Nothing else in this function depends on the value of current_slice,
except for two validity checks. Those checks are also moved out of
slice_header_parse().

8 years agoh264: pass a H2645NAL to slice header decoding
Anton Khirnov [Mon, 16 May 2016 07:34:44 +0000 (09:34 +0200)]
h264: pass a H2645NAL to slice header decoding

Replace the decoder-global nal_unit_type/nal_ref_idc variables with the
per-NAL ones. The decoder-global ones still cannot be removed because
they are used by hwaccels.

8 years agofate: Add TrueMotion 2 RT tests
Vittorio Giovara [Fri, 3 Jun 2016 15:53:25 +0000 (11:53 -0400)]
fate: Add TrueMotion 2 RT tests

8 years agofate: Move Duck Truemotion 1 and 2 tests to vpx.mak
Vittorio Giovara [Fri, 3 Jun 2016 19:51:30 +0000 (15:51 -0400)]
fate: Move Duck Truemotion 1 and 2 tests to vpx.mak

8 years agoAdd TrueMotion 2.0 Real Time decoder
Paul B Mahol [Fri, 17 Jun 2016 16:30:34 +0000 (12:30 -0400)]
Add TrueMotion 2.0 Real Time decoder

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
8 years agofate: Add tests for MagicYUV
Vittorio Giovara [Fri, 3 Jun 2016 19:51:32 +0000 (15:51 -0400)]
fate: Add tests for MagicYUV

8 years agoAdd MagicYUV decoder
Paul B Mahol [Sat, 18 Jun 2016 22:23:28 +0000 (18:23 -0400)]
Add MagicYUV decoder

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
8 years agoffv1: Error out on unsupported format
Jerome Martinez [Thu, 16 Jun 2016 14:33:55 +0000 (16:33 +0200)]
ffv1: Error out on unsupported format

Transparency is supported only by YUV and within specific bit depths.