Commit Graph

111205 Commits

Author SHA1 Message Date
James Almer 5a2ff43384 avformat/evcdec: simplify au_end_found check
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-20 11:35:21 -03:00
James Almer ca8a660176 avformat/evcdec: simplify probe function
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-20 11:35:21 -03:00
Andreas Rheinhardt 43991dbd05 avformat/assenc: Fix potential NULL + 1
Incrementing a NULL pointer is undefined behaviour,
yet this is what would happen in case trailer were NULL
before the check.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2023-06-20 16:15:08 +02:00
Tomas Härdin 8e53233f68 lavc/msrleenc: Add msrle encoder
Keyframes are marked automagically
2023-06-20 14:37:52 +02:00
Tomas Härdin 4cc40c050a lavc/riffenc: Fix msrle support on Windows 95 2023-06-20 14:35:35 +02:00
Paul B Mahol 2cac3fd744 avformat: add raw AC-4 muxer 2023-06-20 12:47:00 +02:00
Haihao Xiang 88b3841149 lavfi/qsvvpp: use the right picture struct for vpp initilaization
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-06-20 09:52:43 +08:00
Haihao Xiang bcdea21675 lavfi/qsvvpp: postpone vpp session initialization
So there is a chance to update vpp parameters per frame

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-06-20 09:52:43 +08:00
Haihao Xiang cf21ca9efb lavfi/qsvvpp: store a copy of the sequence parameters
We will postpone the vpp session initialization to when input and output
frames are ready, this copy of the sequence parameters will be used to
initialize vpp session.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-06-20 09:52:43 +08:00
Haihao Xiang 579711c2cc lavfi/qsvvpp: check the parameters before initializing vpp session
According to the description about MFXVideoVPP_Query [1], we may call
MFXVideoVPP_Query to check the validity of the parameters for vpp
session, use the corrected values to initialize the session.

[1] https://spec.oneapi.io/versions/latest/elements/oneVPL/source/API_ref/VPL_func_vid_vpp.html#mfxvideovpp-query

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-06-20 09:52:43 +08:00
Haihao Xiang 5189b51939 lavfi/qsvvpp: copy metadata fields from src to dst
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-06-20 09:52:43 +08:00
Haihao Xiang 07139b6deb lavfi/qsvvpp: track the runtime version in vpp context
We may check whether a feature is supported via the runtime version in
future.

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2023-06-20 09:52:43 +08:00
Yeoh, Hoong Tee da4b2549c6 lavf/rtpenc_jpeg: Retrieve sampling factor from SOF0
In ff_rtp_send_jpeg, the type is defined based on PIX_FMT and
color-range parsed in. There is limitation on current design
where need to include support newly introduced PIX_FMT such as
AV_PIX_FMT_QSV and there might be more and more in future. Hence,
retrive the sampling factor from SOF0 in JPEG compressed header
directly. This introduces flexibility to handle different type of
new codec introduced in future.

Signed-off-by: Yeoh, Hoong Tee <hoong.tee.yeoh@intel.com>
2023-06-20 09:52:43 +08:00
Aman Karmani 961b17eace avformat/mpegts: add AC-4 2023-06-20 01:13:38 +02:00
Paul B Mahol 293e353460 avformat/isom_tags: add AC-4 2023-06-20 01:13:38 +02:00
Paul B Mahol 9c6538d4c2 avformat: add raw AC-4 demuxer 2023-06-20 01:13:38 +02:00
Paul B Mahol 2bc65003e2 avcodec: AC-4 codec registration 2023-06-20 01:11:31 +02:00
James Almer 7ff3dce29a avcodec/evc_parse: use get_bits1() where useful
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 19:43:17 -03:00
James Almer 5b372c7ff2 avcodec/evc_ps: use get_bits1() where useful
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 19:43:12 -03:00
Paul B Mahol ea190b8a23 avfilter/vf_drawtext: use flags type of option for text_align 2023-06-19 22:35:53 +02:00
yethie 01420316d2 avfilter/vf_drawtext: add support for commands 2023-06-19 22:35:53 +02:00
yethie 692d37d2e9 avfilter/vf_drawtext: add y_align option
The new y_align option specifies if the user provided y value
is referred to the top of the text, to the font baseline or to the
top of the font
2023-06-19 22:35:53 +02:00
yethie 5f2d907de2 avfilter/vf_drawtext: implement text alignment
Text can now be aligned vertically (top, middle, bottom) and horizontally (left, center, right)
relative to the background box.
2023-06-19 22:35:53 +02:00
yethie 01d843f6d0 avfilter/vf_drawtext: add expression variables to control font ascent/descent
The following new variables can be used in the x and y expressions: font_a, font_d, top_a, bottom_d.
2023-06-19 22:35:53 +02:00
yethie fac7bb06d8 avfilter/vf_drawtext: add options for size of the background box 2023-06-19 22:35:53 +02:00
yethie 79e39978d8 avfilter/vf_drawtext: extend boxborderw option
Adds support for different border size in each direction.
2023-06-19 22:35:53 +02:00
yethie 1eeb59a209 avfilter/vf_drawtext: improve glyph shaping and positioning
- text is now shaped using libharfbuz
- glyphs position is now accurate to 1/4 pixel in both directions
- the default line height is now the one defined in the font

