[vlc-devel] [RFC #2] Fix #3178 : Last coded block lost in packetizer
Rafaël Carré
rafael.carre at gmail.com
Tue Aug 2 05:17:35 CEST 2011
Changes since last patches:
DecoderThread() is notified with a special es_out function which is
called from input MainLoop, just after demuxer eof.
(the function should probably be prefixed with es_out_ like other
non-static functions instead of EsOut, but that's cosmetics)
With this patch series I can run something like:
vlc in.mp3 --sout "#std{access=file,dst=out.mp3"
-> in.mp3 and out.mp3 will be identical.
provided in.mp3 has no id3* tags or whatever, so if out.mp3 is smaller
just run vlc out.mp3 --sout "#std{access=file,dst=in.mp3" (VLC doesn't
write tags in sout it seems).
The patches 2 and 3 only affect mp3 (my test case), all
demuxers and packetizers remain to be checked and patched.
modules/codec/mpeg_audio.c | 51 +++++++++++++++++++++++++-------------------
modules/demux/mpeg/es.c | 30 +++++++++++++++----------
src/input/decoder.c | 10 +++++++-
src/input/decoder.h | 1 +
src/input/es_out.c | 14 ++++++++++++
src/input/input.c | 1 +
src/input/input_internal.h | 2 +
7 files changed, 74 insertions(+), 35 deletions(-)
More information about the vlc-devel
mailing list