Commit Graph

168 Commits

Author SHA1 Message Date
openvela-robot 79d0634421 ffmpeg7: fixed amix format when graph load
Signed-off-by: zhushiqshi <zhushiqshi@xiaomi.com>
2026-04-20 20:57:53 +08:00
openvela-robot 225a503d52 FFMPEG: fix AVPacket mem leak
Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-04-20 20:57:50 +08:00
openvela-robot 6fb822a912 ffmpeg7: add avformat_write_trailer for adevsink
Signed-off-by: zhushiqshi <zhushiqshi@xiaomi.com>
2026-04-20 20:57:47 +08:00
openvela-robot 32ee48238c adevsink:only do grahp reconfig in start flow
Resolve audio ending process interrupted by adevsink non start command

Signed-off-by: shipei <shipei@xiaomi.com>
2026-04-20 20:57:39 +08:00
openvela-robot 3608e86b4f FFMPEG: fix sys/syscrl.h can not find
Signed-off-by: zhushiqshi <zhushiqshi@xiaomi.com>
2026-04-20 20:57:30 +08:00
openvela-robot a6c20059ed FFMPEG: add resume when eos is on
when eos is on, we should resume the stream if it is paused.

Signed-off-by: jinxiuxu <jinxiuxu@xiaomi.com>
2026-04-20 20:57:27 +08:00
openvela-robot 6cf52fc3f3 swscale/output: fill all the xv36le alpha bits
The format is 10 bit per component, not 8.

Signed-off-by: James Almer <jamrial@gmail.com>
2026-04-20 20:57:24 +08:00
openvela-robot 356c47e109 FFMPEG: force start and stop after configure for driver
Signed-off-by: hanqiyuan <hanqiyuan@xiaomi.com>
2026-04-20 20:57:20 +08:00
openvela-robot dccba787a1 fftools/ffmpeg_demux: use proper logging contexts everywhere 2026-04-20 20:57:15 +08:00
openvela-robot 1e2e93b397 FFMPEG: only back completed msg when running state.
Signed-off-by: qiaohaijiao1 <qiaohaijiao1@xiaomi.com>
2026-04-20 20:57:12 +08:00
Anton Khirnov 2f95d7f64d lavc/hevcdec: unbreak WPP/progress2 code
The "progress2" API in pthread_slice.c currently associates a progress
value with a thread rather than a job, relying on the broken assumption
that a job's thread number is equal to its job number modulo thread
count.

This removes this API entirely, and changes hevcdec to use a
ThreadProgress-based implementation that associates a
mutex/cond/progress value with every job.

Fixes races and deadlocks in hevdec with slice threading, e.g. some of
those mentioned in #11221.
2026-04-20 20:57:05 +08:00
openvela-robot 34d0892357 configure: Only try to use the -no_warn_duplicate_libraries flag on Darwin
While we only add the flag if the linker seems to support it,
it turns out that ld.bfd had a bug where the flag is accidentally
accepted, and the flag produces an output file named
"_warn_duplicate_libraries".

The ld.bfd bug was fixed in binutils 2.36, in
https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=3991c7acb29aa8d7d52150695eb3efa03a08dd50.

Signed-off-by: Martin Storsjö <martin@martin.st>
2026-04-20 20:57:04 +08:00
openvela-robot c8c957ba35 adevsrc: modify the type of codec_id option param to string.
codec_id=65544 => codec_name=pcm_s32le.

Signed-off-by: yaojingwei <yaojingwei@xiaomi.com>
2026-04-20 20:57:01 +08:00
James Almer 50274b8658 avcodec/hevc/ps: add a range check for sps_max_sub_layers
It can't be higher than vps_max_sub_layers.

Do this while keeping the workaround for qsvenc_hevc calling ff_hevc_parse_sps()
without a vps_list, as in some cases it needs to parse an sps to generate a fake
vps derived from it.

Signed-off-by: James Almer <jamrial@gmail.com>
2026-04-20 20:56:54 +08:00
openvela-robot 2006b05fae avcodec/hevc/ps: return a proper error code when we don't support parsing an sps
Signed-off-by: James Almer <jamrial@gmail.com>
2026-04-20 20:56:54 +08:00
openvela-robot 79836cf6b9 FFMPEG: ff_nuttx_capbility_query_ranges not relay on AVFormatContext
Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-04-20 20:56:51 +08:00
James Almer 017feb9ea0 avcodec/hevc/ps: print a more accurate message when parsing an SPS for an unsupported layer
With multilayer001.heic:

