Missing some cases that I could not test.
Also ffmpeg/chroma.c is locked, so I can but leave it broken.
Fix is for the remaining modules is obvious and the issue is easy to detect.
Note that shortcuts are inherited from the main module to submodules, so it is
totally useless to duplicate them paste add_submodule. If you think this is
wrong, I do not necessarily disagree, but it would need a RFC.
* Headers in include must contain the structures and prototypes needed
by the plugins and should be named vlc_*.
* Headers in include/vlc must contain the structures and prototypes
needed by external libvlc clients
* Moved and renamed some things in headers.
- Removed vlc_cpu.h, vlc_error.h (merged in vlc_common)
- Removed snapshot.h (merged in vlc_vout.h)
- Removed vlc_spu.h (merged in vlc_osd.h)
- Removed intf_eject.h and vlc_interaction.h (merged in vlc_interface)
- Moved all internal headers to src
- Merged vlc_video.h and video_output.h and move private things to src
- Removed vlc/intf.h, vlc/aout.h, vlc/vout.h, vlc/decoder.h and vlc/input.h
(meta headers for use in modules, and often implying too large
dependencies)
* Removed some useless dependencies
* Unexported a bunch of functions and structures used only in src/
(--> Still some work here)
* Finally made input_thread_t and input_source_t (mostly) private.
Added input_GetItem to fetch the input_item of an input_thread
* Cleaned up deprecated entries in vlc_symbols.h and bumped up symbol
prefix
This commit has a 99% probability of breaking the build, 0.1% of killing
your cat and 0% of getting you hot chicks.
Also, make it clearer what is shared and instance-specific
So,
libvlc_t ==> libvlc_global_t
vlc_t ==> libvlc_int_t (internal instance)
p_object->p_libvlc ==> p_object->p_libvlc_globale
p_object->p_vlc ==> p_object->p_libvlc
VLC_OBJECT_VLC ==> VLC_OBJECT_LIBVLC
And by the way, there is some cleanup required :) (ie, some things are created in the global object instead of the instance-specific one)
- BLOCK_FLAG_CORRUPTED : signal corrupted data (do not use anymore
BLOCK_FLAG_DISCONTINUITY in that case)
- BLOCK_FLAG_PREROLL : mark this block to be decoded (no matter what).
* ffmpeg, libmpeg2: support BLOCK_FLAG_PREROLL (ie disable frame dropping).
* input: added ES_OUT_SET_NEXT_DISPLAY_TIME to ease the work for preroll
(untested).
* mp4: added support for CTTS table (pts, needed for h264+bframe).
* decoders: for now handle discontinuity and corrupted block the same way.
* Each module can declare a "human-readable short name" with set_name
* Modules are sorted by category (set_category, set_subcategory).
Modules configs can be separated by set_section()
* Separated audio-filter and audio-visual
* Separated extraintf and control
* New command and widget : add_module_list() for comma-separated modules
* Vfilters now use "," as separator
* modules/demux/ogg.c, modules/demux/mkv.cpp:
- store the vorbis/theora/speex headers in fmt.p_extra.
- this change simplifies the code quite a bit and is a lot cleaner.
* modules/codec/vorbis.c, theora.c, speex.c, flac.c:
- get the headers from fmt_in.p_extra or from the bitstream if empty.
* modules/mux/ogg.c:
- recontstruct the headers from fmt.p_extra.
- chroma + resizing video filter (using the filter_t architecture).
* modules/codec/ffmpeg/*:
- cleanup + small updates.
* modules/codec/speex.c, theora.c, vorbis.c:
- got rid of pf_header() in the encoder.
- store the headers in fmt_out.p_extra (this will break the ogg muxer for now).
* modules/codec/libmpeg2.c, modules/codec/ffmpeg/video.c:
- added a p_dec->b_pace_control field to signal if the decoder is allowed to drop frames.
* modules/stream_out/transcode.c:
- heavy cleanup.
- re-use video decoder modules and got rid of the duplicated ffmpeg video decoder.
- use video filters for chroma conversion and resizing.
(a few things are broken now like deinterlacing but I'll repair them asap).