Arnie Chang
c5508f60c2
lavc/h264chroma: RISC-V V add motion compensation for 8x8 chroma blocks
...
Optimize the put and avg filtering for 8x8 chroma blocks
Signed-off-by: Arnie Chang <arnie.chang@sifive.com>
2 years ago
Lynne
9f9534f5b6
vulkan_decode: fix typo when setting AV1 capabilities
...
All pNext chained structs in Vulkan are defined as void *, so it doesn't
help catch this.
2 years ago
Dawid Kozinski
637afea88e
avcodec: MPEG-5 EVC codec registration
...
Added prerequisites that must be met before providing support for the MPEG-5 EVC codec
- Added new entry to codec IDs list
- Added new entry to the codec descriptor list
- Bumped libavcodec minor version
- Added profiles for EVC codec
Signed-off-by: Dawid Kozinski <d.kozinski@samsung.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years ago
Lynne
e71cd18049
vulkan_decode: do not align the image dimensions
...
According to Dave Airlie:
> <airlied> but I think ignoring it should be fine, I can't see any
> other way to get the imaeg extents correct for other usage
> <Lynne> what width/height should be used for the images?
> the final presentable dimensions, or the coded dimensions?
> <airlied> if you don't want noise I think the presentable dims
> <airlied> the driver should round up the allocations internally,
> but if you are going to sample from the images then w/h have to be
> the bounds of the image you want
> <airlied> since otherwise there's no way to stop the sampler from
> going outside the edges
Apparently, the alignment values are informative, rather than mandatory,
but the spec's wording makes it sound as if they're mandatory.
2 years ago
James Almer
246bec23a9
avcodec/hevc_ps: remove a unused variable
...
Signed-off-by: James Almer <jamrial@gmail.com>
2 years ago
James Almer
fe103ee61f
avcodec/vulkan_dec: use PRId64 specifier for an int64_t
...
Fixes warnings on x86-32 and Windows.
Signed-off-by: James Almer <jamrial@gmail.com>
2 years ago
Lynne
bae92361ed
vulkan_decode: check if yuv_sampler exists before freeing it
...
This prevents multiple NULL accesses - if yuv_sampler exists, then
everything required for it to be destroyed also exists.
2 years ago
Lynne
58f82fc26a
vulkan: replace usage of %lu with %"SIZE_SPECIFIER"
2 years ago
Michael Niedermayer
988fd5743d
avcodec/kbdwin: Remove low precision intermediate in ff_kbd_window_init_fixed()
...
Previously floats where scaled up to 32bit int, but floats do not
have 32bits in their mantisse so a quarter of the bits where nonsense.
It seems no fate test is affected by this change, which is interresting
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years ago
Michael Niedermayer
17ecb224e9
avcodec/kbdwin: Avoid computing bessel values twice
...
Also reduce neeeded temporary storage by half
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years ago
Michael Niedermayer
4ea87c0f73
avcodec/kbdwin: Use av_bessel_i0()
...
Old code used about 7 times as many cpu cycles as new
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years ago
Lynne
f3795e1857
APIchanges: add AVHWAccel changes and bump lavc minor
2 years ago
Lynne
f701f088f4
vulkan_h264: reject end_frame being called without valid session parameters
...
When seeking through MBAFF-coded H264, this can happen. Decoding calls end_frame
without calling start_frame. We are unable to decode this, as no frame
state has been set.
Happens for both VAAPI and Vulkan. Could be an issue elsewhere, hence
the individual commit.
2 years ago
Lynne
77478f6793
av1dec: add Vulkan hwaccel
2 years ago
Lynne
6ec58ff820
cbs_av1: expose tile col/row starts in SBs
2 years ago
Dave Airlie
e49b8b48cd
av1: set skip mode frames properly
...
There are circumstances where the flag isn't set but the skip mode
frames are. So don't use the inferred bit which has other inputs
when deciding to pass the skip mode frames to the device.
This fixes some decoding bugs on intel av1
2 years ago
Lynne
36c16a06b2
hevcdec: add Vulkan hwaccel
...
Thanks to Dave Airlie for figuring out a lot of the parameters.
2 years ago
Lynne
a9fbe8b472
h264dec: add Vulkan hwaccel
...
Thanks to Dave Airlie for figuring out a lot of the parameters.
2 years ago
Lynne
1e8fefff93
libavcodec: add Vulkan common video decoding code
2 years ago
Lynne
023ae6103f
libavcodec: add Vulkan common video code
2 years ago
Lynne
6733a1a456
avcodec: add AVHWAccel.flush callback
2 years ago
Lynne
be07145109
avcodec: add AVHWAccel.free_frame_priv callback
2 years ago
Lynne
21719c29a2
hevc_ps: expose sps_extension_present_flag
2 years ago
Lynne
8b2d46ee3d
hevc_ps: expose conformance_window_flag
2 years ago
Lynne
cc5fab5c48
hevc_ps: expose sublayer_ordering_info_flag
2 years ago
Lynne
32fcb17e42
hevc_ps: expose vui_present flag
2 years ago
Lynne
f58db8e534
hevc_ps: expose rps fields
2 years ago
Lynne
abdd87d44e
hevc_ps: expose log2_diff_max_min_transform_block_size
2 years ago
Lynne
6eaca2abd8
hevcdec: expose bits_used_for_short_term_rps
2 years ago
Lynne
4e1f3ab184
hevc_ps: expose pps_extension_present_flag
2 years ago
Lynne
d0b02c3aff
hevc_ps: expose vps_id
2 years ago
Lynne
3bc866159c
hevc_ps: expose pps_id
2 years ago
Lynne
fc429d785e
hevc_ps: expose SPS and VPS headers
2 years ago
Lynne
20de09a6de
h264_ps: expose scaling_matrix_present_mask
...
Vulkan requires it.
It technically also requires use_default_scaling_matrix_mask,
but we can just be explicit and give it the matrix we fill in as-non
default.
2 years ago
Lynne
d13b1c42f6
h264_ps: expose bit rate and CPB size fields
2 years ago
Lynne
de6fce727c
h264_ps: expose max_dec_frame_buffering
2 years ago
Lynne
1f66e3347d
h264_ps: comment pic_order_present better
...
The official name which CBS uses is bottom_field_pic_order_in_frame_present_flag.
2 years ago
Lynne
6718b37e5d
h264_ps: set pic_scaling_matrix_present_flag
2 years ago
Lynne
02f38af2dd
h264_ps: expose pps_id
2 years ago
Lynne
317fa3bd1d
h2645_vui: expose aspect_ratio_info_present_flag
2 years ago
Lynne
dc2694557d
h2645_vui: expose aspect_ratio_idc
2 years ago
Lynne
b6a6e2b19d
lavc/decode: allow to allocate hwaccel_priv_data early
2 years ago
Anton Khirnov
8b23644408
lavc/pthread_frame: add support for thread-safe hwaccels
2 years ago
Anton Khirnov
3d2e1aa324
lavc/decode: stop duplicating code from hwaccel_uninit()
2 years ago
Anton Khirnov
a4611e3170
lavc/decode: pass AVHWAccel instead of AVCodecHWConfigInternal to hwaccel_init()
...
The only thing besides the hwaccel that this function uses from
AVCodecHWConfigInternal is the pixel format, which should always match
the hwaccel one.
Will be useful in following commits.
2 years ago
yuanhecai
f6077cc666
avcodec/la: Add LSX optimization for h264 qpel.
...
./configure --disable-lasx
ffmpeg -i 1_h264_1080p_30fps_3Mbps.mp4 -f rawvideo -y /dev/null -an
before: 214fps
after: 274fps
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years ago
Lu Wang
8815a7719e
avcodec/la: Add LSX optimization for h264 chroma and intrapred.
...
./configure --disable-lasx
ffmpeg -i 1_h264_1080p_30fps_3Mbps.mp4 -f rawvideo -y /dev/null -an
before: 199fps
after: 214fps
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years ago
Hao Chen
7845b5ecd6
avcodec/la: Add LSX optimization for loop filter.
...
Replaced function(LSX is sufficient for these functions):
ff_h264_v_lpf_chroma_8_lasx
ff_h264_h_lpf_chroma_8_lasx
ff_h264_v_lpf_chroma_intra_8_lasx
ff_h264_h_lpf_chroma_intra_8_lasx
ff_weight_h264_pixels4_8_lasx
ff_biweight_h264_pixels4_8_lasx
./configure --disable-lasx
ffmpeg -i 1_h264_1080p_30fps_3Mbps.mp4 -f rawvideo -y /dev/null -an
before: 161fps
after: 199fps
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years ago
Shiyou Yin
e1b6ecd20a
avcodec/la: add LSX optimization for h264 idct.
...
loongson_asm.S is LoongArch asm optimization helper.
Add functions:
ff_h264_idct_add_8_lsx
ff_h264_idct8_add_8_lsx
ff_h264_idct_dc_add_8_lsx
ff_h264_idct8_dc_add_8_lsx
ff_h264_idct_add16_8_lsx
ff_h264_idct8_add4_8_lsx
ff_h264_idct_add8_8_lsx
ff_h264_idct_add8_422_8_lsx
ff_h264_idct_add16_intra_8_lsx
ff_h264_luma_dc_dequant_idct_8_lsx
Replaced function(LSX is sufficient for these functions):
ff_h264_idct_add_lasx
ff_h264_idct4x4_addblk_dc_lasx
ff_h264_idct_add16_lasx
ff_h264_idct8_add4_lasx
ff_h264_idct_add8_lasx
ff_h264_idct_add8_422_lasx
ff_h264_idct_add16_intra_lasx
ff_h264_deq_idct_luma_dc_lasx
Renamed functions:
ff_h264_idct8_addblk_lasx ==> ff_h264_idct8_add_8_lasx
ff_h264_idct8_dc_addblk_lasx ==> ff_h264_idct8_dc_add_8_lasx
./configure --disable-lasx
ffmpeg -i 1_h264_1080p_30fps_3Mbps.mp4 -f rawvideo -y /dev/null -an
before: 155fps
after: 161fps
Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years ago
Paul B Mahol
c6b6356635
avformat/gifdec: switch to using gif parser
...
Update fate test, more correct as last packet is not truncated.
2 years ago