Michael Niedermayer
3e2714992b
Merge commit 'eea769df322fac2601a96db195fa7dc8d12a8fbc'
...
* commit 'eea769df322fac2601a96db195fa7dc8d12a8fbc':
hevc: Use generic av_clip function, not C implementation
Conflicts:
libavcodec/hevc.c
libavcodec/hevc_filter.c
libavcodec/hevc_mvs.c
See: 83976e40e8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-13 12:34:18 +01:00
Peter Meerwald
eea769df32
hevc: Use generic av_clip function, not C implementation
...
hevc seems to be the only place where the C implementation
of the av_clip function is explicitly selected, precluding
platform-specific optimizations
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-02-13 08:37:13 +01:00
Michael Niedermayer
43b1fd5bb4
avcodec/hevc: drop redundant ifs()
...
Found-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-05 22:29:55 +01:00
Christophe Gisquet
9a2f5d825a
hevc: free sao buffers when receiving a new SPS
...
The buffer pointers would be otherwise overwritten, causing a
leak on e.g. PERSIST_RPARAM_A_RExt_Sony_1.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-05 21:50:35 +01:00
Christophe Gisquet
52f2adc015
avcodec/hevc: Update the USE_SAO_SMALL_BUFFER case for the alignment requirements in FFmpeg
...
Use edge emu buffers
And enable the code unconditionally
Speed difference without USE_SAO_SMALL_BUFFER and with the new code:
Decicycles: 26772->26220 (BO32), 83803->80942 (BO64)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-04 01:54:22 +01:00
Christophe Gisquet
00fe77855b
avcodec/hevc: Do not zero is_pcm on allocation
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-04 01:54:13 +01:00
Fabrice Bellard
da81cc38e8
avcodec/hevc: reduce memory for SAO
...
cherry picked from commit 5d9f79edef2c11b915bdac3a025b59a32082f409
SAO edge filter uses pre-SAO pixel data on the left and top of the ctb, so
this data must be kept available. This was done previously by having 2
copies of the frame, one before and one after SAO.
This commit reduces the storage to just that, instead of the previous whole
frame.
Commit message taken from patch by Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-04 01:54:01 +01:00
Mickaël Raulet
7cf6a67ef9
avcodec/hevc: adding support for monochrome sequences in hevc
...
cherry picked from commit 8e50557707d2ec11ccad657470b2e140f314348e
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-02 18:10:57 +01:00
Christophe Gisquet
bff7feb328
x86: hevc/sao: aligned source buffers
...
Usefull for at least band filter, for which:
- Band filter call only:
32 64
Before: 16556 54015
After: 16497 52355
- Whole case:
32 64
Before: 37031 103008
After: 32045 93952
2015-02-01 20:22:54 -03:00
Michael Niedermayer
2b215b7f5a
avcodec/hevc: Check for av_malloc failure
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-30 00:44:51 +01:00
Michael Niedermayer
5008605bf2
avcodec/hevc: Replace more mallocs by av_malloc_array()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-30 00:44:50 +01:00
Michael Niedermayer
a7fa1b9aa1
Merge commit '443b71928b2f36362e805c037751e6c3c79ea4e8'
...
* commit '443b71928b2f36362e805c037751e6c3c79ea4e8':
hevc: unref the current frame if frame_start() fails
Conflicts:
libavcodec/hevc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-27 13:15:06 +01:00
Hendrik Leppkes
36962ad233
Add DXVA2 HEVC HWAccel
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-27 12:37:34 +01:00
Hendrik Leppkes
f8ecffa9b7
hevc: reindent after previous commit
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-27 12:37:34 +01:00
Hendrik Leppkes
b2e9b0f5d4
hevc: add hwaccel hooks
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-27 12:37:34 +01:00
Hendrik Leppkes
06894f1a04
hevc: store the short term rps flag and size in the context
...
For future use by hardware accelerators.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-27 12:37:34 +01:00
Hendrik Leppkes
2af82a1ad9
hevc: store the escaped/raw bitstream in HEVCNAL
...
Hardware Accelerators require access to the escaped bitstream.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-27 12:37:34 +01:00
Hendrik Leppkes
7e850fa67e
Add DXVA2 HEVC HWAccel
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-01-27 09:05:31 +01:00
Hendrik Leppkes
b82722df9b
hevc: reindent after previous commit
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-01-27 09:05:25 +01:00
Hendrik Leppkes
e72e8c5a1d
hevc: add hwaccel hooks
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-01-27 09:05:08 +01:00
Hendrik Leppkes
4b95e95dba
hevc: store the short term rps flag and size in the context
...
For future use by hardware accelerators.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-01-27 09:04:59 +01:00
Hendrik Leppkes
36779a8405
hevc: store the escaped/raw bitstream in HEVCNAL
...
Hardware Accelerators require access to the escaped bitstream.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-01-27 09:04:44 +01:00
Hendrik Leppkes
b0593a4bca
hevc: pass the full HEVCNAL struct to decode_nal_unit
...
This enables decode_nal_unit to access additional fields added in
subsequent commits.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-01-27 09:04:29 +01:00
Anton Khirnov
443b71928b
hevc: unref the current frame if frame_start() fails
...
Prevents DPB from filling up with damaged input.
2015-01-27 08:34:56 +01:00
Hendrik Leppkes
77140279d3
hevc: pass the full HEVCNAL struct to decode_nal_unit
...
This enables decode_nal_unit to access additional fields added in
subsequent commits.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-24 17:49:27 +01:00
Michael Niedermayer
e172f5e53a
avcodec/hevc: Fix handling of skipped_bytes() reallocation failures
...
Fixes CID1260704
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-13 20:10:21 +01:00
Michael Niedermayer
99f8c9e4d1
avcodec/hevc: move qp_block_mask to where its used
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-18 01:55:02 +01:00
Michael Niedermayer
8aa8d12554
avcodec/hevc: clear filter_slice_edges() on allocation
...
This avoids use of uninitialized memory
Fixes: asan_static-oob_17aa046_582_cov_212287884_DBLK_G_VIXS_1.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-17 19:43:58 +01:00
Michael Niedermayer
b799ec7e0b
avcodec/hevc: Print an error if luma_log2_weight_denom is out of range
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-15 21:12:46 +01:00
Michael Niedermayer
241943d3a2
Merge commit 'b2bece5e9a4dd96142962c6798e187c77b88bbfa'
...
* commit 'b2bece5e9a4dd96142962c6798e187c77b88bbfa':
hevc: always clip luma_log2_weight_denom
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-15 21:06:20 +01:00
Vittorio Giovara
b2bece5e9a
hevc: always clip luma_log2_weight_denom
...
Its value shall be between 0 and 7 according to the specifications.
CC: libav-stable@libav.org
Bug-Id: CID 1257502
2014-12-15 15:46:34 +01:00
Michael Niedermayer
ef23bd939d
avcodec/hevc: Silence "warning: ref0/1 may be used uninitialized in this function"
...
Also make code more robust by initializing the pointers to NULL
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-11 04:17:43 +01:00
Michael Niedermayer
148506c965
Merge commit 'cd975d5658a1cbe99939df75db59d5ae9fbcb4e0'
...
* commit 'cd975d5658a1cbe99939df75db59d5ae9fbcb4e0':
hevc: Spin the mv_mpv_mode calls in a stand alone function
Conflicts:
libavcodec/hevc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-22 01:32:55 +01:00
Luca Barbato
cd975d5658
hevc: Spin the mv_mpv_mode calls in a stand alone function
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-11-21 23:17:37 +01:00
Michael Niedermayer
91a9ae5b6b
Merge commit 'eac3ac1fe0774b65316852616b2672702dbc3f31'
...
* commit 'eac3ac1fe0774b65316852616b2672702dbc3f31':
hevc: eliminate an unneeded intermediate variable
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 12:13:09 +01:00
Michael Niedermayer
0d5af820f7
Merge commit 'eb335f3c5ce37f2b93c993e28404d113bee843bc'
...
* commit 'eb335f3c5ce37f2b93c993e28404d113bee843bc':
hevc: reduce variable scope
Conflicts:
libavcodec/hevc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 12:07:49 +01:00
Michael Niedermayer
c23d7de22e
Merge commit '84c0ece5fd9569c0f31804f02a199ecd0e7d13d8'
...
* commit '84c0ece5fd9569c0f31804f02a199ecd0e7d13d8':
hevc: further reduce code duplication in hls_prediction_unit()
Conflicts:
libavcodec/hevc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 12:01:47 +01:00
Michael Niedermayer
e078549421
Merge commit 'a7b365ae191f45a0d7ed7b34033d5d0cbdd47139'
...
* commit 'a7b365ae191f45a0d7ed7b34033d5d0cbdd47139':
hevc: reduce code duplication in hls_prediction_unit()
Conflicts:
libavcodec/hevc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 11:54:41 +01:00
Michael Niedermayer
c192be1968
Merge commit '16c01fb4347312b6d29a6498dad627665b96a20e'
...
* commit '16c01fb4347312b6d29a6498dad627665b96a20e':
hevc: remove an unused function parameter
Conflicts:
libavcodec/hevc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 11:30:41 +01:00
Michael Niedermayer
f1b20930f2
Merge commit '2c6a7f9348378f887066fb1669c46b9485e8ef3e'
...
* commit '2c6a7f9348378f887066fb1669c46b9485e8ef3e':
hevc: do not store rqt_root_cbf in the context
Conflicts:
libavcodec/hevc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 11:20:32 +01:00
Michael Niedermayer
7cbe1e0447
Merge commit '920bca3e2332dced9c78bd14cfc2ff138188bd57'
...
* commit '920bca3e2332dced9c78bd14cfc2ff138188bd57':
hevc: do not store pcm_flag in the context
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-17 11:06:13 +01:00
Anton Khirnov
eac3ac1fe0
hevc: eliminate an unneeded intermediate variable
2014-11-17 09:26:45 +01:00
Anton Khirnov
eb335f3c5c
hevc: reduce variable scope
...
Also, collapse the array into a scalar, since only one value is needed
at a time.
2014-11-17 09:26:45 +01:00
Anton Khirnov
8b573ddda7
hevc: remove superfluous assignments and checks
2014-11-17 09:26:45 +01:00
Anton Khirnov
84c0ece5fd
hevc: further reduce code duplication in hls_prediction_unit()
2014-11-17 09:25:15 +01:00
Anton Khirnov
a7b365ae19
hevc: reduce code duplication in hls_prediction_unit()
2014-11-17 09:25:12 +01:00
Anton Khirnov
16c01fb434
hevc: remove an unused function parameter
2014-11-17 09:25:12 +01:00
Anton Khirnov
2c6a7f9348
hevc: do not store rqt_root_cbf in the context
...
It does not need to be accessed outside of hls_coding_unit().
2014-11-17 09:25:12 +01:00
Anton Khirnov
920bca3e23
hevc: do not store pcm_flag in the context
...
It does not need to be accessed outside of hls_coding_unit().
2014-11-17 09:25:12 +01:00
Anton Khirnov
84b9463984
hevc: remove a redundant line
...
pred_mode is overwritten a few lines immediately below.
2014-11-17 09:25:12 +01:00