Martin Storsjö
82b7525173
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>
9 years ago
Anton Khirnov
eccfb9778a
qsvdec_hevc: add the UID of the HEVC HW decoder plugin
9 years ago
Anton Khirnov
c67594a2c7
qsvdec_hevc: fix a variable name
hevcenc -> hevcdec, this is a _decoder_ plugin.
9 years ago
Vittorio Giovara
7a745f014f
options_table: Add aliases for color properties
All option names now match the ones provided by the av_color_*_name().
9 years ago
Vittorio Giovara
f172e22d6a
pixdesc: Add aliases to SMPTE color properties
Drop ST from names and symbols, it does not add anything distinctive or
descriptive.
9 years ago
Mark Thompson
8a62d2c28f
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.
9 years ago
Clément Bœsch
4a081f224e
libavcodec: fix constness in clobber test avcodec_open2() wrappers
Signed-off-by: Martin Storsjö <martin@martin.st>
9 years ago
Martin Storsjö
0c9c4004ed
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>
9 years ago
Martin Storsjö
31aa5335c3
libopenh264enc: Fix inconsistent whitespace
Signed-off-by: Martin Storsjö <martin@martin.st>
9 years ago
Diego Biurrun
4f98bb7b6d
msmpeg4: Remove commented-out debug logging code
9 years ago
Diego Biurrun
eedbeb4c27
msmpeg4: Remove some broken, commented-out cruft
9 years ago
Diego Biurrun
3c84eaae9d
h264: Eliminate unused but set variable
libavcodec/h264_slice.c:1384:9: warning: variable 'droppable' set but not used
9 years ago
Mark Thompson
11b8030309
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.
9 years ago
Martin Storsjö
8c3c7b8920
dxva2_h264: Remove an unused variable
This was introduced by mistake in 39cdbb12aa
(only one of the
added variables were really needed).
Signed-off-by: Martin Storsjö <martin@martin.st>
9 years ago
Anton Khirnov
32c8359093
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.
9 years ago
Anton Khirnov
ad9c9440d5
qsvenc: support getting the session from an AVHWFramesContext
9 years ago
Anton Khirnov
a0524d9b1e
qsvdec: support getting the session from an AVHWFramesContext
9 years ago
Anton Khirnov
6f19bbcf85
qsvdec: move reading the user-provided session to qsv_decode_init()
This is a more appropriate place for it.
9 years ago
Anton Khirnov
e85f6f7f8d
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.
9 years ago
Vittorio Giovara
40dd5166d2
truemotion2rt: Use ff_set_dimensions
9 years ago
Vittorio Giovara
a816432337
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>
9 years ago
Neil Birkbeck
5d560d38de
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>
9 years ago
Anton Khirnov
58640fe89e
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.
9 years ago
Anton Khirnov
e26c64148b
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.
9 years ago
Anton Khirnov
6efc463858
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.
9 years ago
Anton Khirnov
606fb6c032
h264: call the hwaccel frame_start() from h264_field_start()
This is a more appropriate place for it.
9 years ago
Anton Khirnov
d1d7678040
h264: fix the check for mixed IDR/non-IDR slices
9 years ago
Anton Khirnov
b13fc1e344
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.
9 years ago
Anton Khirnov
996f13413b
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.
9 years ago
Anton Khirnov
bc7f426851
h264: drop tests whether the codec id is AV_CODEC_ID_H264
Those are unused remnants of the old SVQ3 code.
9 years ago
Anton Khirnov
8281cd5cb8
h264_cabac: drop an always true condition
9 years ago
Anton Khirnov
5c2fb561d9
h264: add H264_ prefix to the NAL unit types
This will prevent conflicts e.g. in code that deals with both h264 and
hevc.
9 years ago
Anton Khirnov
1cf2f3d334
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
9 years ago
Anton Khirnov
b24dafe105
lavc: drop unnecessary h264dec.h includes
9 years ago
Anton Khirnov
70b1dcef2d
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.
9 years ago
Anton Khirnov
f638b67e57
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.
9 years ago
Anton Khirnov
4e2f621248
svq3: stop using H264Picture
The SVQ3 decoder has been decoupled from the H.264 decoder, so it can
now use its own data type.
9 years ago
Anton Khirnov
251cbb4400
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.
9 years ago
Anton Khirnov
9df889a5f1
h264: rename h264.[ch] to h264dec.[ch]
This is more consistent with the naming of other decoders.
9 years ago
Anton Khirnov
f651c6a259
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.
9 years ago
Anton Khirnov
19446dc5ff
h264: drop unused NAL_FF_IGNORE
9 years ago
Anton Khirnov
bcd91f1644
h264: move a per-field block from decode_slice_header() to field_start()
This is a more appropriate place for it.
9 years ago
Anton Khirnov
17e7c03e12
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.
9 years ago
Anton Khirnov
debca90863
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.
9 years ago
Anton Khirnov
f966498e43
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.
9 years ago
Anton Khirnov
54dd9b1cdd
h264: set mb_aff_frame in frame_start()
Avoid unnecessary modification of the decoder-global state in per-slice
code.
9 years ago
Anton Khirnov
8d36932c8d
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().
9 years ago
Anton Khirnov
b25cd7540e
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.
9 years ago
Paul B Mahol
470cd0c5fe
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>
9 years ago
Paul B Mahol
d78fd2fa21
Add MagicYUV decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
9 years ago