Commit graph

37566 commits

Author SHA1 Message Date
Anton Khirnov
e065279529 h264: remove an artificial restriction on the number of slice threads
This limit is now unnecessary, we can easily support an arbitrary number
of threads.
2016-04-24 10:06:25 +02:00
Anton Khirnov
4fd34e639d h264: remove pointless setting of some variables in loop_filter
Those should already be set to the correct values.
2016-04-24 10:06:25 +02:00
Anton Khirnov
9c858ce33f h264: remove a pointless comment 2016-04-24 10:06:25 +02:00
Anton Khirnov
b77fffa127 h264: make slice threading work with deblocking_filter=1
In such a case, decode the MBs in parallel without the loop filter, then
execute the filter serially.

The ref2frm array was previously moved to H264SliceContext. That was
incorrect, since it applies to all the slices and should properly be in
H264Context (it did not actually break decoding, since this distinction
only becomes relevant with slice threading and deblocking_filter=1,
which was not implemented before this commit). The ref2frm array is thus
moved back to H264Context.
2016-04-24 10:06:25 +02:00
Anton Khirnov
370ddc7b38 h264: remove H264Context.pict_type
It is not used for anything internally, just exported in the output
frames. So remove the indirection and set it directly in frame_start().
2016-04-24 10:06:25 +02:00
Anton Khirnov
56087ec0a2 h264: drop a pointless indirection 2016-04-24 10:06:25 +02:00
Anton Khirnov
0e7772c5e4 h264: remove unused H264SliceContext.rbsp_buffer 2016-04-24 10:06:25 +02:00
Anton Khirnov
2e5bde9565 h264: eliminate max_contexts
It is always equal to nb_slice_ctx.
2016-04-24 10:06:25 +02:00
Anton Khirnov
7f045c4429 h264: merge ff_h264_free_context() into h264_decode_end()
It is no longer called from outside the h264 decoder.
2016-04-24 10:06:24 +02:00
Anton Khirnov
99c554efc8 h264: eliminate low_delay
It is always unconditionally initialized in decode_postinit() and then
immediately used in one place further below. All the other places where
it is accessed are just useless fluff.
2016-04-24 10:06:24 +02:00
Anton Khirnov
5b35b290dd h264: remove a stale comment
This comment used to apply to code that was removed.
2016-04-24 10:06:24 +02:00
Anton Khirnov
89ae244e78 h264_refs: remove an unused parameter from ff_h264_fill_mbaff_ref_list() 2016-04-24 10:06:24 +02:00
Anton Khirnov
755f79f84c h264_refs: make the H264Context const where possible 2016-04-24 10:06:24 +02:00
Anton Khirnov
a2fd547839 h264_refs: reorder functions to avoid forward declarations 2016-04-24 10:06:24 +02:00
Anton Khirnov
0ba471d7d8 h264: eliminate copy_fields
It is very fragile against fields being moved and hides what is actually
being copied. Copy all the fields explicitly instead.
2016-04-24 10:06:24 +02:00
Anton Khirnov
72da8d9bb2 h264_parser: remove the remaining dependencies on the h264 decoder 2016-04-24 10:06:24 +02:00
Anton Khirnov
98c97994c5 h264: decouple extradata parsing from the decoder
This will allow decoupling the parser from the decoder.
2016-04-24 10:06:24 +02:00
Anton Khirnov
728d90a0c1 h264: decouple h264_sei from the h264 decoder
Make the SEI parsing independent of the H264Context, to allow
decoupling the parser from the decoder.
2016-04-24 10:06:24 +02:00
Anton Khirnov
c8dcff0cdb h264: factor out calculating the POC count into a separate file
This will allow decoupling the parser from the decoder.
2016-04-24 10:06:24 +02:00
Anton Khirnov
113aeee6ae h264_parser: move the H264DSPContext to the parser context 2016-04-24 10:06:24 +02:00
Anton Khirnov
3176217c60 h264: decouple h264_ps from the h264 decoder
Make the SPS/PPS parsing independent of the H264Context, to allow
decoupling the parser from the decoder. The change is modelled after the
one done earlier for HEVC.

