[vlc-devel] [PATCH 05/26] sout:encoder: add a function to open the given encoder
Steve Lhomme
robux4 at ycbcr.xyz
Mon Jan 18 08:32:44 UTC 2021
Opening the encoders from the core allow the use of vlc_obj_malloc in encoders.
---
include/vlc_sout.h | 2 ++
src/libvlccore.sym | 1 +
src/missing.c | 6 ++++++
src/stream_output/stream_output.c | 9 +++++++++
4 files changed, 18 insertions(+)
diff --git a/include/vlc_sout.h b/include/vlc_sout.h
index d20d8294902..fe490ab342b 100644
--- a/include/vlc_sout.h
+++ b/include/vlc_sout.h
@@ -230,6 +230,8 @@ static inline bool sout_StreamIsSynchronous(sout_stream_t *s)
VLC_API encoder_t * sout_EncoderCreate( vlc_object_t *, size_t, enum es_format_category_e );
#define sout_EncoderCreate(o,s,c) sout_EncoderCreate(VLC_OBJECT(o),s,c)
+VLC_API int sout_EncoderOpen(encoder_t *, const char *name, bool strict);
+
/****************************************************************************
* Announce handler
****************************************************************************/
diff --git a/src/libvlccore.sym b/src/libvlccore.sym
index 71267d5dfc1..231b63d8ecc 100644
--- a/src/libvlccore.sym
+++ b/src/libvlccore.sym
@@ -337,6 +337,7 @@ sout_AccessOutWrite
sout_AnnounceRegisterSDP
sout_AnnounceUnRegister
sout_EncoderCreate
+sout_EncoderOpen
sout_MuxAddStream
sout_MuxDelete
sout_MuxDeleteStream
diff --git a/src/missing.c b/src/missing.c
index b6de3e93135..df8c7bfbed7 100644
--- a/src/missing.c
+++ b/src/missing.c
@@ -106,6 +106,12 @@ encoder_t *sout_EncoderCreate( vlc_object_t *p_this, size_t owner_size, enum es_
return NULL;
}
+int sout_EncoderOpen( encoder_t *p_encoder, const char *name, bool strict )
+{
+ VLC_UNUSED (p_encoder); VLC_UNUSED (name); VLC_UNUSED (strict);
+ vlc_assert_unreachable ();
+}
+
noreturn sout_input_t *sout_MuxAddStream(sout_mux_t *mux,
const es_format_t *fmt)
{
diff --git a/src/stream_output/stream_output.c b/src/stream_output/stream_output.c
index 22bda26e987..9053a1c943c 100644
--- a/src/stream_output/stream_output.c
+++ b/src/stream_output/stream_output.c
@@ -1010,3 +1010,12 @@ encoder_t *sout_EncoderCreate( vlc_object_t *p_this, size_t owner_size, enum es_
assert( owner_size >= sizeof(encoder_t) );
return vlc_custom_create( p_this, owner_size, encoder_caps[i_cat] );
}
+
+int sout_EncoderOpen(encoder_t *p_encoder, const char *name, bool strict)
+{
+ p_encoder->p_module =
+ module_need(p_encoder, encoder_caps[p_encoder->fmt_in.i_cat], name, strict);
+ if (!p_encoder->p_module)
+ return VLC_ENOMOD;
+ return VLC_SUCCESS;
+}
--
2.29.2
More information about the vlc-devel
mailing list