- 19 Apr, 2023 9 commits
-
-
Anton Khirnov authored
Remove now-obsolete code setting packet durations pre-muxing for CFR encoded video. Changes output in the following FATE tests: * numerous adpcm tests * ffmpeg-filter_complex_audio * lavf-asf * lavf-mkv * lavf-mkv_attachment * matroska-encoding-delay All of these change due to the fact that the output duration is now the actual input data duration and does not include padding added by the encoder. * apng-osample: less wrong packet durations are now passed to the muxer. They are not entirely correct, because the first frame duration should be 3 rather than 2. This is caused by the vsync code and should be addressed later, but this change is a step in the right direction. * tscc2-mov: last output frame has a duration of 11 rather than 1 - this corresponds to the duration actually returned by the demuxer. * film-cvid: video frame durations are now 2 rather than 1 - this corresponds to durations actually returned by the demuxer and matches the timestamps. * mpeg2-ticket6677: durations of some video frames are now 2 rather than 1 - this matches the timestamps.
-
Anton Khirnov authored
-
Anton Khirnov authored
-
Anton Khirnov authored
A single smvjpeg packet decodes into one large mjpeg frame, slices of which are then returned as output frames. Packet duration covers all of these slices.
-
Anton Khirnov authored
Unify the code for returning the first and every subsequent frame in a packet.
-
Anton Khirnov authored
Current code prefers deprecated AVFrame.pkt_duration over its replacement AVFrame.duration whenever the former is set and not equal to the latter. However, duration will only be actually used when the caller sets the AV_CODEC_FLAG_FRAME_DURATION flag, which was added _after_ AVFrame.duration. This implies that any caller aware of AV_CODEC_FLAG_FRAME_DURATION is also aware of AVFrame.duration. pkt_duration should then never be used.
-
Anton Khirnov authored
-
Ronald S. Bultje authored
Fixes output of HBD odd-width chroma.
-
James Almer authored
Fixes ticket #10234 Signed-off-by:
James Almer <jamrial@gmail.com>
-
- 17 Apr, 2023 31 commits
-
-
Michael Niedermayer authored
Fixes: memleak Fixes: 45982/clusterfuzz-testcase-minimized-ffmpeg_BSF_PCM_RECHUNK_fuzzer-5562089618407424 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpegSigned-off-by:
Michael Niedermayer <michael@niedermayer.cc>
-
Michael Niedermayer authored
Fixes: Ticket 10239 Fixes: zlib_306_306_rgb24.av Signed-off-by:
Michael Niedermayer <michael@niedermayer.cc>
-
Michael Niedermayer authored
Fixes: Ticket 10238 Fixes: mszh_306_306_yuv420.avi Signed-off-by:
Michael Niedermayer <michael@niedermayer.cc>
-
Michael Niedermayer authored
Fixes: Ticket10240 Fixes: zlib_306_306_yuv422.avi Fixes: zlib_306_306_yuv411.avi Signed-off-by:
Michael Niedermayer <michael@niedermayer.cc>
-
Michael Niedermayer authored
Computations like col < width - 3 will not work with unsigned width=1 Signed-off-by:
Michael Niedermayer <michael@niedermayer.cc>
-
Leo Izen authored
Commit b18a9c29 introduced a regression that broke some baseline RGB jpegs. (See Trac issue #4045). This fixes that. Signed-off-by:
Leo Izen <leo.izen@gmail.com>
-
Anton Khirnov authored
It is no longer used outside of ffmpeg_enc.c
-
Anton Khirnov authored
It is no longer used outside of ffmpeg_mux*
-
Anton Khirnov authored
It is no longer used outside of ffmpeg_mux*
-
Anton Khirnov authored
It is no longer used outside of ffmpeg_mux*
-
Anton Khirnov authored
It is no longer used outside of ffmpeg_mux*
-
Anton Khirnov authored
That field was added to store timestamp conversion state for audio decoding code. Later it started being used by streamcopy as well, but that use is wrong because, for a given input stream, both decoding and an arbitrary number of streamcopies may be performed simultaneously. They would then all overwrite the same state variable. Store this state in MuxStream instead. This is the last use of InputStream in of_streamcopy(), so the ist parameter can now be removed.
-
Anton Khirnov authored
They should always be the same as the input stream parameters, but this reduces the need to access InputStream in muxing code.
-
Anton Khirnov authored
do_streamcopy() is muxing code, so this is a more appropriate place for this. The last uses of InputStream in it will be removed in following commits.
-
Anton Khirnov authored
It stores codec parameters of the stream submitted to the muxer, which may be different from the codec parameters in AVStream due to bitstream filtering. This avoids the confusing back and forth synchronisation between the encoder, bitstream filters, and the muxer, now information flows only in one direction. It also reduces the need for non-muxing code to access AVStream.
-
Anton Khirnov authored
Reduces access to a deeply nested muxer property OutputStream.st->codecpar->codec_type for this fundamental and immutable stream property. Besides making the code shorter, this will allow making the AVStream (OutputStream.st) private to the muxer in the future.
-
Anton Khirnov authored
There is no reason to postpone it until transcode_init() anymore, it can be done right at the end of of_open().
-
Anton Khirnov authored
Will allow initializing subtitle encoding earlier.
-
Anton Khirnov authored
It does nothing beyond exit_program().
-
Anton Khirnov authored
-
Anton Khirnov authored
All decoding code will be moved to this file in the future.
-
Anton Khirnov authored
Set InputStream.decoding_needed/discard/etc. only from ist_{filter,output},add() functions. Reduces the knowledge of InputStream internals in muxing/filtering code.
-
Anton Khirnov authored
This way filtering code does not directly mess with InputStream internals. Will become more useful in following commits.
-
Anton Khirnov authored
Makes it easier to see where the input stream is modified from muxer code.
-
Anton Khirnov authored
init_input_stream() can print log messages directly, there is no need to ship them to the caller. Also, log errors to the InputStream and avoid duplicate information in the message.
-
Anton Khirnov authored
reap_filters() no longer needs to access the encoding context.
-
Anton Khirnov authored
Changing AVCodecContext.sample_aspect_ratio after the encoder was opened is by itself questionable, but if anywhere it belongs in encoding rather than filtering code.
-
Anton Khirnov authored
-
Anton Khirnov authored
Everything in it can be done immediately when creating the output stream, there is no reason to postpone it.
-
Anton Khirnov authored
Creating a new output stream of a given type is currently done by calling new_<type>_stream(), which all start by calling new_output_stream() to allocate the stream and do common init, followed by type-specific init. Reverse this structure - the caller now calls the common function ost_add() with the type as a parameter, which then calls the type-specific function internally. This will allow adding common code that runs after type-specific code in future commits.
-
Anton Khirnov authored
Reduces the diff in the following commit. Temporarily add a forward declaration for new_output_stream(), it will be removed in the next commit.
-