Andreas Rheinhardt
0eb399ac39
avcodec: Constify ThreadFrames if possible
...
This is possible now that ff_thread_await_progress() accepts
a const ThreadFrame*.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-07-31 04:15:28 +02:00
Andreas Rheinhardt
136ada2fc3
avcodec/hevc_mvs: Pass HEVCLocalContext when slice-threading
...
The HEVC decoder has both HEVCContext and HEVCLocalContext
structures. The latter is supposed to be the structure
containing the per-slicethread state.
Yet that is not how it is handled in practice: Each HEVCLocalContext
has a unique HEVCContext allocated for it and each of these
coincides except in exactly one field: The corresponding
HEVCLocalContext. This makes it possible to pass the HEVCContext
everywhere where logically a HEVCLocalContext should be used.
This commit stops doing this for lavc/hevc_mvs.c; it also constifies
everything that is possible in order to ensure that no slice thread
accidentally modifies the main HEVCContext state.
Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-07-25 23:31:12 +02:00
Andreas Rheinhardt
c34e3920f2
avcodec/hevc_refs: Constify ff_hevc_get_ref_list()
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-07-09 20:28:02 +02:00
Andreas Rheinhardt
b3551b6072
avcodec/thread: Move ff_thread_(await|report)_progress to new header
...
This is in preparation for further commits that will stop
using ThreadFrame for frame-threaded codecs that don't use
ff_thread_(await|report)_progress(); the API for those codecs
having inter-frame depdendencies will live in threadframe.h.
Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-09 17:22:16 +01:00
Michael Niedermayer
060e1ad69d
avcodec/hevc_mvs: Cleanup ff_hevc_set_neighbour_available()
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-10-17 14:36:11 +02:00
James Almer
953d55f443
Merge commit '26d9b60373bf45bc4f91ff6815f5fa36764d4d7b'
...
* commit '26d9b60373bf45bc4f91ff6815f5fa36764d4d7b':
hevc: Avoid using LOCAL_ALIGNED for 4 byte alignment
Merged-by: James Almer <jamrial@gmail.com>
2017-10-24 19:26:29 -03:00
Martin Storsjö
26d9b60373
hevc: Avoid using LOCAL_ALIGNED for 4 byte alignment
...
The data types within the MvField struct themselves imply 4 byte alignment.
Signed-off-by: Martin Storsjö <martin@martin.st>
2017-03-31 22:06:47 +03:00
James Almer
dc39ccdc3b
Merge commit '0bfdcce4d42a6e654c00ea5f9237dc987626457f'
...
* commit '0bfdcce4d42a6e654c00ea5f9237dc987626457f':
hevc: move the SliceType enum to hevc.h
Merged-by: James Almer <jamrial@gmail.com>
2017-03-23 20:02:11 -03:00
Clément Bœsch
038e6aef7a
Merge commit '4abe3b049d987420eb891f74a35af2cebbf52144'
...
* commit '4abe3b049d987420eb891f74a35af2cebbf52144':
hevc: rename hevc.[ch] to hevcdec.[ch]
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-23 16:48:41 +01:00
Anton Khirnov
0bfdcce4d4
hevc: move the SliceType enum to hevc.h
...
Those values are decoder-independent and are also use by the VA-API
encoder.
2016-10-21 10:11:20 +02:00
Anton Khirnov
4abe3b049d
hevc: rename hevc.[ch] to hevcdec.[ch]
...
This is more consistent with the rest of libav and frees up the hevc.h
name for decoder-independent shared declarations.
2016-10-16 20:26:17 +02:00
Clément Bœsch
8ef57a0d61
Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'
...
* commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb':
cosmetics: Fix spelling mistakes
Merged-by: Clément Bœsch <u@pkh.me>
2016-06-21 21:55:34 +02:00
Vittorio Giovara
41ed7ab45f
cosmetics: Fix spelling mistakes
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-05-04 18:16:21 +02:00
Michael Niedermayer
d5fcca83b9
Merge commit 'b11acd57326db6c2cc1475dd0bea2a06fbc85aa2'
...
* commit 'b11acd57326db6c2cc1475dd0bea2a06fbc85aa2':
hevc: remove HEVCContext usage from hevc_ps
Conflicts:
libavcodec/hevc.c
libavcodec/hevc_cabac.c
libavcodec/hevc_filter.c
libavcodec/hevc_mvs.c
libavcodec/hevc_ps.c
libavcodec/hevc_refs.c
libavcodec/hevcpred_template.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-12 22:28:54 +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
James Almer
ba625dd8a1
avcodec: use av_mod_uintp2() where useful
...
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-04-21 22:41:20 -03:00
Michael Niedermayer
d1c705087f
avcodec/hevc_mvs: Use av_clip_intp2()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-21 20:40:17 +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
4dd85093f1
Merge commit '9e9be5a20c0b36dce1cae11f5f5957886231a764'
...
* commit '9e9be5a20c0b36dce1cae11f5f5957886231a764':
hevc_mvs: prevent unitialized use
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-11 21:57:41 +01:00
Vittorio Giovara
9e9be5a20c
hevc_mvs: prevent unitialized use
...
CC: libav-stable@libav.org
Bug-Id: CID 1244202
2014-11-11 11:49:47 +01:00
Michael Niedermayer
33c8500db4
Merge commit 'd208d1eba3799c58fd6d3602d31de3e686f14aec'
...
* commit 'd208d1eba3799c58fd6d3602d31de3e686f14aec':
hevc_mvs: make sure to always initialize the temporal MV fully
Conflicts:
libavcodec/hevc_mvs.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 12:29:07 +02:00
Michael Niedermayer
018ca8b7f6
Merge commit '79a60c8e779242b5ba4c531b2c706c871e8e6420'
...
* commit '79a60c8e779242b5ba4c531b2c706c871e8e6420':
hevc_mvs: initialize the temporal MV in case of missing ref
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-07 12:21:43 +02:00
Anton Khirnov
d208d1eba3
hevc_mvs: make sure to always initialize the temporal MV fully
...
The spec requires this.
Fixes uninitialized reads on some samples.
Remove now unnecessary initialization of the whole merge candidate list.
2014-10-07 07:13:01 +00:00
Anton Khirnov
79a60c8e77
hevc_mvs: initialize the temporal MV in case of missing ref
...
The caller expects the MV to always be initialized.
2014-10-07 07:12:55 +00:00
Michael Niedermayer
46807921f7
Merge commit 'e3a00acde05c925617dc19b5373969d864bf8414'
...
* commit 'e3a00acde05c925617dc19b5373969d864bf8414':
hevc: Initialize mergecand_list to 0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-09-29 21:02:15 +02:00
Luca Barbato
e3a00acde0
hevc: Initialize mergecand_list to 0
...
Unbreak cf6090dc62
.
CC: libav-stable@libav.org
Sample-Id: hevc-conformance-LTRPSPS_A_Qualcomm_1
2014-09-29 12:33:46 +01:00
Michael Niedermayer
97bb456b6b
avcodec/hevc_mvs: dont redundantly initialize ref_idx_curr
...
Reviewed-by: James Darnley <james.darnley@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 15:58:40 +02:00
Michael Niedermayer
17cbc6457b
Merge commit 'cf6090dc6252f2b276aa4133e3d73a89f4c6046c'
...
* commit 'cf6090dc6252f2b276aa4133e3d73a89f4c6046c':
hevc: use intreadwrite
Conflicts:
libavcodec/hevc_mvs.c
See: 7a4a5515b0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 16:39:58 +02:00
Michael Niedermayer
5195512add
Merge commit 'ed53cc217f6a6e4ddb35e3f01a79496091dc82dc'
...
* commit 'ed53cc217f6a6e4ddb35e3f01a79496091dc82dc':
hevc: derive partial merge list
Conflicts:
libavcodec/hevc_mvs.c
See: 4576eff05d
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 16:27:39 +02:00
Michael Niedermayer
e6ffe7bcfc
Merge commit '09182b3224370e1d636631e77f201a8388766bd6'
...
* commit '09182b3224370e1d636631e77f201a8388766bd6':
hevc: simplify rounding
Conflicts:
libavcodec/hevc_mvs.c
See: 2e471e4703
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 16:07:07 +02:00
Christophe Gisquet
3187fa14a3
hevc_mvs: avoid deriving tmvp in amvp
...
Reduces the number of calls to tmvp derivation from 933685 to 586271 on
a sequence.
Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 10:13:43 +00:00
Christophe Gisquet
14ca0aa69b
hevc: wait proper position for tmvp
...
The position is either rounded or not checked, so delay the wait to
check the proper value.
Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 10:13:21 +00:00
Christophe Gisquet
cf6090dc62
hevc: use intreadwrite
...
When dealing with MVs, both components may be processed at a time.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 10:03:20 +00:00
Christophe Gisquet
ed53cc217f
hevc: derive partial merge list
...
The merge list only needs to be derived up to the merge index.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 09:59:30 +00:00
Christophe Gisquet
3505b19652
hevc: derive partially amvp list
...
When the candidate has been found, no need to derive others.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 09:58:14 +00:00
Christophe Gisquet
09182b3224
hevc: simplify rounding
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 09:57:25 +00:00
Christophe Gisquet
84bc45880a
hevc_mvs: set candidate availabilities
...
They might be left uninitialized otherwise since 3ad04608
.
Fixes ticket #3840 .
Found-by: Carl Eugen Hoyos <ce@hoyos.ws>
Reported-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 17:13:18 +02:00
Christophe Gisquet
373677f958
hevc_mvs: avoid deriving tmvp in amvp
...
Reduces on a sequence number of calls from 933685 to 586271.
Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-23 21:21:49 +02:00
Christophe Gisquet
ed248e7f70
hevc: wait proper position for tmvp
...
The position is either rounded or not checked, so delay the wait to
check the proper value.
Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 18:11:50 +02:00
Mickaël Raulet
5f08b417b4
hevc/mvs: cosmetics
...
cherry picked from commit 9053cd92700e939cde49ab0ea3c6917be453cab7
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 15:19:19 +02:00
Mickaël Raulet
cd714afe81
hevc/mvs: more cleanups
...
cherry picked from commit c4e467e79f59453783c97bc6044082edb7a6468b
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 15:13:09 +02:00
Mickaël Raulet
3ad0460831
hevc/mvs: code cleaning
...
cherry picked from commit 74f10da013ea71a3f6b77cdff989c4574c8a5ea2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 15:05:00 +02:00
Mickaël Raulet
c4d63cd230
hevc/mvs: simplifying derive_spatial_merge_candidates function
...
cherry picked from commit 99be11cf08a5628d0bb6ac7f4958bf9dd35cda62
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 14:17:19 +02:00
Mickaël Raulet
e9bb45ba79
hevc/mvs: remove same prediction block
...
cherry picked from commit 1206262ba1ef810328cadce99d5cdc0bf9285e4d
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 14:12:00 +02:00
Mickaël Raulet
560b0253ff
hevc/mvs: simplify derive_temporal_colocated_mvs
...
cherry picked from commit def7db60966765f4687250d766b40dbcf0f7e503
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-22 14:11:43 +02:00
Christophe Gisquet
7a4a5515b0
hevc: use intreadwrite
...
When dealing with MVs, both components may be processed at a time.
On Win64, 560 to 539 cycles for derive_spatial_merge_candidates.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-19 15:27:08 +02:00
Christophe Gisquet
4576eff05d
hevc: derive partial merge list
...
The merge list only needs to be derived up to the merge index.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 17:27:56 +02:00
Christophe Gisquet
bbeaae96eb
hevc: derive partially amvp list
...
When the candidate has been found, no need to derive others.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 15:35:15 +02:00
Christophe Gisquet
2e471e4703
hevc: simplify rounding
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-10 14:32:18 +02:00
gcocherel
ba70563d55
hevc/pps: optimized size of min_tb_addr_zs
...
reduce computation too
(cherry picked from commit 39c4d45c7788081c45c7fae51b7c5d0bcbaece9d)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-24 13:11:40 +02:00