Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC


Commits:
015790ea by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: use designated initializers for ops callbacks

Unify all the ops callbacks to designated initializers in C sources.
C++ code uses lambda initialization that is already common in the
codebase.

- - - - -
33f45ac8 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: introduce a close callback

Adding the close callback in the object v-table instead of relying on
the module to do so.
This remove module dependency from the stream output object. From now
on, it will be possible to allocate and set-up stream outputs
programmatically without having to declare a module.

This is useful in scenario where a very contextual stream output filter
implementation is needed and we don't want to expose a module that the
user can manipulate. A good example of that is the current
`chromecast-proxy` submodule which inherit from it's parent internals
and drop data until the first I-Frame.

This approach of delegating object deletion to the v-table is already
taken by most modern module types.

- - - - -
7a05c564 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: bridge: switch to the close callback

- - - - -
b9b57150 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: chromaprint: switch to the close callback

- - - - -
894991ba by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: chromecast: switch to the close callback

- - - - -
a97b45e7 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: cycle: switch to the close callback

- - - - -
1a6fdd6f by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: delay: switch to the close callback

- - - - -
8f12f1a3 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: display: switch to the close callback

- - - - -
451a8ce5 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: dlna: switch to the close callback

- - - - -
11686c17 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: duplicate: switch to the close callback

- - - - -
c380d20c by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: es: switch to the close callback

- - - - -
207a649a by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: gather: switch to the close callback

- - - - -
c7f6eb4a by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: hls: switch to the close callback

- - - - -
0358703e by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: mosaic_bridge: switch to the close callback

- - - - -
efef7310 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: record: switch to the close callback

- - - - -
41efd25a by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: rtp: switch to the close callback

- - - - -
71dbe8d2 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: sdi: move sout callbacks out of the main class

Let's switch to the ops initializer used in most C++ modules. This is
preparation work to switch to the sout close callback in ops. The close
callback in this context cannot be owned by the SDIOutput class as it
needs to have a complete definition of the object implementing this
interface.

- - - - -
6454f905 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: sdi: switch to the close callback

- - - - -
9839172c by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: setid: switch to the close callback

- - - - -
e58aadeb by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: smem: switch to the close callback

- - - - -
aad1eb54 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: standard: switch to the close callback

- - - - -
e45a3998 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: stats: switch to the close callback

- - - - -
0a6ecf16 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: trace: switch to the close callback

- - - - -
6304e962 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: transcode: switch to the close callback

- - - - -
b54e96bc by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: udp: switch to the close callback

- - - - -
69d240ae by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: remove unneeded module reference

Now that every sout object uses the `close` callback, storing the module
reference to cal module_unneed in unnecessary.

- - - - -
dfd6d6b4 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: move sout_StreamChainNew doc in the header

- - - - -
39c1b8f2 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: add an empty sout object allocator

This will help untying stream output allocation and shared module
creation.

- - - - -
31f396f1 by Alaric Senat at 2023-11-16T09:40:00+00:00
sout: allow module-less sout creation

With the new `close` callback exposed in the v-table it becomes possible
to create empty sout objects. Those allow to programmatically create
custom stream outputs without having to declare them as shared modules.

This will be used to replace the current `chromecast-proxy`
implementation or to forward PCR properly in duplicate (we need specific
sout filters here to catch PCR at the end of each duplicated stream).

- - - - -


30 changed files:

- include/vlc_sout.h
- modules/services_discovery/upnp.cpp
- modules/stream_out/autodel.c
- modules/stream_out/bridge.c
- modules/stream_out/chromaprint.c
- modules/stream_out/chromecast/cast.cpp
- modules/stream_out/cycle.c
- modules/stream_out/delay.c
- modules/stream_out/display.c
- modules/stream_out/dlna/dlna.cpp
- modules/stream_out/dlna/dlna_common.hpp
- modules/stream_out/dummy.c
- modules/stream_out/duplicate.c
- modules/stream_out/es.c
- modules/stream_out/gather.c
- modules/stream_out/hls/hls.c
- modules/stream_out/mosaic_bridge.c
- modules/stream_out/record.c
- modules/stream_out/rtp.c
- modules/stream_out/sdi/SDIOutput.cpp
- modules/stream_out/sdi/SDIOutput.hpp
- modules/stream_out/sdi/sdiout.cpp
- modules/stream_out/setid.c
- modules/stream_out/smem.c
- modules/stream_out/standard.c
- modules/stream_out/stats.c
- modules/stream_out/trace.c
- modules/stream_out/transcode/transcode.c
- modules/stream_out/udp.c
- src/libvlccore.sym


The diff was not included because it is too large.


View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/eeef59369010c984c2905bf2227592155a46d0db...31f396f1561688d0dc687521ba2a38a13076e6e3

-- 
View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/eeef59369010c984c2905bf2227592155a46d0db...31f396f1561688d0dc687521ba2a38a13076e6e3
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance
_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to