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"
see e967f81f6a.
note, this does **not** affect cat-based module selection items
(of which there are just three in use by the core), since that
mechanism uses subcats not cats.
The config "advanced" flag was unused and has been removed by
6a7a137f7b.
It has been removed from many add_*() macros, but not all. Remove it
from the remaining macros.
A NULL list means there are no matching items. It is not an error per
se. In practice, it will lead to an error later on, which will be
handled properly by existing code.
Add raw video fourcc conversion support to convert
from gstreamer representation (for strings that are
not equal to length 4) to vlc representation.
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
Currently, due to few changes in the gstreamer's buffer
handling, the direct-rendering (i.e gstreamer decoders
decoding directly into the downstream VLC provided buffers)
is unstable.
Hence, added a switch to toggle direct-rendering and is disabled
by default. Works fine otherwise (i.e non direct-rendering)
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
Do not declare *_sys_t typedefs globally in vlc_common.h. Instead,
declare them locally in each module that provides a definition.
This paves the way to move C++ definitions into anonymous namespaces in
order to respect C++ ODR.
The picture_resource_t and sout_stream_id_sys_t typedefs will be handled
separately, since they require specific additional changes.
See #18033
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
This replaces the decoder_t->b_error boolean.
For now, only decoders that were setting b_error return VLCDEC_ECRITICAL, but a
lot more decoders should use this value since critical errors are often ignored.
Use only one callback for every decoder types:
int (*pf_decode)(decoder_t *, block_t *p_block);
There is now only one way to send output frames/blocks from a decoder module:
using decoder_QueueVideo(), decoder_QueueAudio() and decoder_QueueSub()
functions.
This fixes transcoding not receiving any output when a decoder used
decoder_Queue*() function.
The pf_packetize callback is kept unchanged. A packetizer shouldn't be
asynchronous at all (and this simplify the locking for decoder core).
The pf_decode callback returns, for now, only one value: SUCCESS. This will
allow a module to send more status.
Decoder modules are now responsible for calling decoder_UpdateVideoFormat()
before decoder_NewPicture().
In a lot of modules, decoder_UpdateVideoFormat() could be called in a better
place. Just after dec->fmt_out is updated for example.
This is a small patch that fixes the compilation on Linux with
a recent gstreamer (1.7.91).
We are not supposed to include include <gst/gstallocator.h> directly, but
only include <gst/gst.h>.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Allocate the output vlc pictures with dimensions padded,
as requested by the decoder (for alignments). This further
increases the chances of direct rendering.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>