Age | Commit message (Collapse) | Author |
|
--HG--
extra : transplant_source : %3B%87%DA%89%F2.%1F%F4%F0L/%C4%A3%5B%5C3%1A%09%05g
|
|
Instead of passing through a temporary ui_title array on the stack,
use the array already allocated for the xine_ui_data_t element. Also
do that for ui_str_length.
--HG--
extra : transplant_source : %1A%B5e%8E%C0gQ%A9%BC%08%B2%0Bm%A9Ec%C1%9F%23%EF
|
|
Instead of duplicating a buffer after using sn?printf() on it, use
asprintf() directly on the final variable.
|
|
|
|
|
|
Also, reduce visibility of the i variable to the loop where it is
used.
|
|
Also, don't reset buffers when we're just going to run a snprintf()
call, and avoid multiple calls to strlen() when we're appending to it.
|
|
Use the proper function for common memory operations (memset() for
zeroing, memcpy() for copying, memmove() for moving), instead of
looping through arrays.
By extension, remove loops to reset arrays when they were allocated
with calloc() and thus already zeroed.
|
|
Instead of executing strlen() after each snprintf() call, use the
value returned by the call itself.
Instead of using sprintf() on a buffer and then duplicate it, use
asprintf().
|
|
Instead of using sscanf() to get the data out of headers, as we just
compared them, skip the name of the header and get the rest. Add the
whitespace to the compare so that it actually works as intended. Also
save some unneeded dup/free.
|
|
asprintf where appropriate.
Instead of creating a 100-elements filelist array, with each element
containing a 256 bytes string, make it dynamic, create it when
get_autoplay_list is called, free it if it was present before, and use
asprintf() for creating the entries.
This not only reduces the complexity of the code, but also reduces the
size of the input class object (which in turn reduce memory usage),
but also avoids memory leaks that the previous code certainly had. The
total memory used even with a full list of files should also be
drastically reduced.
Also, use asprintf while filling the mrls data, rather than allocating
a 1 KiB array on the stack, and use it as temporary.
|
|
Allocate all the frames, the extra info data and the audio and video
content areas as one big memory area each.
This also remove some use of xine_xmalloc().
|
|
Instead of duplicating twice the http_proxy environment variable
value, do so only once, avoid a strlen() call when checking if the
string is not empty, remove the http_proxy variable entirely, don't
free the duplicated string as that's what it's used.
|
|
Instead of creating strings through a series os string copy and
concatenations, use directly the appropriate printf-like function.
|
|
Whenever an allocated memory area is immediately filled in with a
string through strcpy() or strncpy(), replace the calls with the
appropriate strn?dup().
|
|
Instead of calling sprintf or snprintf with a "%s" format string, use
the proper strcpy, strncpy, strdup or strndup function.
|
|
There is no need to check if a pointer is not NULL before freeing it,
so just call free() during MRL_FREE.
During duplication, always prefer freeing and recreating to
reallocating, as that would probably take more time than would
actually be needed to allocate a new memory area. Also, most likely
the duplication will happen on a new instance.
|
|
Using asprintf() instead of malloc() + sprintf() reduces the lines of
code in xine-lib (moving the allocation to the C library or asprintf
replacement), makes it safer to access the string and can also improve
performance whenever the value returned by a function was used as
parameter, as before it had to run the function twice in almost every
case (once for strlen(), once for sprintf()).
|
|
|
|
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
|
|
Functions and data structures that are not exported and are only ever
used in the same unit they are defined should be marked static to
improve compiler's ability to optimise them.
This applies to xine_dispose_internal() function for xine-lib, the
extended_to_int() function in the AIFF demuxer, the bandwidths array
in QuickTime demuxer, the wc_pal_lookup table in the WC3 movie
demuxer, and the rm_header and pnm_data_header arrays in pnm input
plugin.
|
|
--HG--
rename : include/xine.h.in => include/xine.h
rename : src/xine-utils/attributes.h => include/xine/attributes.h
rename : src/xine-utils/xineutils.h => include/xine/xineutils.h
rename : src/combined/decoder_flac.c => src/combined/flac_decoder.c
rename : src/libxineadec/xine_speex_decoder.c => src/combined/xine_speex_decoder.c
|
|
|
|
|
|
|
|
|
|
--HG--
rename : src/demuxers/demux_nsf.c => src/combined/nsf_demuxer.c
rename : src/libxinevdec/bitplane.c => src/video_dec/bitplane.c
|
|
1.2 series.
|
|
Tests done on amd64 with ffmpeg 0.svn20080206 from Debian experimental.
libavcodec 51.50.0, libavutil 49.6.0, libpostproc 51.1.0
|
|
|
|
|
|
|
|
Thanks to Alin Rad Pop, Secunia Research.
|
|
libdvdread uses the file length provided by the UDF fs of the title set IFO
files authoritative. I got a DVD which have parts of this file mapped outside
of the provided file size and according to my memory only the offsets in the
files matters in the standard.
This patch adjusts the internal knowledge of the filesize accordingly and at
least allows mplayer to play the dvd.
(Imported from Debian libdvdread 0.9.7-8)
|
|
--HG--
extra : transplant_source : %90%CC%97%8Fk%C1%FD%9C%A4%FB%0C%9E%07%F5A%B8%29o%EEo
|
|
This also allows to remove the comment stating the includes come from libavutil, as it's now explicit.
|
|
--HG--
rename : src/combined/ffmpeg/ff_dvaudio_decoder.c => src/audio_dec/ff_dvaudio_decoder.c
|
|
Also, built files don't end up in the vcd directory.
|
|
src/input even if the source files are in src/input/vcd.
|
|
Note that these will be removed as soon as -libavutil branch is merged, in favour of libavutil's base64 implementation.
|
|
--HG--
rename : include/xine/base64.h => src/xine-utils/base64.h
|
|
--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
|
|
|
|
base64.{c,h} functions are given "xine_" prefixes and are exported.
--HG--
rename : src/xine-utils/base64.h => include/xine/base64.h
rename : src/xine-engine/configfile.h => include/xine/configfile.h
rename : src/xine-engine/plugin_catalog.h => include/xine/plugin_catalog.h
rename : src/xine-utils/xineutils.h => include/xine/xineutils.h
rename : src/input/base64.c => src/xine-utils/base64.c
|
|
--HG--
rename : doc/faq/faq.sgml => doc/faq/faq.docbook
rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c
rename : src/libxineadec/xine_vorbis_decoder.c => src/combined/xine_vorbis_decoder.c
|
|
|
|
(either in input_http or in the test for http_helper).
|
|
|
|
|
|
|