Before:
[hevc @ ...] Scalability type 2 not supported
[hevc @ ...] Ignoring unsupported VPS extension
[hevc @ ...] The following bit-depths are currently specified: 8, 9, 10 and 12 bits, chroma_format_idc is 0, depth is 0

After:
[hevc @ ...] Scalability type 2 not supported
[hevc @ ...] Ignoring unsupported VPS extension
[hevc @ ...] SPS 1 references an unsupported VPS extension. Ignoring

Signed-off-by: James Almer <jamrial@gmail.com>
2026-04-20 20:56:34 +08:00
James Almer f8f19e212f avcodec/hevc/ps: print the correct unsupported scalability value found
With multilayer001.heic, which signals Spatial scalability:

Before:
[hevc @ ...] Scalability type 1 not supported
[hevc @ ...] Ignoring unsupported VPS extension

After:
[hevc @ ...] Scalability type 2 not supported
[hevc @ ...] Ignoring unsupported VPS extension

Signed-off-by: James Almer <jamrial@gmail.com>
2026-04-20 20:56:34 +08:00
openvela-robot 48ade96938 lavfi/buffersink: add array-type options to replace "int-list" ones
"int-list" options are a hack that provides rudimentary support for
array-type options by treating them as byte arrays (i.e.
AV_OPT_TYPE_BINARY). Since we now have proper array-type options, they
should replace "int-list" everywhere (which happens to be just
buffersink).
2026-04-20 20:56:25 +08:00
openvela-robot 53a6ff767c FFmpeg/bluelet: output bluelet send & recv timer duration.
Signed-off-by: zhaocheng1 <zhaocheng1@xiaomi.com>
2026-04-20 20:56:22 +08:00
openvela-robot 0f949a99a6 MAINTAINERS: update myself for dvdvideo, rcwtdec, rcwtenc
I plan to look after and test them for the forseeable future.
I am not a committer but do care for these muxers/demuxers.

Signed-off-by: Marth64 <marth64@proxyid.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2026-04-20 20:56:19 +08:00
openvela-robot 3450efdfb3 asrc_dev: add codec option param.
Signed-off-by: yaojingwei <yaojingwei@xiaomi.com>
2026-04-20 20:56:16 +08:00
James Almer 2334f733f6 avcodec/hevc/sei: num_ref_displays can be up to 32
Signed-off-by: James Almer <jamrial@gmail.com>
2026-04-20 20:56:07 +08:00
James Almer 968b21a079 avcodec/hevc/refs: export Stereo 3D side data
Use the 3D Reference Displays Info SEI message to link a view_id with
an eye.

Signed-off-by: James Almer <jamrial@gmail.com>
2026-04-20 20:56:03 +08:00
Anton Khirnov dfcf5bcfcb lavc/hevcdec: implement decoding MV-HEVC
At most two layers are supported.

Aspects of this work were sponsored by Vimeo and Meta.
2026-04-20 20:56:03 +08:00
Anton Khirnov 54f0ad856a lavc/hevc/hevcdec: implement MV-HEVC inter-layer prediction
The per-frame reference picture set contains two more lists -
INTER_LAYER[01]. Assuming at most two layers, INTER_LAYER1 is always
empty, but is added anyway for completeness.

When inter-layer prediction is enabled, INTER_LAYER0 for the
second-layer frame will contain the base-layer frame from the same
access unit, if it exists.

