We should not use names stating with underscore for our internal code.
This is almost the same name used in the makefile for more coherence.
HAVE_DYNAMIC_PLUGINS already exists in the core. We keep a different
name to separate the 2 usages. For now they mean exactly the same thing.
The vlc_player instance will become mandatory in following commits since
it will be used to bind the input / meta events for the different
extensions requiring it. Since it's not used yet, we can provide it in
the test right now, and really make use of it later.
Check that the activate and deactivate functions are correctly called
from the extension. Note that in this test, the code will wait for the
CMD_DEACTIVATE command to be executed before continuing towards
releasing the extensions_manager and all its extensions. It means that
it doesn't check the path where the extensions_manager is released
**before** the CMD_DEACTIVATE command is executed, which is more likely
to happen in the current UI scenario than the first.
The test included in this commit checks that lua will correctly probe
extension scripts, but without ensuring that it correctly follows the
data home. It only check that lua creates the correct access to load
the files.
In particular, the test fails to pass if the condition for loading .vle
files is not correct.
The test can pass if a different encoder is used during the test, but we
need to ensure it's really the encoder from the test.
This was catched when changing the capability from video encoder into
image encoder, which led the test to use the png encoder instead.
Ensure the client calling the export to block_t is also responsible for
releasing the picture it exports.
Previous commits were adding the release to match behaviour of the
converter before refactoring everything, but it was a mistake and led to
issues with other parts of the pipeline, in particular the transcoder,
and some clients were more adapted to the converter path + hold of
original rather than the non-conversion path, which would then have been
simpler to do from the start.
This MR adds the necessary hold and release to remove those from the
encoders and the clients, and is tested against the unmerged
libvlc/media.c test for thumbnailing too.
Revert "png: fix picture release on encoder"
This reverts commit d4c93a29a2.
Revert "jpeg: fix picture release on encoder"
This reverts commit cccc085e30.
Revert "avcodec: encoder: fix picture release"
This reverts commit 5a145f34fa.
Revert "codec: vpx: fix picture release on encoder"
This reverts commit 5dde7db39c.
Revert "image: fix picture leak in case of error"
This reverts commit 1bf09fe8d6.
Revert "misc: thumbnailer: release picture when interrupted"
This reverts commit 004b9900f8.
If we were interrupted, we cannot notify the picture anymore so it needs
to be dropped. The behaviour is the same as if using picture_Export
here, and might not be kept in the future, but the goal is to have the
tests working and checking memory leaks before changing the behaviour,
which is also the same as the encoders currently.
Before 3b26eefc99, the caller was not
responsible to destroy the request but he could cancel it via:
vlc_thumbnailer_Cancel()
WaitForTheCb()
ReleaseResourceAssociatedWithTheCb()
This new commit, in addition with
3b26eefc99 (that was not complete), allow
the user to cancel/destroy the request, without waiting for any
callback:
vlc_thumbnailer_DestroyRequest()
ReleaseResourceAssociatedWithTheCb()
vlc_thumbnailer_Cancel() has been renamed to
vlc_thumbnailer_DestroyRequest(), this new call must always be called to
release resources and can be called before receiving the callback in
order to cancel it.
Fixes#27766
This assertion was too severe and deserve actual runtime handling.
The `pcr_helper` should just fail in case of inconsistent
input/output. This can happen in various case such as bogus encoder or
simply internal error in the `pcr_helper` code.
This patch is making sure the `pcr_helper` user can disable it in case
of failure.
Refs #27730
The test creates a libvlc instance with a medialibrary and check that
the medialibrary can generate a mock thumbnail for a given mock:// URL
with different parameters.
Multiple improvements can be done from here: in particular, the
medialibrary will insist in loading its discovery modules, whereas we
only need to check whether the thumbnailing work in this current test.
Some work needs to be done to evaluate whether it's interesting enough
to cut those discovery modules out for this test or extend the scenario
to other cases like testing those discovery modules.
Regression testing from #27749
It is now safe to release media just after cancelling a thumbnail
request (before this commit, the called had to wait for the cb).
Change the test_cancel_thumbnail to make sure that no cb is sent after
a cancel.
The test tries to write the image with a custom encoder and custom
converter, executing first a fmt_in = fmt_out request, then requesting a
fmt_out with size / 2 to trigger the converter code path.
Fix regression on ImageWrite leading to a crash from previous commit.
The scenario is popping a decoder but didn't have a decoder_decode
function, leading to spurrious assertion when the first
decoder_t::pf_decode was called before the test really happens and stop.
Code missing from commit d794eac3cf.
Fixes#27578
The test suite is already taking care of the timeout, and playback +
seek + thumbnail can take more than 2 seconds (in case of very high
load).
Refs #24618
make_check_wrapper.sh + `make dist` does not replace make distcheck.
`make distcheck` is used as single source of truth. To still get stack
traces, move `make check` outside of the script and retrieve the exit
code of `make distcheck`.
This should catch issues like #27470 upfront.
We don't need to know it's a pointer and can save 2 characters.
No functional changes. This is simply renaming "dec->p_fmt_in",
"decoder->p_fmt_in", "dec.p_fmt_in" and "packetizer->p_fmt_in"