Guillaume Martres
e588615d93
hevc: fix decoding of one PU wide files
...
For those the block size may be larger than the source linesize (if the
edges are not allocated).
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-09 09:46:13 +01:00
Michael Niedermayer
4ced5d7780
avcodec/hevc: Fix modulo operations
...
Fixes qp fields becoming out of range
Fixes: asan_static-oob_e393a3_6998_WPP_A_ericsson_MAIN10_2.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-06 04:32:37 +01:00
Michael Niedermayer
21a2fb7e05
avcodec/hevc: clear HEVClc when its deallocated in hevc_decode_free()
...
Fixes reading freed memory
Fixes: asan_heap-uaf_1abf8ef_3987_NUT_A_ericsson_4.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-31 15:19:59 +01:00
Michael Niedermayer
d6b7ea06f1
Merge commit '2a41826bea3833895dc06939831b7f35ca1f597e'
...
* commit '2a41826bea3833895dc06939831b7f35ca1f597e':
lavc: add HEVC profiles names
Conflicts:
libavcodec/hevc.c
libavcodec/version.h
See: fb7d70c1cd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-21 00:24:43 +01:00
Mickaël Raulet
5c3fa74b94
hevc: support luma bit depth != chroma bit depth for PCM coding units
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:39:53 +01:00
Gildas Cocherel
321cb8b048
hevc: store profile and level in AVCodecContext
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:36:24 +01:00
Gildas Cocherel
2a41826bea
lavc: add HEVC profiles names
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:35:27 +01:00
Guillaume Martres
ecb21d2437
hevc: rename ptl structs and variables
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-14 03:01:56 +01:00
Guillaume Martres
17a10d51b8
hevc: set time_base when possible
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-11 20:39:54 +01:00
Gildas Cocherel
33452aede6
hevc: store the VPS list as an AVBufferRef, just like the others *PS
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-11 20:39:54 +01:00
Michael Niedermayer
b769cf4b44
hevc: do not dereference pointer before NULL check in verify_md5()
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-11 20:39:54 +01:00
Guillaume Martres
f90281ca97
hevc: Correctly set time_base
...
- Try reading the time_base information from the VPS too, not just the VUI
- Only set time_base when an SPS is activated, not when it's decoded.
- Reduce the fraction before setting it.
- Don't set anything if the fraction is invalid (because the VUI is not
present or because the encoded value is invalid).
Conflicts:
libavcodec/hevc_ps.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 16:20:53 +01:00
Guillaume Martres
679a6377e4
hevc: avoid some unnecessary differences with libav
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-10 16:20:48 +01:00
Michael Niedermayer
31a52a60c9
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
hevc: parse frame packing arrangement SEI messages and save relevant stereo3d information
Conflicts:
libavcodec/hevc.h
libavcodec/hevc_sei.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 22:25:38 +01:00
Vittorio Giovara
acb77dff6a
hevc: parse frame packing arrangement SEI messages and save relevant stereo3d information
2013-12-09 16:02:43 +01:00
Michael Niedermayer
f1783c05f1
Revert "avcodec/hevc: calculate checksum only if AV_EF_EXPLODE is set"
...
This reverts commit 758b6d39f6
.
Requested-by: smarter
"now that http://git.videolan.org/?p=ffmpeg.git;a=commit;h=97de206b44a48da726807cc3e7b9448a8112760b
has been merged, http://git.videolan.org/?p=ffmpeg.git;a=commit;h=758b6d39f685a510f48ff9e4c05fffa859d23c42
could be reverted, this would reduce the delta with libav
(and it makes sense)"
2013-12-04 11:46:31 +01:00
gcocherel
fb7d70c1cd
hevc : add hevc profile
...
(cherry picked from commit 0c8dfd8ad6400b33da55a9f4d9aa8d3f5c9d209f)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 01:29:02 +01:00
gcocherel
36658c978f
hevc : update hevc_ps.c
...
(cherry picked from commit 088f2eb1ae42bffc63c2cee4e7eba8f47056043b)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-22 01:29:02 +01:00
gcocherel
81d0252dac
hevc : update hls_decode_neighbour(cherry picked from commit 14341c6d9a6885657ba365807223e96a67d6c0ed)
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 22:51:51 +01:00
gcocherel
0afa254d4e
hevc : fix pcm(cherry picked from commit 12bbfdba1899d11044d2bd8457159fc8b4b52a76)
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-21 22:51:51 +01:00
Michael Niedermayer
91e00c4a78
Merge commit '458446acfa1441d283dacf9e6e545beb083b8bb0'
...
* commit '458446acfa1441d283dacf9e6e545beb083b8bb0':
lavc: Edge emulation with dst/src linesize
Conflicts:
libavcodec/cavs.c
libavcodec/h264.c
libavcodec/hevc.c
libavcodec/mpegvideo_enc.c
libavcodec/mpegvideo_motion.c
libavcodec/rv34.c
libavcodec/svq3.c
libavcodec/vc1dec.c
libavcodec/videodsp.h
libavcodec/videodsp_template.c
libavcodec/vp3.c
libavcodec/vp8.c
libavcodec/wmv2.c
libavcodec/x86/videodsp.asm
libavcodec/x86/videodsp_init.c
Changes to the asm are not merged, they are left for volunteers or
in their absence for later.
The changes this merge introduces are reordering of the function
arguments
See: face578d56
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-15 15:07:10 +01:00
Ronald S. Bultje
458446acfa
lavc: Edge emulation with dst/src linesize
...
Allow supporting files for which the image stride is smaller than
the maximum block size + number of subpel mc taps, e.g. a 64x64 VP9
file or a 16x16 VP8 file with -fflags +emu_edge.
2013-11-15 10:16:27 +01:00
Michael Niedermayer
b906d04881
Merge commit '885ec9242554ad25922258a595ec5e317922a412'
...
* commit '885ec9242554ad25922258a595ec5e317922a412':
hevc: Use parsed VUI colorimetry in avcodec
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 21:37:34 +01:00
Jan Ekström
885ec92425
hevc: Use parsed VUI colorimetry in avcodec
...
Also limit the parsed VUI values to known valid ones.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2013-11-04 16:03:11 +01:00
Michael Niedermayer
a805e2e653
avcodec/hevc: add "apply_defdispwin" alias for compatibilty with 064698d381
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 18:24:24 +01:00
Michael Niedermayer
35594c48ca
libavcodec/hevc: random cosmetics to reduce diff to 064698d381
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 17:28:44 +01:00
Michael Niedermayer
e877455ff9
libavcodec/hevcdsp_template: whitespaces to reduce diff to 064698d381
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 15:11:41 +01:00
Michael Niedermayer
b23692b3a8
libavcodec/hevc: reduce whitespace differences to 064698d381
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 14:10:21 +01:00
Michael Niedermayer
1a6948fa70
libavcodec/hevc: reduce bracket differences to 064698d381
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 13:09:31 +01:00
Michael Niedermayer
ce7f1c76bd
avcodec/hevc: more whitespaces to reduce difference to 064698d381
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 12:33:54 +01:00
Michael Niedermayer
f578e5d937
avcodec/hevc: Adjust white-spaces to reduce difference to 064698d381
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 00:44:54 +01:00
Mickaël Raulet
38612379bf
hevc: fix temporal_id(cherry picked from commit 5eac0df49d33bef7f3ffc5efde19839dddb554e8)
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 00:44:54 +01:00
Michael Niedermayer
5eb1704d5f
Merge commit '064698d381e1e7790f21b0199a8930ea04e2e942'
...
* commit '064698d381e1e7790f21b0199a8930ea04e2e942':
Add HEVC decoder
Conflicts:
Changelog
libavcodec/Makefile
libavcodec/allcodecs.c
libavcodec/hevc.c
libavcodec/hevc.h
libavcodec/hevc_cabac.c
libavcodec/hevc_filter.c
libavcodec/hevc_mvs.c
libavcodec/hevc_parser.c
libavcodec/hevc_ps.c
libavcodec/hevc_refs.c
libavcodec/hevc_sei.c
libavcodec/hevcdsp.c
libavcodec/hevcdsp_template.c
libavcodec/hevcpred.c
libavcodec/hevcpred_template.c
libavcodec/version.h
cosmetics from hevc.h & hevc_ps.c mostly merged, other files left as they where in ffmpeg.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 17:13:00 +01:00
Guillaume Martres
064698d381
Add HEVC decoder
...
Initially written by Guillaume Martres <smarter@ubuntu.com> as a GSoC
project. Further contributions by the OpenHEVC project and other
developers, namely:
Mickaël Raulet <mraulet@insa-rennes.fr>
Seppo Tomperi <seppo.tomperi@vtt.fi>
Gildas Cocherel <gildas.cocherel@laposte.net>
Khaled Jerbi <khaled_jerbi@yahoo.fr>
Wassim Hamidouche <wassim.hamidouche@insa-rennes.fr>
Vittorio Giovara <vittorio.giovara@gmail.com>
Jan Ekström <jeebjp@gmail.com>
Anton Khirnov <anton@khirnov.net>
Martin Storsjö <martin@martin.st>
Luca Barbato <lu_zero@gentoo.org>
Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Diego Biurrun <diego@biurrun.de>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-31 20:19:59 +01:00
Carl Eugen Hoyos
5ab1efb9d0
Fix a crash on oom when decoding hevc.
2013-10-31 20:17:18 +01:00
Mickaël Raulet
7c8b65f688
hevc: add partial support for interlaced(cherry picked from commit 44b592ae6d323445c076ef3ec966ebf9daa8bccf)
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-31 10:00:22 +01:00
Anton Khirnov
cb148e56dc
hevc: refactor pic_arrays and set_sps
...
(cherry picked from commit a6686c6d83b50c0962269f2c487f4f0c57e0df79)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 10:37:10 +01:00
Anton Khirnov
4db81f0817
hevc: add irap checks
...
(cherry picked from commit 3d3bbe35541a308937d0fe72b20a1c29d1c4100d)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-28 10:37:09 +01:00
Anton Khirnov
2f77894ccc
hevc: better mt implementation
...
Signed-off-by: Mickaël Raulet <mraulet@insa-rennes.fr>
(cherry picked from commit 93afb8c519deca85b3c97804927de5b016dd32d1)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-27 23:49:50 +01:00
Mickaël Raulet
2707cca78f
hevc: cosmetic change(cherry picked from commit 3b57513b3f39c04337801fb9d159c7ca8dfa9deb)
...
Decreases the difference to Anton Khirnovs patch v5
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-27 23:48:11 +01:00
Mickaël Raulet
3106cbd321
hevc: more cosmetic(cherry picked from commit 9697abe41daa234602915f85bf6b1c0ca0252cff)
...
Decreases the difference to Anton Khirnovs patch v5
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-27 23:46:54 +01:00
Mickaël Raulet
3c3ece24ea
hevc : cosmetic changes(cherry picked from commit 7308c0ccf13f18cebe4851e6dcd6b5c0b09be1dd)
...
Decreases the difference to Anton Khirnovs patch v5
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-27 23:45:34 +01:00
Michael Niedermayer
758b6d39f6
avcodec/hevc: calculate checksum only if AV_EF_EXPLODE is set
...
This avoids a slowdown with the default of enabled CRC checks
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-27 22:31:04 +01:00
Michael Niedermayer
10386710fd
Merge commit 'afa93d198aaf2cc661c4df6d4095cd030265d30a'
...
* commit 'afa93d198aaf2cc661c4df6d4095cd030265d30a':
hevc_parser: Set pict_type, key_frame and output_picture_number.
hevc: Search start code in decode_nal_units().
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-27 11:29:37 +01:00
Yusuke Nakamura
afa93d198a
hevc_parser: Set pict_type, key_frame and output_picture_number.
...
Conflicts:
libavcodec/hevc.c
2013-10-27 11:07:43 +01:00
Yusuke Nakamura
f7f8801839
hevc: Search start code in decode_nal_units().
...
User may cut off a weird position and send a packet from there.
This avoids returning as invalid data immediately.
2013-10-27 10:43:14 +01:00
Michael Niedermayer
92f649b411
avcodec/hevc: remove CODEC_CAP_EXPERIMENTAL
...
Approved-by: mraulet
Approved-by: smarter
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-23 20:00:11 +02:00
Michael Niedermayer
610a8b1537
avcodec/hevc/extract_rbsp: fix error return type
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-22 20:31:49 +02:00
Mickaël Raulet
0c8aba3842
hevc: add wavefront parallel processing
...
cherry picked from commit b971f2c8fdc60f8bab605a6e8060492eb548a53a
cherry picked from commit e57b0a2c915ce6b8a9d57b8292f6581f0680842e
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-22 20:20:40 +02:00
Mickaël Raulet
1c8de4dd94
hevc: pretty print(cherry picked from commit 6332b3afe298b9e1060e8549aea3aa2771b43f5d)
...
Conflicts:
libavcodec/hevc.h
libavcodec/hevc_filter.c
libavcodec/hevc_refs.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-22 08:41:14 +02:00
Mickaël Raulet
a8fafa8978
hevc: cleaning disable field in deblocking filter(cherry picked from commit 7dd7a27ae850a51b3c9cd07046c422677398f6d5)
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-22 08:41:14 +02:00
Mickaël Raulet
1912842045
hevc: remove disable_au option(cherry picked from commit e90b3f6753d645fec076e951a0597a5dc2d2fe31)
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-22 08:41:14 +02:00
Mickaël Raulet
09ba986cae
avcodec/hevc: fix duplicate/wrong nal unit check and difference to openhevc_upstream
...
NAL_BLA_W_RADL instead of NAL_BLA_N_LP
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-21 10:48:24 +02:00
Michael Niedermayer
f2eca8d060
avcodec/hevc: do not dereference pointer before null check in verify_md5()
...
Fixes: CID1108607
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-20 00:35:18 +02:00
Mickaël Raulet
b5d197a38b
hevc: inline cabac in hls_mvd_coding(cherry picked from commit ad387195ad04e8a005a1bfd509e9e4f827e68fa9)
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-20 00:31:33 +02:00
Mickaël Raulet
92a97d1168
hevc: inline cabac in residual coding(cherry picked from commit 17d7a880445b72feb36d684ae1f0597195811e97)
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-20 00:31:25 +02:00
Michael Niedermayer
4c67ed8705
avcodec/hevc: fix EOB/EOS check
...
Fixes: CID1108575
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-20 00:23:48 +02:00
Mickaël Raulet
a7e300649a
hevc: fix pcm with different chroma luma bit widths(cherry picked from commit 6a444516f338424d062c0ef2806714036283603b)
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-17 02:42:11 +02:00
Mickaël Raulet
b494894390
hevc: optimize residual coding(cherry picked from commit 70692a44708157b4dfa50e402e446bfa2b27f55e)
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-17 02:41:51 +02:00
Michael Niedermayer
f2dd45d06c
lavc/hevc: mark decoder as experimental
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-15 22:13:02 +02:00
Guillaume Martres
c8dd048ab8
lavc: add a HEVC decoder.
...
Initially written by Guillaume Martres <smarter@ubuntu.com> as a GSoC
project. Further contributions by the OpenHEVC project and other
developers, namely:
Mickaël Raulet <mraulet@insa-rennes.fr>
Seppo Tomperi <seppo.tomperi@vtt.fi>
Gildas Cocherel <gildas.cocherel@laposte.net>
Khaled Jerbi <khaled_jerbi@yahoo.fr>
Wassim Hamidouche <wassim.hamidouche@insa-rennes.fr>
Vittorio Giovara <vittorio.giovara@gmail.com>
Jan Ekström <jeebjp@gmail.com>
Anton Khirnov <anton@khirnov.net>
Martin Storsjö <martin@martin.st>
Luca Barbato <lu_zero@gentoo.org>
Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-15 22:13:02 +02:00