James Almer
7347b44224
avcodec/evc_ps: use unsigned types in structs where corresponds
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-23 08:37:23 -03:00
James Almer
5b966be5b8
avcodec/evc_parse: use unsigned types in structs where corresponds
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-23 08:37:23 -03:00
James Almer
528dd5637d
avformat/evc: remove duplicate defines
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-23 08:37:23 -03:00
James Almer
3d1199dff6
avformat/evc: add range checks to evcc_parse_sps and return proper error codes
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-23 08:37:23 -03:00
James Almer
552879d621
avformat/evc: remove duplicate check
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-23 08:37:23 -03:00
James Almer
d0fc1b3507
avformat/evc: remove unnecessary struct
...
And don't use get_ue_golomb_long() for known small values.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-23 08:37:23 -03:00
James Almer
b1b45ac9d4
avcodec/evc_frame_merge: ensure the assembled buffer fits in an AVPacket
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-23 08:37:23 -03:00
James Almer
25ce1c8333
avformat/id3v2: check the return value of avio_close_dyn_buf()
...
Fixes ticket #10424 .
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-22 21:00:15 -03:00
James Almer
9834660601
avcodec/evc_frame_merge: copy input packet props to output
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-22 16:08:14 -03:00
James Almer
daf61a706a
avcodec/evc_frame_merge: reindent after previous commit
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-22 16:08:14 -03:00
James Almer
e6359b0cc1
avcodec/evc_frame_merge: properly support packets with more than one NALU
...
Parse through all NALUs in a packet, pull new ones when a complete AU could not
be assembled, or keep them around if an AU was assembled while data remained in
them.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-22 16:08:14 -03:00
James Almer
1bcb8a7338
avcodec/evc_parser: use a GetBitContext to parse entire NALUs
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-21 13:31:14 -03:00
James Almer
7fc6c7633e
avcodec/evc_frame_merge: use a GetBitContext to parse entire NALUs
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-21 13:31:14 -03:00
James Almer
c7183a22db
avformat/evc: move NALU length and type parsing functions to a header
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-21 13:31:14 -03:00
James Almer
e5da2ec456
avcodec/evc_parse: pass a GetBitContext to the slice header parsing function
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-21 13:31:14 -03:00
James Almer
2212808a72
avcodec/evc_ps: pass a GetBitContext to the SPS and PPS parsing functions
...
This is in preparation for the following patch.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-21 13:31:14 -03:00
James Almer
d0d20f16ce
avformat/evcdec: use an unsigned type for nalu_size
...
But ensure the value returned by evc_read_nal_unit_length() fits in an int.
Should prevent integer overflows later in the code.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-21 13:31:14 -03:00
James Almer
a6a5e53595
avformat/evcdec: flush the bsf on EOF
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-21 13:31:14 -03:00
James Almer
43ace56c7e
avformat/evcdec: remove unnecessary av_packet_unref() calls
...
And return proper error codes.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-21 13:31:14 -03:00
James Almer
2276bcc52a
avformat/evcdec: ensure there are enough bytes to seekback
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-21 13:31:14 -03:00
James Almer
98cae37e23
Changelog: mention the recent AC-4 additions
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-20 14:54:11 -03:00
James Almer
3f48815501
avformat/evcdec: don't set AVCodecParameters.framerate
...
It's not necessary. Setting AVStream.avg_frame_rate is enough.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-20 11:35:21 -03:00
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
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
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
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
James Almer
5e9986fd2d
avformat/evc: use get_ue_golomb_long()
...
Fixes compilation of shared libraries, as well as correctly parses
width and height values.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-18 23:40:46 -03:00
James Almer
dbc4c22890
avcodec/evc_parse: add missing includes
...
Fixes make checkheaders.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-17 12:43:15 -03:00
James Almer
be91c5c80d
configure: fix evc related dependencies
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-17 10:16:45 -03:00
James Almer
f24064e627
avcodec/evc_frame_merge_bsf: free EVCFMergeContext on flush and close
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-17 10:08:54 -03:00
James Almer
b1d0b59d81
avcodec/evc_frame_merge_bsf: check for av_memdup() failure
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-17 10:08:54 -03:00
James Almer
9fc1d9adc8
avcodec/evc_parse: make freeing EVCParserContext buffers a shared function
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-17 10:08:54 -03:00
James Almer
46a9be01b8
avcodec/evc_parse: free pps struct on parsing failure
...
Prevents future checks for their presence from succeeding.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-17 10:08:54 -03:00
James Almer
811460f5c2
avcodec/evc_parse: use the correct sps when parsing slice headers
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-17 10:08:54 -03:00
James Almer
44f26315c8
avcodec/evc_parse: use a local EVCParserSliceHeader when parsing slices
...
There's no need to store EVC_MAX_PPS_COUNT amount of slice headers in EVCParserContext.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-17 10:08:54 -03:00
James Almer
57879b23bc
avcodec/evc_parse: zero sps, pps and sh structs
...
Otherwise stale values may remain in place.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-17 10:08:54 -03:00
James Almer
da2af70ffa
avcodec/evc_parser: export framerate to the AVCodecContext
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-17 10:08:53 -03:00
James Almer
f42df8384a
avcodec/evc_parse: use the correct struct size when allocating pps
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-16 10:08:32 -03:00
James Almer
d00f0eebbd
avcodec/evc_parser: remove superfluous memset calls
...
The entire EVCParserContext will be zeroed during allocation.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-16 09:57:35 -03:00
James Almer
a734fa92c8
avformat/evcdec: set the demuxer as AVFMT_NOTIMESTAMPS
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-16 09:57:35 -03:00
James Almer
81b4e4abb0
avformt/version: bump minor after evc muxer and demuxer additions
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-15 11:44:37 -03:00
James Almer
77c5c74375
avcodec/version: bump minor after evc parser and frame_merge bsf additions
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-15 11:44:04 -03:00
James Almer
20584cdd89
avformat/av1: reduce the scope of a variable
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-06 09:26:19 -03:00
James Almer
a5e45988ac
avformat/av1dec: don't return EIO when the input file is truncated
...
There was no problem reading the file, so EIO is not correct.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-06 09:26:19 -03:00
James Almer
da61ed80fd
avformat/av1dec: fix EOF check in Annex-B demuxer
...
And return any packet buffered by the bsf.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-06 09:26:19 -03:00
James Almer
4da14c302f
avcodec/av1dec: reset the fragment on extradata reading failure
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-02 14:07:20 -03:00
James Almer
8c6b931f4c
avcodec/av1dec: reset the fragment on reading failure
...
Fixes: NULL pointer dereference
Fixes: 59359/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AV1_fuzzer-6726080594313216
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-02 14:01:10 -03:00
James Almer
da23151eaf
avformat/oggparseflac: use the GetByteContext API
...
All but one read are byte aligned, so there's no point in using the
GetBitContext API.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-06-01 19:51:06 -03:00
James Almer
246bec23a9
avcodec/hevc_ps: remove a unused variable
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-28 23:24:51 -03:00
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 >
2023-05-28 23:18:53 -03:00
James Almer
e86e2d5921
fftools/ffmpeg_dec: abort if avcodec_send_packet() returns EAGAIN
...
As the comment in the code mentions, EAGAIN is not an expected value here
because we call avcodec_receive_frame() until all frames have been returned.
avcodec_send_packet() returning EAGAIN means a packet is still buffered, which
hints that the underlying decoder is buggy and not fetching packets as it
should.
An example of this behavior was in the libdav1d wrapper before f209614290 ,
where feeding it split frames (or individual OBUs) would result in the CLI
eventually printing the confusing "Error submitting packet to decoder: Resource
temporarily unavailable" error message, and just keep going until EOF without
returning new frames.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-26 19:47:54 -03:00
James Almer
97f4263457
avcodec/av1dec: convert to receive_frame()
...
This removes the overhead of inserting the av1_frame_split bsf as part of the
decoding process.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-25 11:21:35 -03:00
James Almer
f209614290
avcodec/libdav1d: only return EAGAIN when there are no buffered packets
...
Fixes decoding packets containing split temporal units, as generated for example
by the av1_frame_split bsf.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-22 16:19:10 -03:00
James Almer
b6066ceb8b
fate/checkasm: add h264chroma test
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-20 18:26:13 -03:00
James Almer
efdc6e8200
avformat/matroskaenc: remove accidental variable shadowing
...
Should fix use of uninitialized value in a failure path.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-20 09:28:46 -03:00
James Almer
bd9d984c11
fate/demux: fix fate-cavs-demux
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-20 00:10:54 -03:00
James Almer
d55743c809
avfilter/af_surround: replace double constants with float variants
...
This is cleaner than the approach in d1ded7310a .
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-19 17:12:04 -03:00
James Almer
4d885271bb
avutil/mathematics: add missing constants
...
Including float variants for all of them.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-19 17:10:58 -03:00
James Almer
1b05d27346
avcodec/libdav1d: export decoder frame delay
...
As this is an AV_CODEC_CAP_OTHER_THREADS decoder, threading is handled by the
underlying library. In this case, the frame delay is calculated by libdav1d
based on the values from avctx->thread_count and the private max_frame_delay
option.
Export said delay reported by the library in AVCodecContext.delay
Reviewed-by: Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-19 15:29:31 -03:00
James Almer
a2a0a81184
avformat/yuvmpegenc: add support for rawvideo input
...
The demuxer exports rawvideo, so there's no reason for the muxer to only
work with wrapped_avframe.
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-18 17:31:37 -03:00
James Almer
4adb6da7a6
avutil/frame: remove one layer of indirection in av_frame_replace()
...
And don't force copy side data.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-18 11:52:16 -03:00
James Almer
4f9799bd88
avcodec/h264_picture: use ff_thread_replace_frame()
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-18 10:52:30 -03:00
James Almer
3fe74c9017
avcodec/utils: add ff_thread_replace_frame()
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-18 10:16:03 -03:00
James Almer
01d444c077
avutil/frame: add av_frame_replace
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-18 10:15:59 -03:00
James Almer
63767b79a5
avutil/frame: deprecate palette_has_changed
...
Not only this is information that relies on the concept of a sequence of
frames, which is completely out of place as a field in AVFrame, but there are
no known or intended uses of this field.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-18 08:45:23 -03:00
James Almer
6759983bdc
avcodec/cbs_av1: add valid range of values for num_units_in_decoding_tick
...
The spec states "num_units_in_decoding_tick shall be greater than 0".
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-14 17:09:38 -03:00
James Almer
b446ea22e9
avfilter/formats: fix format negotiation when multiple channel_layouts are provided
...
For example
ffmpeg -f lavfi -i sine -af "aformat=cl=stereo|5.1|7.1,lowpass,aformat=cl=7.1|5.1|stereo" -f null -
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-13 18:21:29 -03:00
James Almer
8564b4ab05
avfilter/ccfifo: constify some parameters
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-12 22:33:16 -03:00
James Almer
7f890b2fbb
avfilter/ccfifo: remove unnecessary context allocations
...
This is not public API, no it has no need for an alloc() and free()
functions. The struct can reside on stack.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-12 16:21:18 -03:00
James Almer
63d7ea38c7
fftools/ffprobe: print exported stream AVOptions
...
Similar to the decoder AVOptions, this is useful to show values from options
exported by the demuxer.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-08 11:04:37 -03:00
James Almer
ed3691338b
doc/examples/transcode_aac: use av_samples_alloc_array_and_samples to allocate the input samples buffer and pointers
...
Fixes -Wuse-after-free warnings and simplifies code.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-05 15:28:28 -03:00
James Almer
09b2ca93b4
avcodec/libdav1d: support parsing multiple ITU-T T.35 entries in a picture
...
This requires the newest libdav1d release.
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-05 14:26:52 -03:00
James Almer
6febb2a5ff
avfilter/vf_coreimage: add missing semicolon
...
Fixes compilation after af8db9106c .
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-04 22:38:47 -03:00
James Almer
0fc9c1f682
avutil/version: bump minor after recent changes
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-04 19:20:06 -03:00
James Almer
3e06f6f040
avutil/frame: deprecate key_frame
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-04 19:20:03 -03:00
James Almer
c7a8681860
fftools: use the new AVFrame keyframe flag
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-04 19:19:18 -03:00
James Almer
af8db9106c
avfilter: use the new AVFrame key_frame flag in all filters
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-04 19:19:13 -03:00
James Almer
dc7bd7c5a5
avcodec: use the new AVFrame key_frame flag in all decoders and encoders
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-04 18:48:22 -03:00
James Almer
cc11191fda
avutil/frame: add a keyframe flag to AVFrame
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-04 18:16:47 -03:00
James Almer
599abc0f3a
avutil/frame: deprecate interlaced_frame and top_field_first
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-04 18:15:00 -03:00
James Almer
3675dd0e0c
fftools: use the new AVFrame interlace flags
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-04 18:15:00 -03:00
James Almer
36827ea783
avfilter: use the new AVFrame interlace flags in all filters
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-04 18:14:11 -03:00
James Almer
2f561ba953
avcodec: use the new AVFrame interlace flags in all decoders and encoders
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-04 18:14:02 -03:00
James Almer
2df4e054d4
avutil/frame: add new interlaced and top_field_first flags
...
Signed-off-by: James Almer <jamrial@gmail.com >
2023-05-04 17:40:24 -03:00