+ new options to allow forcing an encoder and passing options to it.
(aenc=foo{optionbar=bar,etc...},venc=foo{optionbar=bar,etc...} where foo is the encoder plugin name).
+ got rid of aopts/vopts which is not needed anymore ;)
* modules/stream_out/duplicate.c: small coding style changes.
* modules/stream_out/transcode.c:
+ Forward the aopts{foo=bar,etc..} and vopts={foo=bar,etc...} options to the encoders.
+ Got rid of the ffmpeg encoder specific options.
* modules/codec/ffmpeg/*:
+ Changed the encoder options to normal config options.
+ Parse the options forwarded by transcode.
* include/vlc_codec.h:
+ encoder_t cleanup.
+ include a "sout_cfg_t *" in encoder_t to allow passing options.
- The SAP handler now runs in a separate thread.
- RTP sessions can be announced with sap (sdp=sap://,name=...)
TODO: Make this more configurable
- Better SDP generation (the timestamp problem is not resolved)
About this, there is a problem : as, for a RTP session, the URI
is the complete SDP, if the session is recreated, as the URI has
changed, a new item is added to the playlist
- Experimental flow control algorithm :
It does not follow the "Recommended" implementation, as it needs
to count the sessions (to achieve this, we should make this work
together with the SAP listener)
It is disabled by default (use --sap-flow-control to enable).
When it is disabled, sap announcement interval is set by --sap-interval
* src/misc/net.c : created net_ReadNonBlock
* sap.c : Fixed memory problem
- use net_* functions
- use vlc_UrlParse function
change sap_session_t structure : it now includes the sdp packet, which
isn't regenerated each time it is sent.
* modules/packetizer/copy.c: better not send pts instead of invalid ones.
* modules/stream_out/transcode.c: when no pts, use dts wherever possible (low delay / b frame).
If "strict" is true and a module name is provided then module_Need() will only look for the specified module
If "strict" is false, then module_Need() will first look for the specified module and if it wasn't found, will continue with the other modules with the same "capability".
- use AV_NOPTS_VALUE instead of 0 when it's available
- reworked the hurry-up mode to start with disabling the B frames first
- reworked the hurry-up mode to remove my thread mess
- check that we don't feed ffmpeg with twice the same PTS (crashes ffmpeg)
- correctly flag the picture types
* modules/stream_out/transcode.c:
- use AV_NOPTS_VALUE instead of 0 when it's available
- copy block_t::i_flags to sout_buffer_t::i_flags (temporary)
- split transrate.c
- you can specify a maximum gop length on which to perform transrating,
to avoid adding to much delay in the sout pipeline (shaping= option)
- fixed a bug where you couldn't transrate a transcoded stream