summaryrefslogtreecommitdiff
path: root/src/demuxers/demux_flv.c
AgeCommit message (Collapse)Author
2015-07-24Copyright year update by hg log.Torsten Jager
2015-03-06More fast unaligned integer hacks.Torsten Jager
Taken from my private "TJtools" project.
2013-10-24demux_flv: add audio language info.Torsten Jager
Read: fix misleading frontend audio selector list.
2013-09-03demux_flv rewriteTorsten Jager
Why? I use FLV a lot for editing. It is simple, and it is playable while writing. However, seeking was often terribly slow or non working. Reordered video (most h.264) also yielded some nasty unpredictable a/v lag, making music videos not much fun. And there are quite a few FLV files out there that do not follow all the standards. The flash browser plugin plays them normally, but xine liked to show strange malfunctions such as video collapsed to a horizontal line, or even crashed. How? This is the first file I ever edited in xine-lib. I started years ago, and I did not keep track of all the intermediate states. So please apoplogize me pushing all in one go. It wont happen again. Promised. What? * Overrun-safe iterative metainfo parser that tolerates at least most of the trash left by various "injector tools". * Skip obviously truncated tags. * Try to find the reliable settings in contradiction. * Send pts not dts for reordered (b-framed) video. * Large file support >= 2Gb on 32bit systems. * Fast time-based seek routine for files with working, damaged and no keyframe index. * Major optimizations. Less reads, and a lot less seeks. * More codecs.
2010-02-23Merge from 1.1.Darren Salt
--HG-- rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c
2010-02-07Fix Flash video with aac not playing audio (HTTP etc.)Martin Jacobs
2010-01-26Fix AAC in FLV.Darren Salt
This bug appears to be a variety of aliasing bug, caused by the compiler not knowing that buffer is written to by ...->read(). On i386, the bug shows up because buffer[0] has to be re-read when extracting the sample rate etc.; on amd64, it works fine because the value was cached in a register. The problem is avoided by not read()ing into any storage more than once while it remains in scope.
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
2010-01-26Merge from 1.1.Darren Salt
2009-11-30Trim trailing space & reduce space+tab.Darren Salt
2008-10-13Merge from 1.1.Darren Salt
--HG-- rename : src/xine-engine/buffer.h => include/xine/buffer.h
2008-09-05Updated FLV demuxer.Claudio Ciccani
- Added support for new formats introduced by Adobe's Video File Format Specification v9 (including H264 and AAC). - Fixed a problem with seeking when movie length is not specified in the headers.
2008-09-05Updated FLV demuxer.Claudio Ciccani
- Added support for new formats introduced by Adobe's Video File Format Specification v9 (including H264 and AAC). - Fixed a problem with seeking when movie length is not specified in the headers.
2008-05-23Merge from 1.1. VDR needs to be updated.Diego 'Flameeyes' Pettenò
--HG-- rename : src/liba52/parse.c => contrib/a52dec/parse.c rename : include/xine.h.in => include/xine.h rename : src/xine-engine/alphablend.h => include/xine/alphablend.h rename : src/xine-utils/attributes.h => include/xine/attributes.h rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/input/input_plugin.h => include/xine/input_plugin.h rename : src/xine-utils/xineutils.h => include/xine/xineutils.h rename : src/libxineadec/fooaudio.c => src/audio_dec/fooaudio.c rename : src/libxineadec/gsm610.c => src/audio_dec/gsm610.c rename : src/liba52/xine_a52_decoder.c => src/audio_dec/xine_a52_decoder.c rename : src/libdts/xine_dts_decoder.c => src/audio_dec/xine_dts_decoder.c rename : src/libfaad/xine_faad_decoder.c => src/audio_dec/xine_faad_decoder.c rename : src/libxineadec/xine_lpcm_decoder.c => src/audio_dec/xine_lpcm_decoder.c rename : src/libmad/xine_mad_decoder.c => src/audio_dec/xine_mad_decoder.c rename : src/libmusepack/xine_musepack_decoder.c => src/audio_dec/xine_musepack_decoder.c rename : src/combined/decoder_flac.c => src/combined/flac_decoder.c rename : src/combined/demux_flac.c => src/combined/flac_demuxer.c rename : src/libxineadec/nsf.c => src/combined/nsf_decoder.c rename : src/demuxers/demux_nsf.c => src/combined/nsf_demuxer.c rename : src/combined/combined_wavpack.h => src/combined/wavpack_combined.h rename : src/combined/decoder_wavpack.c => src/combined/wavpack_decoder.c rename : src/combined/demux_wavpack.c => src/combined/wavpack_demuxer.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c rename : src/libxineadec/xine_speex_decoder.c => src/combined/xine_speex_decoder.c rename : src/libxinevdec/xine_theora_decoder.c => src/combined/xine_theora_decoder.c rename : src/libxineadec/xine_vorbis_decoder.c => src/combined/xine_vorbis_decoder.c rename : src/libspucc/cc_decoder.c => src/spu_dec/cc_decoder.c rename : src/libspucmml/xine_cmml_decoder.c => src/spu_dec/cmml_decoder.c rename : src/libspudec/xine_spu_decoder.c => src/spu_dec/spu_decoder.c rename : src/libspudec/spu.c => src/spu_dec/spudec.c rename : src/libspudvb/xine_spudvb_decoder.c => src/spu_dec/spudvb_decoder.c rename : src/libsputext/xine_sputext_decoder.c => src/spu_dec/sputext_decoder.c rename : src/libsputext/demux_sputext.c => src/spu_dec/sputext_demuxer.c rename : src/libspucc/xine_cc_decoder.c => src/spu_dec/xine_cc_decoder.c rename : src/libxinevdec/bitplane.c => src/video_dec/bitplane.c rename : src/libxinevdec/foovideo.c => src/video_dec/foovideo.c rename : src/libxinevdec/gdkpixbuf.c => src/video_dec/gdkpixbuf.c rename : src/libxinevdec/image.c => src/video_dec/image.c rename : src/libmpeg2/xine_mpeg2_decoder.c => src/video_dec/libmpeg2/xine_mpeg2_decoder.c rename : src/libxinevdec/rgb.c => src/video_dec/rgb.c rename : src/libxinevdec/yuv.c => src/video_dec/yuv.c
2008-05-07xine_xmalloc() deprecation: replace its use with static and non-zero size.Diego 'Flameeyes' Pettenò
The xine_xmalloc() function is going to be deprecated, as its behaviour is rarely needed as such, and it's thus misused. With this, almost all uses of xine_xmalloc() with static size (for instance the value returned by sizeof()) or with a size that is guaranteed not to be zero (like strlen()+1) are replaced with calls to either calloc(1, ...) or malloc(). malloc() is used whenever the allocated memory is going to be immediately overwritten, while calloc() is used in every other case, as it sets the whole memory area to zero. --HG-- extra : transplant_source : %8F%98%EC%02%1E%83%F0s%06X%83C%205Y%80%B12%CC%E1
2008-03-26Merge from 1.1.Darren Salt
2008-03-23Replace various malloc(x*sizeof(y)) with calloc(x,sizeof(y)).Darren Salt
2008-03-23Check for failure of various memory allocations. (SA29484)Darren Salt
Ref. http://aluigi.altervista.org/adv/xinehof-adv.txt
2008-01-26Merge from 1.1.Darren Salt
--HG-- rename : po/libxine1.pot => po/libxine2.pot rename : src/combined/demux_flac.c => src/combined/flac_demuxer.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c
2008-01-25Fixed parsing of keyframes indices (do not assume a specific order betwen ↵Claudio Ciccani
"times" and "filepositions"). Parse flv script data only once upon send_headers(). Use relative seeking instead of absolute seeking when seek_time-current_time is below 5 seconds. (transplanted from 689daba9823670864eaef213733987196be21acc) --HG-- extra : transplant_source : %3CA%D9%CBuM%14%DAR%F8%89K%EF%13%83%17%9A%F7%AB%8F
2008-01-25Fixed parsing of keyframes indices (do not assume a specific order betwen ↵Claudio Ciccani
"times" and "filepositions"). Parse flv script data only once upon send_headers(). Use relative seeking instead of absolute seeking when seek_time-current_time is below 5 seconds.
2007-12-22Merge -headers-reshuffle branch into main.Diego 'Flameeyes' Pettenò
--HG-- rename : src/xine-engine/osd.h => include/xine/osd.h
2007-12-19Remove orphaned functions.Diego 'Flameeyes' Pettenò
2007-12-19Update all the code to the new headers layout.Diego 'Flameeyes' Pettenò
2007-12-18Merge from 1.1.Darren Salt
2007-12-17compileMatthias Kretz
2007-12-17add video/flv and application/x-flash-video MIME aliases as used by shared-mimeMatthias Kretz
2007-12-13Use FOURCC comparison rather than multiple bytes comparison.Diego 'Flameeyes' Pettenò
--HG-- extra : transplant_source : D%BF%D7%DA%B0%F7%15%1A%96%2BV%DB%BF%85%05%AF%11%85%9B%1E
2007-12-11Rename METHOD_BY_EXTENSION to METHOD_BY_MRL, as it's used to identify ↵Diego 'Flameeyes' Pettenò
protocols too.
2007-12-11Remove redundant METHOD_BY_EXTENSION checks now that libxine takes care of them.Diego 'Flameeyes' Pettenò
2007-12-11Transform get_extensions and get_mimetypes into strings.Diego 'Flameeyes' Pettenò
Please note that this commit temporarily breaks building.
2007-12-11Bump the interface version for demuxer plugins.Diego 'Flameeyes' Pettenò
2007-12-11Merge from 1.2 main branch.Diego 'Flameeyes' Pettenò
2007-12-11Don't use the if(foo) free(foo); construct, as free(NULL); is well defined.Diego 'Flameeyes' Pettenò
2007-12-11Use default_*_class_dispose macro whenever the class dispose function only ↵Diego 'Flameeyes' Pettenò
called free().
2007-12-11Use N_() rather than _(), passing the string just once to gettext().Diego 'Flameeyes' Pettenò
This way the gettext code for description does not need to be repeated by every plugin.
2007-12-11Update all demux plugins to the new identifier/description interface. Add ↵Diego 'Flameeyes' Pettenò
_() where missing, for i18n.
2007-11-20Merge from 1.1.Diego 'Flameeyes' Pettenò
2007-11-18Get filesize from metadata, when available.Claudio Ciccani
2007-11-18Implemented a faster method to seek to absolute position (seek+resync).Claudio Ciccani
Fixed interpretation of "videodatarate" variable. Export audio bitrate information when variable "audiodatarate" is found.
2007-11-17Send headers using script information as reference (when available).Claudio Ciccani
That should prevent xine from discarding the first keyframe on non-seekable stream.
2007-11-10Delete most of the CVS $Id$/$Log$ lines.Darren Salt
--HG-- extra : transplant_source : %E0%D0%C5%8B%BEU%DD%24%5D7%1F%ADV%AD%EB%23%CBU%80%EB
2007-11-10Merge from 1.1.Darren Salt
--HG-- rename : src/libxineadec/nsf.c => src/combined/nsf_decoder.c rename : src/demuxers/demux_nsf.c => src/combined/nsf_demuxer.c rename : src/combined/combined_wavpack.c => src/combined/wavpack_combined.c rename : src/combined/combined_wavpack.h => src/combined/wavpack_combined.h rename : src/combined/decoder_wavpack.c => src/combined/wavpack_decoder.c rename : src/combined/demux_wavpack.c => src/combined/wavpack_demuxer.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c rename : src/libxineadec/xine_speex_decoder.c => src/combined/xine_speex_decoder.c rename : src/libxinevdec/xine_theora_decoder.c => src/combined/xine_theora_decoder.c rename : src/libxineadec/xine_vorbis_decoder.c => src/combined/xine_vorbis_decoder.c rename : src/liba52/xine_a52_decoder.c => src/libxineadec/xine_a52_decoder.c rename : src/libdts/xine_dts_decoder.c => src/libxineadec/xine_dts_decoder.c rename : src/libfaad/xine_faad_decoder.c => src/libxineadec/xine_faad_decoder.c rename : src/libmad/xine_mad_decoder.c => src/libxineadec/xine_mad_decoder.c rename : src/libmusepack/xine_musepack_decoder.c => src/libxineadec/xine_musepack_decoder.c
2007-11-09Merge FSF address changes from 1.1 branch.Diego 'Flameeyes' Pettenò
--HG-- rename : src/combined/decoder_flac.c => src/combined/flac_decoder.c rename : src/combined/demux_flac.c => src/combined/flac_demuxer.c rename : src/libxineadec/nsf.c => src/combined/nsf_decoder.c rename : src/demuxers/demux_nsf.c => src/combined/nsf_demuxer.c rename : src/combined/combined_wavpack.c => src/combined/wavpack_combined.c rename : src/combined/combined_wavpack.h => src/combined/wavpack_combined.h rename : src/combined/decoder_wavpack.c => src/combined/wavpack_decoder.c rename : src/combined/demux_wavpack.c => src/combined/wavpack_demuxer.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c rename : src/libxineadec/xine_speex_decoder.c => src/combined/xine_speex_decoder.c rename : src/libxinevdec/xine_theora_decoder.c => src/combined/xine_theora_decoder.c rename : src/libxineadec/xine_vorbis_decoder.c => src/combined/xine_vorbis_decoder.c rename : src/liba52/xine_a52_decoder.c => src/libxineadec/xine_a52_decoder.c rename : src/libdts/xine_dts_decoder.c => src/libxineadec/xine_dts_decoder.c rename : src/libfaad/xine_faad_decoder.c => src/libxineadec/xine_faad_decoder.c rename : src/libmusepack/xine_musepack_decoder.c => src/libxineadec/xine_musepack_decoder.c
2007-11-09Update FSF address on non-contributed code and COPYING files.Diego 'Flameeyes' Pettenò
For contributed code, leave whatever the version we last synced for is using to make simpler future syncs.
2007-10-18Merge from 1.1.Darren Salt
2007-10-18fix issue with non-seekable stream in demux_flvClaudio Ciccani
2007-06-16Rename the BE/LE/ME macros with a _X_ prefix, so they don't clash with ↵Diego 'Flameeyes' Pettenò
Solaris definitions (1.2 branch commit).
2007-06-16Rename the BE/LE/ME macros with a _X_ prefix, so they don't clash with ↵Diego 'Flameeyes' Pettenò
Solaris definitions.
2007-04-14Use xine_xcalloc instead of xine_xmalloc when mutiplying the number of ↵Diego 'Flameeyes' Pettenò
elements by the size of the single element.