Adds libharfbuzz dependency.
2023-06-19 22:35:52 +02:00
yethie ba00ed33e5 avfilter/vf_drawtext: cosmetics 2023-06-19 22:35:52 +02:00
James Almer 17499f43b1 avformat/evc: remove unused variable
And check the correct one. Should fix use of uninitialized value warnings.

Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 17:34:15 -03:00
James Almer e81eafcb97 avformat/evc: skip nalu header size bytes before parsing sps
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 17:21:19 -03:00
James Almer 048b8bdd5e avformat/evc: use get_bits_long() where needed
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 17:21:19 -03:00
James Almer 377da83b99 avcodec/evc_ps: check valid range for a few more elements
Should prevent overreads on non spec comformant input.

Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 17:21:14 -03:00
James Almer 199fc04d09 avcodec/evc_ps: use get_bits_long() where needed
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 16:25:13 -03:00
Michael Niedermayer 89f98acbf8 avcodec/evc_ps: Check log2_sub_gop_length
Fixes: 1.70141e+38 is outside the range of representable values of type 'int'
Fixes: 59883/clusterfuzz-testcase-minimized-ffmpeg_BSF_EVC_FRAME_MERGE_fuzzer-5557887217565696

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 16:00:55 -03:00
James Almer 921596e677 avcodec/evc_ps: make ff_evc_parse_{sps,pps} return an error code
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 16:00:55 -03:00
James Almer 5cb9ef9300 avcodec/evc_parse: remove ff_evc_parse_nal_unit()
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 12:57:31 -03:00
James Almer 56e52e870d avcodec/evc_frame_merge_bsf: make ff_evc_parse_nal_unit() local to the filter
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 12:57:31 -03:00
James Almer fdd8daf899 avcodec/evc_parser: remove write only variable
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 12:57:31 -03:00
James Almer a5663f2d9a avcodec/evc_parser: make ff_evc_parse_nal_unit() local to the parser
This is in preparation for the following commits.

Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 12:57:31 -03:00
James Almer ff7a4cdf04 avcodec/evc_parse: split off deriving PoC
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 12:57:31 -03:00
James Almer f7e0af5edc avcodec/evc_parser: stop exporting delay and gop_size
The former is a property a decoder may export, and the latter is only
used in encoding scenarios.

Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 12:57:31 -03:00
James Almer 1e189fed7a avcodec/evc_parse: split off Parameter Set parsing into its own file
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 12:57:31 -03:00
James Almer 4afee83d35 fate/lavf-container: add a test to remux raw evc into mp4
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 12:57:31 -03:00
James Almer 8ab706677c avcodec/evc_frame_merge_bsf: use av_new_packet()
This ensures the buffer is padded as required by the AVPacket API.

Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 12:57:31 -03:00
James Almer 96fc192733 avcodec/evc_frame_merge: use av_fast_realloc()
Signed-off-by: James Almer <jamrial@gmail.com>
2023-06-19 12:57:31 -03:00
Anton Khirnov 1617d1a752 fftools/ffmpeg: pass subtitle decoder dimensions to sub2video
Restores behavior from before 20cacfe493.
Eventually this should be handled similarly to audio/video - with a
filtergraph reset or a manual scaler.
2023-06-19 09:48:56 +02:00
Anton Khirnov 88f80977eb fftools/ffmpeg: use AVFrame to pass subtitles from decoders to filters
Allows to use the same buffering code for all media types. Will also be
important for the following commit.
2023-06-19 09:48:56 +02:00
Anton Khirnov fa717baaa5 fftools/ffmpeg_enc: constify the subtitle passed to enc_subtitle() 2023-06-19 09:48:56 +02:00
Anton Khirnov e89a6d1089 fftools/ffmpeg_dec: move InputStream.prev_sub to Decoder
It does not need to be visible outside of decoding code.
2023-06-19 09:48:56 +02:00
Anton Khirnov a45b9d35b9 fftools/ffmpeg: move fix_sub_duration_heartbeat() to ffmpeg_dec
This way ffmpeg.c does not need to access InputStream.prev_sub and it
can be made private.
2023-06-19 09:48:55 +02:00