Re-license almost all the streaming modules to LGPLv2.1+ with
authorization from their respective contributors
After access_output, this includes stream_out and mux.
The duplicate and rtp modules are not concerned by this relicensing
because of unreachable authors. Notably:
- An L. Ber (dedd7cd2)
- Andy chenee (5caa2ba)
Thanks to everyone for their help and answers in due time
Closes#21 (partly, at least), #4288 and #4304
Description
===================
Fixed bugs in AVI mux to support creation of AVI files with following popular video/audio combinations
(a) MPEG4 video (aka XVID) with MP3/AC3/PCM Audio
(b) MJPEG video with PCM audio.
AVI as such is not used for storing other formats like H.264, AAC etc
Bug fix details
===================
(a) 'hdrl' list size was wrong. It incorrectly included some parts of MOVI list, size taken by hdrl LIST tag and its size and Size of 'RIFF', File size and 'AVI ' type.
(b) Block Align was set to 0 in case of MP3/AC3. It has to be non-zero. It has to been set to 1.
(c) XVID video decoders expect header to present as part of first frame. Added code to append header present at end of BITMAPINFOHEADER to beginning of the first video frame in case of XVID video.
(d) nAvgBytesPerSec of Waveformatex was not properly being set in case of PCM audio.
(e) Last index entry value was set to garbage due to incorrect index size calculation.
Test PC configuration
===================
Tested with Windows Media Player 11 installed on Windows XP Service pack 3 machine with following directshow filters installed
(a) XVID MPEG4 video decoder filter for MPEG4 video decoding
(b) LAME MP3 codec for MP3 audio decoding
Combinations tested
====================
(a) MPEG4/MP3 transcode
vlc -I dummy "Mr_MrsSmith-h264_aac.mp4" :sout="#transcode{vcodec=mp4v,vb=1024,fps=25,acodec=mpga,ab=128}:standard{mux=avi,access=file,dst=out.avi}" vlc://quit
(b) MPEG4/AC3 transcode
vlc -I dummy "Mr_MrsSmith-h264_aac.mp4" :sout="#transcode{vcodec=mp4v,vb=1024,fps=25,acodec=a52, ab=128}:standard{mux=avi,access=file,dst=out.avi}" vlc://quit
(c) MPEG4/PCM(16bit) transcode
vlc -I dummy "Mr_MrsSmith-h264_aac.mp4" :sout="#transcode{vcodec=mp4v,vb=1024,fps=25,acodec=s16l}:standard{mux=avi,access=file,dst=out.avi}" vlc://quit
(d) MPEG4/PCM(24 bit) transcode
vlc -I dummy "Mr_MrsSmith-h264_aac.mp4" :sout="#transcode{vcodec=mp4v,vb=1024,fps=25,acodec=s24l}:standard{mux=avi,access=file,dst=out.avi}" vlc://quit
(e) MPEG4/PCM(32bit) transcode
vlc -I dummy "Mr_MrsSmith-h264_aac.mp4" :sout="#transcode{vcodec=mp4v,vb=1024,fps=25,acodec=s32l}:standard{mux=avi,access=file,dst=out.avi}" vlc://quit
(f) MJPEG/PCM(32bit) transcode
vlc -I dummy "Mr_MrsSmith-h264_aac.mp4" :sout="#transcode{vcodec=mjpeg,vb=1024,fps=25,acodec=s32l}:standard{mux=avi,access=file,dst=out.avi}" vlc://quit
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
avi/avi_HeaderAdd_str{h,f}(): removes unused parameter
mp4/Convert{SUBT,AVC1}() GetD263Tag() Get{Text,Vide}Box(): same
mpeg/ts/BufferChainClean(): same
ogg/OggCreate{Header,Footer}(): same
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.
* 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.
* 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