Initial checkin of OCIO filter.
Initial checkin of OCIO filter.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Change for the right C++ library, should work on linux too.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Adding inverse when using display/view.
Removed comments.
Removed code that was setting the CICP values. Hopefully this can be done through OCIO at some point.
Config cleanup - need a modified require_cpp to handle namespacing.
Switch to using require_cpp so that namespace can be used.
Adding documentation.
Sadly a bit of linting went in here, but more importantly added a threads option to split the image into horizontal tiles, since OCIO was running rather slow.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Adding context parameters.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Add the OCIO config parameter.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Make the min threads 1 for now, reserve 0 for later if we can automatically pick something.
Also added a few comments.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
This is using ffmpeg-slicing.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Adding OCIO filetransform.
Making sure everything is using av_log rather than std::cerr.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Updating the tests so they would work without additional files.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Adding the file-transform documentation.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Adding copyright/license info.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Removing tests, since this is optional code.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Code cleanup.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Typo.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
I went the wrong way, av_log is expecting \n
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Fix indenting to 4 spaces.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Fixing lint issues and a spelling mistake.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Code formatting cleanup to match conventions.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Whitespace removal.
Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
Said function has presumably been added in order to check
that we have successfully reset the floating point state
after having violated the ABI/calling convention by not
issuing emms in our MMX DSP routines.
Yet the ability to check this should not have been made public,
because there is no external need for it and because the
function does not even always achieve what its documentation
claims to do: It only works when inline assembly is available.
It should have been implemented in emms.h like emms_c()
(which is where a replacement should be put if there is still
ABI-violating MMX code when av_assert0_fpu() is removed).
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Fixes peak detection for samples like in https://github.com/haasn/libplacebo/issues/358
This might introduce flickering on some other samples, but was agreed
upstream that they are better overall.
Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
Sometimes, HTTP sources require a lot of seeking during probing / header
parsing (especially for formats like MXF). Currently, we need to completely
tear down and re-establish the connection most times this happens, which puts
a lot of stress on the network stack and also results in transmission of
possibly many unnecessary bytes.
This patch adds an option to allow FFmpeg to request partial ranges during
the initialization stage. This is done until the initial request size is fully
read, after which we fall back to the normal behavior (i.e. infinite streaming
via an unbounded request).
The usefulness of this is limited without also specifying -multiple_requests 1,
since otherwise there is little point to requesting partial ranges to begin
with. (However, it is semantically independent, so we keep it that way.)
Add chroma_location option so that, in the subsampled-to-subsampled case, the destination's chroma siting can be changed from the source's without having to use other filters. Useful, for example, when converting BT.2020 to BT.709, where the former customarily uses "top left" and the latter "left."
Update documentation.
Closes: #21185
Add support for standard -pass and -passlogfile options, matching the behavior
of libx264.
Add the -x265-stats option to specify the stats filename.
Update documentation.
Signed-off-by: Werner Robitza <werner.robitza@gmail.com>
When prescale is enabled, time fields are converted to the output
timebase before expression evaluation. This allows option specification
even if the input timebase is unknown.
Ensure the allocated AVCodecContext is properly freed if avcodec_parameters_to_context fails.
Signed-off-by: 0xBat <monsterbat02@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Validate return value of av_malloc for dynamic_setting to avoid null pointer dereference.
Signed-off-by: 0xBat <monsterbat02@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Properly free decoder_ctx on failure to prevent a memory leak during initialization.
Signed-off-by: 0xBat <monsterbat02@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Colors expressions (like `#RRGGBB`) can now be used as arguments for `setvar`
and `call`.
The trick of setting a variable with a `0xRRGGBBAA` value is not valid anymore.
Signed-off-by: Ayose <ayosec@gmail.com>
Previously, the pkt_size option only affected write buffering in the file
protocol. This change extends its effect to read mode as well.
On embedded systems with limited RAM, users can now reduce I/O buffer
memory by setting a smaller pkt_size.
Signed-off-by: caifan3 <caifan3@xiaomi.com>
Some tools like v4l2-ctl dump data without skip padding. If the
padding size is not an integer multiple of the number of pixel
bytes, we cannot handle it by using a larger width, e.g.,, for
RGB24 image with 32 bytes padding in each line.
This avoids needing to use the extra_conf variable. That variable
is problematic for setting a value that contains spaces.
This adds options for another tool in the same fashion as other
tools were added in 523d688c2b.
Explicitly spell it out that we are not going to modify the
individual libraries for the purposes of improving conformance
to ARM64EC.
We may (or may not) accept build system patches for making such
a build succeed, provided that it does not require changes to
the actual library code.
Add a public API for producing RFC 4281/6381 codecs trings for
MIME types.
This can be required for providing alternative video files to
a web browser, letting the browser pick the best file it supports.
Such strings also allow querying a browser whether it supports
a certain codec combination.
Finally, if implementing a DASH/HLS segmenter outside of libavformat,
one also has to generate such strings.
Generating such strings for H264/AAC is very simple, but for
more modern codecs, it can require a lot of nontrivial codec
specific parsing of extradata.
As libavformat already implements this, expose it for users as well.
The old, internal function ff_make_codec_str is kept and used by
the HLS and DASH muxers; the old function takes a logging context
which can be used for logging auxillary info about how the string
generation worked out.
These provide a way for apps that initialize Vulkan themselves to know
which extensions we may be able to use without having to hardcode it.
Signed-off-by: Cameron Gutman <aicommander@gmail.com>
Add a "pkt_size" AVOption to the Unix domain socket protocol. This option
allows the user to specify the maximum packet size for packet-oriented
sockets (SOCK_DGRAM and SOCK_SEQPACKET).
Signed-off-by: caifan3 <caifan3@xiaomi.com>
It's a name that communicates its functionality in a better way.
Since the function was introduced very recently, we can safely rename it.
Signed-off-by: James Almer <jamrial@gmail.com>
Normally, this function tries to make sure all threads are saturated with
work to do before returning any frames; and will continue requesting packets
until that is the case.
However, this significantly slows down initial decoding latency when only
requesting a single frame (to e.g. configure the filter graph), and also
wastes a lot of unnecessary memory in the event that the user does not intend
to decode more frames until later.
By introducing a new `flags` paramater and a new flag
`AV_CODEC_RECEIVE_FRAME_FLAG_SYNCHRONOUS` to go along with it, we can allow
users to temporarily bypass this logic.
There is currently no way for API users to know that a buffersrc is no longer
accepting input, except by trying to feed it a frame and seeing what happens.
Of course, this is not possible if the user does not *have* a frame to feed,
but may still wish to know if the filter is still accepting input or not.
Since passing `frame == NULL` to `av_buffersrc_add_frame()` is already treated
as closing the input, we are left with no choice but to introduce a new
function for this.
We don't explicitly return the result of `ff_outlink_get_status()` to avoid
leaking internal status codes, and instead translate them all to AVERROR(EOF).