Move the dequant buffers to the PPS to avoid complex checks whether they
changed and an expensive copy for frame threads.
2016-04-24 10:06:23 +02:00
Anton Khirnov
44d16df413 h264_parser: eliminate H264SliceContext usage
It is no longer needed for anything.
2016-04-24 10:06:23 +02:00
Anton Khirnov
71d3305c27 h264_parse: make sure the ref count is zeroed on all failure paths 2016-04-24 10:06:23 +02:00
Anton Khirnov
a6e27f7add h264: factor out parsing the reference count into a separate file
This will allow decoupling the parser from the decoder.
2016-04-24 10:06:23 +02:00
Anton Khirnov
56b17a33f2 h264: stop testing whether the reference count changes in ff_set_ref_count()
It is no longer necessary after 741b494fa8
2016-04-24 10:06:23 +02:00
Anton Khirnov
e9f884416c h264: move reading direct_spatial_mv_pred out of ff_set_ref_count()
It has nothing to do with the reference count and so does not belong in
this function.
2016-04-24 10:06:23 +02:00
Anton Khirnov
8d0cc8ca97 h264_parser: switch to h2645_parse for NAL unescaping
Remove now unused ff_h264_decode_nal().
2016-04-24 10:06:23 +02:00
Anton Khirnov
f3ed484953 h264_mp4toannexb_bsf: do not fail on annex B extradata
Just pass through the bitstream as is. This is the same as what is done
for HEVC already.
2016-04-24 10:06:23 +02:00
Michael Niedermayer
38433345e5 avcodec/utils: Assert that the number of consumed bytes in avcodec_decode_audio4() is <= the input size
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-23 17:23:59 +02:00
wm4
27adf9f9cd avcodec/utils: fix minor memory leaks on avcodec_open2() failure 2016-04-22 19:29:48 +02:00
Paul B Mahol
c85d04251d avcodec: add TrueMotion 2.0 Real Time decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-21 20:15:17 +02:00
Vittorio Giovara
5fca95c8e5 libx264: Forbid inverted Stereo3D mode 2016-04-21 12:25:42 -04:00
Vittorio Giovara
9e2af0e907 libx264: Allow Stereo3D monoscopic value 2016-04-21 12:24:35 -04:00
Derek Buitenhuis
5f587b1daf Merge commit '3b08d9d932'
* commit '3b08d9d932':
  testprogs: K&R formatting cosmetics

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-21 16:50:06 +01:00
wm4
7fc329e2dd lavc: introduce a new decoding/encoding API with decoupled input/output
Until now, the decoding API was restricted to outputting 0 or 1 frames
per input packet. It also enforces a somewhat rigid dataflow in general.

This new API seeks to relax these restrictions by decoupling input and
output. Instead of doing a single call on each decode step, which may
consume the packet and may produce output, the new API requires the user
to send input first, and then ask for output.

For now, there are no codecs supporting this API. The API can work with
codecs using the old API, and most code added here is to make them
interoperate. The reverse is not possible, although for audio it might.

From Libav commit 05f66706d1.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-21 14:23:36 +02:00
Michael Niedermayer
0de99ab06f avcodec: Add avpriv_codec_get_cap_skip_frame_fill_param()
With this the use of the caps_internal from libavformat can be avoided

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-21 13:49:32 +02:00
Michael Niedermayer
9f36ea57ae avcodec/avpacket: Fix off by 5 error
Fixes out of array read
Fixes: mozilla bug 1266129
Found-by: Tyson Smith
Tested-by: Tyson Smith
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-21 00:52:40 +02:00
Paul B Mahol
38797a8033 avcodec/takdec: add code that got somehow lost in process of REing
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-20 22:47:09 +02:00
Luca Barbato
f3fdef108e ape: Avoid undefined behaviour
Avoid the clang warning

"warning: shifting a negative signed value is undefined"
2016-04-19 20:22:31 +02:00
Luca Barbato
6b2ad3ca48 indeo3: Avoid undefined behaviour
Avoid the clang warning

"warning: shifting a negative signed value is undefined"
2016-04-19 19:00:41 +02:00
Derek Buitenhuis
eae2ebded3 libxvid: Create extradata in init using a dummy frame
Modifying global header extradata in encode_frame is an API violation
and only happens to work currently because mov writes its header
at the end of the file.

Heavily based off of a patch from 2012 by Nicolas George.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-04-19 19:00:41 +02:00
Anton Khirnov
06edef3d5e Generate the lists of enabled protocols/bsfs from configure. 2016-04-19 13:34:07 +02:00
Paul B Mahol
13406b6124 avcodec/tak_parser: fix parsing of streams with bunch of small frames at end
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-04-18 23:37:41 +02:00
Michael Niedermayer
ce18e48aec avcodec/dump_extradata_bsf: Add back 'k' and 'e' options
broken since af9cac1be1

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-18 02:54:33 +02:00
Michael Niedermayer
57fc93ecb2 avcodec/remove_extradata_bsf: Add back 'k' and 'e' options
broken since af9cac1be1

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-18 02:54:27 +02:00
Michael Niedermayer
8106479503 avcodec/bitstream_filter: Fix initializing options from the argument string
Fixes ffmpeg ... -vbsf noise=234 ...

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-18 02:48:44 +02:00
Michael Niedermayer
76d0209db4 avcodec/intrax8: Remove duplicated chunk from ba5bcf9612
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-18 00:59:18 +02:00
Carl Eugen Hoyos
db7d0d6e7c lavc/fic: Cosmetics, fix a typo.
Found by Moritz Barsnick
2016-04-18 00:18:54 +02:00
Carl Eugen Hoyos
1106a2c5dd lavc/webp: Print a warning for unsupported chunks. 2016-04-17 20:42:10 +02:00
Derek Buitenhuis
9d4799c247 Merge commit '8dead2aaca'
* commit '8dead2aaca':
  Move const qualifier before type name

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17 19:35:03 +01:00