The new lists are then used in per-slice reference picture set
construction as per F.8.3.4 "Decoding process for reference picture
lists construction".
2026-04-20 20:56:02 +08:00
Anton Khirnov 390f06cf3c lavc/hevcdec: implement slice header parsing for nuh_layer_id>0
Cf. F.7.3.6.1 "General slice segment header syntax"
2026-04-20 20:56:02 +08:00
Anton Khirnov 00d534fe2f lavc/hevc/parser: only split packets on NALUs with nuh_layer_id=0
A packet should contain a full access unit, which for multilayer video
should contain all the layers.
2026-04-20 20:56:02 +08:00
Anton Khirnov 5ea66ffee6 lavc/hevcdec/parse: process NALUs with nuh_layer_id>0
Otherwise parameter sets from extradata with nuh_layer_id>0 would be
ignored. Needed for upcoming MV-HEVC support.
2026-04-20 20:56:02 +08:00
Anton Khirnov 55def48c43 lavc/hevc/ps: reindent 2026-04-20 20:56:02 +08:00
Anton Khirnov b77198389e lavc/hevc/ps: implement SPS parsing for nuh_layer_id>0
Cf. F.7.3.2.2 "Sequence parameter set RBSP syntax", which extends normal
SPS parsing with special clauses depending on MultiLayerExtSpsFlag.
2026-04-20 20:56:02 +08:00
Anton Khirnov b7ba0dce32 lavc/hevc/ps: drop a warning for sps_multilayer_extension_flag
SPS multilayer extension contains a single flag that we are free to
ignore, no reason to print a warning.
2026-04-20 20:56:02 +08:00
Niklas Haas 1257789b38 lavc/hevc_ps: parse VPS extension
Only implementing what's needed for MV-HEVC with two views.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2026-04-20 20:56:02 +08:00
James Almer fa297f6c40 avcodec/hevc/sei: add support for 3D Reference Displays Information SEI
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2026-04-20 20:56:02 +08:00
James Almer b810543591 avcodec/hevc/refs: ensure LCEVC SEI payloads are exported as frame side data before get_buffer() calls
Signed-off-by: James Almer <jamrial@gmail.com>
2026-04-20 20:56:01 +08:00
Zhao Zhili 0f40409123 avcodec/hevc: ff_hevc_(qpel/epel)_filters are signed type 2026-04-20 20:55:54 +08:00
Anton Khirnov 5688c002fe lavc/hevcdec: set per-CTB filter parameters for WPP
Fixes #10887
2026-04-20 20:55:53 +08:00
Anton Khirnov 9c2c6ba2c6 lavc/hevcdec: remove a duplicate variable
In hls_decode_entry_wpp(), self_id is always identical to thread.
2026-04-20 20:55:53 +08:00
Anton Khirnov 073ed5f546 lavc/hevcdec: set output frame pkt_dts
pkt_dts needs to be set manually when using the receive_frame() callback, so
it was unset after 2fdecbb239714b6203e37067fda2521f80e19d47.

Fixes PTS guessing for certain files with broken timestamps. Cf.
https://github.com/mpv-player/mpv/issues/14806

Reported-by: llyyr <llyyr.public@gmail.com>
2026-04-20 20:55:52 +08:00
openvela-robot e2419e45b6 avutil/cpu_internal: Provide ff_getauxval() wrapper for getauxvaul()
Initially used for getauxval() but will be used to add support for
other API, such as elf_aux_info().

Signed-off-by: Brad Smith <brad@comstyle.com>
2026-04-20 20:55:47 +08:00
openvela-robot 1982473758 ffmpeg: fix coverity issue on error branch
Signed-off-by: jihandong <jihandong@xiaomi.com>
2026-04-20 20:55:44 +08:00
Anton Khirnov 38548a5842 lavc/hevc: check framerate num/den to be strictly positive
Rather than just != 0. These values are read as uint32 and can become
negative when cast to int.
2026-04-20 20:55:37 +08:00
Anton Khirnov 23e965abd5 lavc/hevcdec: move active SPS from HEVCParamSets to HEVCLayerContext
Currently active SPS is a per-layer property.
2026-04-20 20:55:36 +08:00
Anton Khirnov f44cb36a14 lavc/hevcdec: make a HEVCFrame hold a reference to its PPS
ff_hevc_get_ref_list() needs the PPS of a previously decoded frame,
which may be different from the currently active one.
2026-04-20 20:55:36 +08:00
Anton Khirnov b91b47cf09 lavc/hevcdec: move HEVCContext.sao_pixel_buffer_[vh] to HEVCLayerContext
Handle them together with other sps-dependent arrays.

Note that current code only allocates these arrays when hwaccel is not
set, but this is wrong as the relevant code runs BEFORE get_format() is
called and hence before we know whether hwaccel is in use.
2026-04-20 20:55:36 +08:00
Anton Khirnov f46341f992 lavc/hevcdec: move HEVCContext.{tab_mvf,rpl_tab}_pool to HEVCLayerContext
pic_arrays_{init,free}() no longer access HEVCContext
2026-04-20 20:55:36 +08:00
Anton Khirnov ce13a3eafe lavc/hevcdec: move HEVCContext.{horizontal,vertical}_bs to HEVCLayerContext 2026-04-20 20:55:36 +08:00
Anton Khirnov c3fb980000 lavc/hevcdec: move HEVCContext.qp_y_tab to HEVCLayerContext 2026-04-20 20:55:36 +08:00
Anton Khirnov fe3aaa3fbc lavc/hevcdec: move HEVCContext.tab_slice_address to HEVCLayerContext 2026-04-20 20:55:36 +08:00
Anton Khirnov 3cbd8231d2 lavc/hevcdec: move HEVCContext.filter_slice_edges to HEVCLayerContext 2026-04-20 20:55:36 +08:00