Commit 56607b4f authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

Port from branches/0.8.6-bugfix [20546:20580] to tags/0.8.6c. Changelog was already updated.

parent 2ec491f2
This diff is collapsed.
...@@ -89,14 +89,14 @@ external libraries. ...@@ -89,14 +89,14 @@ external libraries.
* We also provide a package with all the libraries already compiled so it is * We also provide a package with all the libraries already compiled so it is
actually really easy to compile a full-featured version of vlc (these compiled actually really easy to compile a full-featured version of vlc (these compiled
libraries will only work with mingw or cygwin): libraries will only work with mingw or cygwin):
http://download.videolan.org/pub/testing/win32/contrib-20061202-win32-bin-gcc-3.4.5-only.tar.bz2 http://download.videolan.org//pub/testing/win32/contrib-20070412-win32-0.8.6b-bin-gcc-3.4.5-only.tar.bz2
(Check out for more recent versions at the same location). (Check out for more recent versions at the same location).
All you need to do is extract it in your root directory (the include files All you need to do is extract it in your root directory (the include files
and libraries will be put in /usr/win32). You can do this with the following and libraries will be put in /usr/win32). You can do this with the following
command: command:
tar xjvf contrib-20061202-win32-bin-gcc-3.4.5-only.tar.bz2 -C / tar xjvf contrib-20070412-win32-0.8.6b-bin-gcc-3.4.5-only.tar.bz2 -C /
Please note the "-C /". Please note the "-C /".
......
...@@ -2,20 +2,28 @@ $Id$ ...@@ -2,20 +2,28 @@ $Id$
Changes between 0.8.6b and 0.8.6c: Changes between 0.8.6b and 0.8.6c:
---------------------------------- ----------------------------------
Various bugfixes, notably: Various bugfixes, notably:
* Windows Vista compatibility * Windows Vista compatibility
* Cropping in Direct3D * Cropping in Direct3D
* Fullscreen change crash on Mac OS X * Fullscreen change crash on Mac OS X
* RSS filter string overflow * RSS filter string overflow
* Few memory leaks * Few memory leaks
* Embedded subtitles (GAB2 format) in AVI
* MKV demuxer crash (related to seeking) * MKV demuxer crash (related to seeking)
CDDA / Vorbis / Theora / SAP plugins: CDDA / Vorbis / Theora / SAP plugins:
* Security updates (VideoLAN-SA-0702) * Security updates (VideoLAN-SA-0702)
Demuxers:
* Fixed a problem with detecting embedded subtitles (GAB2 format) in AVI
Localisation:
* New localisation: Arabic, Persian
Changes between 0.8.6a and 0.8.6b: Changes between 0.8.6a and 0.8.6b:
---------------------------------- ----------------------------------
Various bugfixes, notably: Various bugfixes, notably:
* Out-of-bound read in demuxers * Out-of-bound read in demuxers
* Demuxers crashes (incl. CVE-2007-0256) * Demuxers crashes (incl. CVE-2007-0256)
...@@ -117,7 +125,7 @@ Developers: ...@@ -117,7 +125,7 @@ Developers:
Changes between 0.8.4a and 0.8.5: Changes between 0.8.4a and 0.8.5:
---------------------------------- ---------------------------------
Core support: Core support:
* Statistics collection (bitrates, packets, connections, ...) * Statistics collection (bitrates, packets, connections, ...)
...@@ -199,6 +207,7 @@ Developers: ...@@ -199,6 +207,7 @@ Developers:
* Java bindings * Java bindings
* A bit more automatic testing * A bit more automatic testing
Changes between 0.8.4 and 0.8.4a: Changes between 0.8.4 and 0.8.4a:
--------------------------------- ---------------------------------
...@@ -223,6 +232,7 @@ Interfaces: ...@@ -223,6 +232,7 @@ Interfaces:
* Mac OS X * Mac OS X
- fixed encoding of H.264/H.263 content when using the wizard - fixed encoding of H.264/H.263 content when using the wizard
Changes between 0.8.2 and 0.8.4: Changes between 0.8.2 and 0.8.4:
-------------------------------- --------------------------------
...@@ -305,6 +315,7 @@ Translations: ...@@ -305,6 +315,7 @@ Translations:
The following languages were re-added: The following languages were re-added:
* Swedish * Swedish
Changes between 0.8.1 and 0.8.2: Changes between 0.8.1 and 0.8.2:
-------------------------------- --------------------------------
...@@ -439,7 +450,7 @@ Translations: ...@@ -439,7 +450,7 @@ Translations:
Changes between 0.8.0 and 0.8.1: Changes between 0.8.0 and 0.8.1:
----------------------------------------------------- --------------------------------
Core support: Core support:
* Include TLS/SSL API (on plattforms where libgnutls is available) * Include TLS/SSL API (on plattforms where libgnutls is available)
...@@ -470,8 +481,9 @@ Stream Output: ...@@ -470,8 +481,9 @@ Stream Output:
* Stream output: * Stream output:
* Support of playlist group announcement * Support of playlist group announcement
Changes between 0.7.2 and 0.8.0: Changes between 0.7.2 and 0.8.0:
----------------------------------------------------- --------------------------------
Core support: Core support:
* Major work on libvlc. Changed/renamed/added functions * Major work on libvlc. Changed/renamed/added functions
...@@ -594,6 +606,7 @@ Misc: ...@@ -594,6 +606,7 @@ Misc:
* Cisco IP/TV streams supported * Cisco IP/TV streams supported
* VLM enhancements * VLM enhancements
Changes between 0.7.1 and 0.7.2: Changes between 0.7.1 and 0.7.2:
-------------------------------- --------------------------------
...@@ -684,6 +697,7 @@ Misc: ...@@ -684,6 +697,7 @@ Misc:
* Improvements to the Goom visualisation plugin. * Improvements to the Goom visualisation plugin.
* Roku HD1000 audio output. * Roku HD1000 audio output.
Changes between 0.7.1 and 0.7.1a: Changes between 0.7.1 and 0.7.1a:
--------------------------------- ---------------------------------
...@@ -693,7 +707,7 @@ Mac OS X: ...@@ -693,7 +707,7 @@ Mac OS X:
Changes between 0.7.0 and 0.7.1: Changes between 0.7.0 and 0.7.1:
--------------------------------- --------------------------------
Core support: Core support:
* Fixed a nasty bug that causes preferences not to be saved some times. * Fixed a nasty bug that causes preferences not to be saved some times.
...@@ -736,8 +750,9 @@ Win32 port: ...@@ -736,8 +750,9 @@ Win32 port:
* A few improvements to the DirectShow input plugin. * A few improvements to the DirectShow input plugin.
* Fixed ipv6 name resolution. * Fixed ipv6 name resolution.
Changes between 0.6.2 and 0.7.0: Changes between 0.6.2 and 0.7.0:
--------------------------------- --------------------------------
Core support: Core support:
* Brand new decoder/packetizer api. * Brand new decoder/packetizer api.
...@@ -848,8 +863,9 @@ Miscellaneous: ...@@ -848,8 +863,9 @@ Miscellaneous:
* Spanish, Portuguese Brazilian and Hungarian translations. * Spanish, Portuguese Brazilian and Hungarian translations.
* libcaca video output (colored ascii) * libcaca video output (colored ascii)
Changes between 0.6.1 and 0.6.2: Changes between 0.6.1 and 0.6.2:
--------------------------------- --------------------------------
Core support: Core support:
* Fixed a nasty regression in 0.6.1 which made some streams unplayable. * Fixed a nasty regression in 0.6.1 which made some streams unplayable.
...@@ -880,8 +896,9 @@ Miscellaneous: ...@@ -880,8 +896,9 @@ Miscellaneous:
* Ffmpeg decoder now generates proper pts and can be used to play * Ffmpeg decoder now generates proper pts and can be used to play
mpeg1/2 videos. mpeg1/2 videos.
Changes between 0.6.0 and 0.6.1: Changes between 0.6.0 and 0.6.1:
--------------------------------- --------------------------------
Core support: Core support:
* There should be less bogus resampling, particularly on DVDs. * There should be less bogus resampling, particularly on DVDs.
...@@ -907,8 +924,9 @@ Miscellaneous: ...@@ -907,8 +924,9 @@ Miscellaneous:
* Ffmpeg decoder now generates proper pts and can be used to play * Ffmpeg decoder now generates proper pts and can be used to play
mpeg1/2 videos. mpeg1/2 videos.
Changes between 0.6.0 and 0.6.1: Changes between 0.6.0 and 0.6.1:
--------------------------------- --------------------------------
Core support: Core support:
* There should be less bogus resampling, particularly on DVDs. * There should be less bogus resampling, particularly on DVDs.
...@@ -956,7 +974,7 @@ Miscellaneous: ...@@ -956,7 +974,7 @@ Miscellaneous:
Changes between 0.5.3 and 0.6.0: Changes between 0.5.3 and 0.6.0:
--------------------------------- --------------------------------
Core Support: Core Support:
* Channel Server support was removed (was deprecated) * Channel Server support was removed (was deprecated)
...@@ -1033,8 +1051,9 @@ BeOS port: ...@@ -1033,8 +1051,9 @@ BeOS port:
* A few new keyboard shortcuts * A few new keyboard shortcuts
* New full-featured Preferences window * New full-featured Preferences window
Changes between 0.5.2 and 0.5.3: Changes between 0.5.2 and 0.5.3:
--------------------------------- --------------------------------
Core Support: Core Support:
* fixed DTS S/PDIF output on little-endian machines * fixed DTS S/PDIF output on little-endian machines
......
...@@ -8,6 +8,7 @@ Michel Lespinasse <walken at zoy.org> - AC3 decoder, MPEG audio and video decode ...@@ -8,6 +8,7 @@ Michel Lespinasse <walken at zoy.org> - AC3 decoder, MPEG audio and video decode
The VideoLAN team would like to thank the following contributors: The VideoLAN team would like to thank the following contributors:
Adam Sampson <ats @t offog d0t org> - libFLAC >= 1.1.3 API support
Alex Antropoff <alant at transtelecom dot md> - RFC3016 (LATM) RTP packetizer extension Alex Antropoff <alant at transtelecom dot md> - RFC3016 (LATM) RTP packetizer extension
Alexander Didebulidze <alexander.didebulidze at stusta dot mhn dot de> - Georgian localization Alexander Didebulidze <alexander.didebulidze at stusta dot mhn dot de> - Georgian localization
Alexander Gall <gall at switch dot ch> - Solaris fixes and CDDB fixes Alexander Gall <gall at switch dot ch> - Solaris fixes and CDDB fixes
...@@ -62,6 +63,8 @@ Enrico Gueli <e_gueli at yahoo.it> - Brightness threshold in adjust video filter ...@@ -62,6 +63,8 @@ Enrico Gueli <e_gueli at yahoo.it> - Brightness threshold in adjust video filter
Espen Skoglund <esk at ira.uka.de> - FreeBSD autoconf and Makefile patches Espen Skoglund <esk at ira.uka.de> - FreeBSD autoconf and Makefile patches
Ethan C. Baldridge <BaldridgeE at cadmus.com> - directory browsing code Ethan C. Baldridge <BaldridgeE at cadmus.com> - directory browsing code
Eurodata Computer Club <retron.info> - VLC icon design (v0.8.4) Eurodata Computer Club <retron.info> - VLC icon design (v0.8.4)
Farzaneh Sarafraz <farzaneh at farsiweb dot info> - Persian localisation
Fouzia Bourai <fbourai at cerist dot dz> - Arabic localisation
François Seingier <francois.seingier at club-internet.fr> - TTL setting in the wx stream output dialog François Seingier <francois.seingier at club-internet.fr> - TTL setting in the wx stream output dialog
Frank Chao <frank0624 at gmail.com> - Chinese Traditional translation Frank Chao <frank0624 at gmail.com> - Chinese Traditional translation
Fumio Nakayama <endymion at ca2.so-net.ne.jp> - Japanese translation Fumio Nakayama <endymion at ca2.so-net.ne.jp> - Japanese translation
......
...@@ -4,7 +4,7 @@ AC_INIT(vlc,0.8.6c) ...@@ -4,7 +4,7 @@ AC_INIT(vlc,0.8.6c)
VERSION_MAJOR="0" VERSION_MAJOR="0"
VERSION_MINOR="8" VERSION_MINOR="8"
VERSION_REVISION="6" VERSION_REVISION="6"
VERSION_EXTRA="b" VERSION_EXTRA="c"
CONFIGURE_LINE="$0 $*" CONFIGURE_LINE="$0 $*"
CODENAME="Janus" CODENAME="Janus"
...@@ -307,7 +307,7 @@ fi ...@@ -307,7 +307,7 @@ fi
dnl dnl
dnl Gettext stuff dnl Gettext stuff
dnl dnl
ALL_LINGUAS="af ar ca co cs da de en_GB es eu fr fur gl he hi hu it ja lt lv ka ko ms nb ne nl nn oc pa pt_BR ro ru sk sl sq sv th tr zh_CN zh_TW" ALL_LINGUAS="af ar ca co cs da de en_GB es eu fa fr fur gl he hi hu it ja lt lv ka ko ms nb ne nl nn oc pa pt_BR ro ru sk sl sq sv th tr zh_CN zh_TW"
AM_GNU_GETTEXT_VERSION(0.11.5) AM_GNU_GETTEXT_VERSION(0.11.5)
AM_GNU_GETTEXT AM_GNU_GETTEXT
if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
......
This diff is collapsed.
...@@ -3,11 +3,11 @@ ...@@ -3,11 +3,11 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CFBundleGetInfoString</key> <key>CFBundleGetInfoString</key>
<string>0.8.6b, The VideoLAN Team, All Rights Reserved.</string> <string>0.8.6c, The VideoLAN Team, All Rights Reserved.</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
<string>org.videolan.vlc</string> <string>org.videolan.vlc</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>0.8.6b</string> <string>0.8.6c</string>
<key>IFMajorVersion</key> <key>IFMajorVersion</key>
<integer>0</integer> <integer>0</integer>
<key>IFMinorVersion</key> <key>IFMinorVersion</key>
......
This diff is collapsed.
...@@ -40,6 +40,10 @@ ...@@ -40,6 +40,10 @@
#define MAX_FLAC_HEADER_SIZE 16 #define MAX_FLAC_HEADER_SIZE 16
#if defined(FLAC_API_VERSION_CURRENT) && FLAC_API_VERSION_CURRENT >= 8
# define USE_NEW_FLAC_API
#endif
/***************************************************************************** /*****************************************************************************
* decoder_sys_t : FLAC decoder descriptor * decoder_sys_t : FLAC decoder descriptor
*****************************************************************************/ *****************************************************************************/
...@@ -225,6 +229,25 @@ static int OpenDecoder( vlc_object_t *p_this ) ...@@ -225,6 +229,25 @@ static int OpenDecoder( vlc_object_t *p_this )
return VLC_EGENERIC; return VLC_EGENERIC;
} }
#ifdef USE_NEW_FLAC_API
if( FLAC__stream_decoder_init_stream( p_sys->p_flac,
DecoderReadCallback,
NULL,
NULL,
NULL,
NULL,
DecoderWriteCallback,
DecoderMetadataCallback,
DecoderErrorCallback,
p_dec )
!= FLAC__STREAM_DECODER_INIT_STATUS_OK )
{
msg_Err( p_dec, "FLAC__stream_decoder_init_stream() failed" );
FLAC__stream_decoder_delete( p_sys->p_flac );
free( p_sys );
return VLC_EGENERIC;
}
#else
FLAC__stream_decoder_set_read_callback( p_sys->p_flac, FLAC__stream_decoder_set_read_callback( p_sys->p_flac,
DecoderReadCallback ); DecoderReadCallback );
FLAC__stream_decoder_set_write_callback( p_sys->p_flac, FLAC__stream_decoder_set_write_callback( p_sys->p_flac,
...@@ -236,6 +259,7 @@ static int OpenDecoder( vlc_object_t *p_this ) ...@@ -236,6 +259,7 @@ static int OpenDecoder( vlc_object_t *p_this )
FLAC__stream_decoder_set_client_data( p_sys->p_flac, p_dec ); FLAC__stream_decoder_set_client_data( p_sys->p_flac, p_dec );
FLAC__stream_decoder_init( p_sys->p_flac ); FLAC__stream_decoder_init( p_sys->p_flac );
#endif
#endif #endif
/* Set output properties */ /* Set output properties */
...@@ -734,16 +758,27 @@ static void decoder_state_error( decoder_t *p_dec, ...@@ -734,16 +758,27 @@ static void decoder_state_error( decoder_t *p_dec,
case FLAC__STREAM_DECODER_END_OF_STREAM: case FLAC__STREAM_DECODER_END_OF_STREAM:
msg_Dbg( p_dec, "the decoder has reached the end of the stream." ); msg_Dbg( p_dec, "the decoder has reached the end of the stream." );
break; break;
#ifdef USE_NEW_FLAC_API
case FLAC__STREAM_DECODER_OGG_ERROR:
msg_Err( p_dec, "error occurred in the Ogg layer." );
break;
case FLAC__STREAM_DECODER_SEEK_ERROR:
msg_Err( p_dec, "error occurred while seeking." );
break;
#endif
case FLAC__STREAM_DECODER_ABORTED: case FLAC__STREAM_DECODER_ABORTED:
msg_Warn( p_dec, "the decoder was aborted by the read callback." ); msg_Warn( p_dec, "the decoder was aborted by the read callback." );
break; break;
#ifndef USE_NEW_FLAC_API
case FLAC__STREAM_DECODER_UNPARSEABLE_STREAM: case FLAC__STREAM_DECODER_UNPARSEABLE_STREAM:
msg_Warn( p_dec, "the decoder encountered reserved fields in use " msg_Warn( p_dec, "the decoder encountered reserved fields in use "
"in the stream." ); "in the stream." );
break; break;
#endif
case FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR: case FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR:
msg_Err( p_dec, "error when allocating memory." ); msg_Err( p_dec, "error when allocating memory." );
break; break;
#ifndef USE_NEW_FLAC_API
case FLAC__STREAM_DECODER_ALREADY_INITIALIZED: case FLAC__STREAM_DECODER_ALREADY_INITIALIZED:
msg_Err( p_dec, "FLAC__stream_decoder_init() was called when the " msg_Err( p_dec, "FLAC__stream_decoder_init() was called when the "
"decoder was already initialized, usually because " "decoder was already initialized, usually because "
...@@ -753,6 +788,7 @@ static void decoder_state_error( decoder_t *p_dec, ...@@ -753,6 +788,7 @@ static void decoder_state_error( decoder_t *p_dec,
msg_Err( p_dec, "FLAC__stream_decoder_init() was called without " msg_Err( p_dec, "FLAC__stream_decoder_init() was called without "
"all callbacks being set." ); "all callbacks being set." );
break; break;
#endif
case FLAC__STREAM_DECODER_UNINITIALIZED: case FLAC__STREAM_DECODER_UNINITIALIZED:
msg_Err( p_dec, "decoder in uninitialized state." ); msg_Err( p_dec, "decoder in uninitialized state." );
break; break;
...@@ -1187,7 +1223,12 @@ static int OpenEncoder( vlc_object_t *p_this ) ...@@ -1187,7 +1223,12 @@ static int OpenEncoder( vlc_object_t *p_this )
p_sys->i_samples_delay = 0; p_sys->i_samples_delay = 0;
/* Create flac encoder */ /* Create flac encoder */
p_sys->p_flac = FLAC__stream_encoder_new(); if( !(p_sys->p_flac = FLAC__stream_encoder_new()) )
{
msg_Err( p_enc, "FLAC__stream_encoder_new() failed" );
free( p_sys );
return VLC_EGENERIC;
}
FLAC__stream_encoder_set_streamable_subset( p_sys->p_flac, 1 ); FLAC__stream_encoder_set_streamable_subset( p_sys->p_flac, 1 );
FLAC__stream_encoder_set_channels( p_sys->p_flac, FLAC__stream_encoder_set_channels( p_sys->p_flac,
...@@ -1197,15 +1238,32 @@ static int OpenEncoder( vlc_object_t *p_this ) ...@@ -1197,15 +1238,32 @@ static int OpenEncoder( vlc_object_t *p_this )
FLAC__stream_encoder_set_bits_per_sample( p_sys->p_flac, 16 ); FLAC__stream_encoder_set_bits_per_sample( p_sys->p_flac, 16 );
p_enc->fmt_in.i_codec = AOUT_FMT_S16_NE; p_enc->fmt_in.i_codec = AOUT_FMT_S16_NE;
/* Get and store the STREAMINFO metadata block as a p_extra */
p_sys->p_chain = 0;
#ifdef USE_NEW_FLAC_API
if( FLAC__stream_encoder_init_stream( p_sys->p_flac,
EncoderWriteCallback,
NULL,
NULL,
EncoderMetadataCallback,
p_enc )
!= FLAC__STREAM_ENCODER_INIT_STATUS_OK )
{
msg_Err( p_enc, "FLAC__stream_encoder_init_stream() failed" );
FLAC__stream_encoder_delete( p_sys->p_flac );
free( p_sys );
return VLC_EGENERIC;
}
#else
FLAC__stream_encoder_set_write_callback( p_sys->p_flac, FLAC__stream_encoder_set_write_callback( p_sys->p_flac,
EncoderWriteCallback ); EncoderWriteCallback );
FLAC__stream_encoder_set_metadata_callback( p_sys->p_flac, FLAC__stream_encoder_set_metadata_callback( p_sys->p_flac,
EncoderMetadataCallback ); EncoderMetadataCallback );
FLAC__stream_encoder_set_client_data( p_sys->p_flac, p_enc ); FLAC__stream_encoder_set_client_data( p_sys->p_flac, p_enc );
/* Get and store the STREAMINFO metadata block as a p_extra */
p_sys->p_chain = 0;
FLAC__stream_encoder_init( p_sys->p_flac ); FLAC__stream_encoder_init( p_sys->p_flac );
#endif
return VLC_SUCCESS; return VLC_SUCCESS;
} }
......
...@@ -173,6 +173,8 @@ static int Open( vlc_object_t *p_this ) ...@@ -173,6 +173,8 @@ static int Open( vlc_object_t *p_this )
/* Skip this chunk */ /* Skip this chunk */
i_size += 8; i_size += 8;
if( (i_size % 2) != 0 )
i_size++;
if( stream_Read( p_demux->s, NULL, i_size ) != (int)i_size ) if( stream_Read( p_demux->s, NULL, i_size ) != (int)i_size )
{ {
msg_Warn( p_demux, "incomplete file" ); msg_Warn( p_demux, "incomplete file" );
...@@ -184,7 +186,7 @@ static int Open( vlc_object_t *p_this ) ...@@ -184,7 +186,7 @@ static int Open( vlc_object_t *p_this )
p_sys->i_ssnd_end = p_sys->i_ssnd_start + p_sys->i_ssnd_size; p_sys->i_ssnd_end = p_sys->i_ssnd_start + p_sys->i_ssnd_size;
p_sys->i_ssnd_fsize = p_sys->fmt.audio.i_channels * p_sys->i_ssnd_fsize = p_sys->fmt.audio.i_channels *
( p_sys->fmt.audio.i_bitspersample + 7 ) / 8; ((p_sys->fmt.audio.i_bitspersample + 7) / 8);
if( p_sys->i_ssnd_fsize <= 0 ) if( p_sys->i_ssnd_fsize <= 0 )
{ {
......
...@@ -252,6 +252,11 @@ static int Create( vlc_object_t *p_this ) ...@@ -252,6 +252,11 @@ static int Create( vlc_object_t *p_this )
{ {
if( psz_fontfile ) free( psz_fontfile ); if( psz_fontfile ) free( psz_fontfile );
psz_fontfile = (char *)malloc( PATH_MAX + 1 ); psz_fontfile = (char *)malloc( PATH_MAX + 1 );
if( !psz_fontfile )
{
msg_Err( p_filter, "out of memory" );
goto error;
}
#ifdef WIN32 #ifdef WIN32
GetWindowsDirectory( psz_fontfile, PATH_MAX + 1 ); GetWindowsDirectory( psz_fontfile, PATH_MAX + 1 );
strcat( psz_fontfile, "\\fonts\\arial.ttf" ); strcat( psz_fontfile, "\\fonts\\arial.ttf" );
...@@ -693,9 +698,9 @@ static int RenderText( filter_t *p_filter, subpicture_region_t *p_region_out, ...@@ -693,9 +698,9 @@ static int RenderText( filter_t *p_filter, subpicture_region_t *p_region_out,
subpicture_region_t *p_region_in ) subpicture_region_t *p_region_in )
{ {
filter_sys_t *p_sys = p_filter->p_sys; filter_sys_t *p_sys = p_filter->p_sys;
line_desc_t *p_lines = 0, *p_line = 0, *p_next = 0, *p_prev = 0; line_desc_t *p_lines = NULL, *p_line = NULL, *p_next = NULL, *p_prev = NULL;
int i, i_pen_y, i_pen_x, i_error, i_glyph_index, i_previous; int i, i_pen_y, i_pen_x, i_error, i_glyph_index, i_previous;
uint32_t *psz_unicode, *psz_unicode_orig = 0, i_char, *psz_line_start; uint32_t *psz_unicode, *psz_unicode_orig = NULL, i_char, *psz_line_start;
int i_string_length; int i_string_length;
char *psz_string; char *psz_string;
vlc_iconv_t iconv_handle = (vlc_iconv_t)(-1); vlc_iconv_t iconv_handle = (vlc_iconv_t)(-1);
...@@ -782,6 +787,11 @@ static int RenderText( filter_t *p_filter, subpicture_region_t *p_region_out, ...@@ -782,6 +787,11 @@ static int RenderText( filter_t *p_filter, subpicture_region_t *p_region_out,
int start_pos, pos = 0; int start_pos, pos = 0;
p_fribidi_string = malloc( (i_string_length + 1) * sizeof(uint32_t) ); p_fribidi_string = malloc( (i_string_length + 1) * sizeof(uint32_t) );
if( !p_fribidi_string )
{
msg_Err( p_filter, "out of memory" );
goto error;
}
/* Do bidi conversion line-by-line */ /* Do bidi conversion line-by-line */
while(pos < i_string_length) while(pos < i_string_length)
...@@ -1073,3 +1083,4 @@ static int SetFontSize( filter_t *p_filter, int i_size ) ...@@ -1073,3 +1083,4 @@ static int SetFontSize( filter_t *p_filter, int i_size )
return VLC_SUCCESS; return VLC_SUCCESS;
} }
...@@ -23,26 +23,18 @@ include/snapshot.h ...@@ -23,26 +23,18 @@ include/snapshot.h
include/stream_output.h include/stream_output.h
include/variables.h include/variables.h
include/video_output.h include/video_output.h
include/vlc/aout.h
include/vlc/decoder.h
include/vlc/input.h
include/vlc/intf.h
include/vlc/libvlc.h
include/vlc/mediacontrol.h
include/vlc/mediacontrol_structures.h
include/vlc/sout.h
include/vlc/vlc.h
include/vlc/vout.h
include/vlc_access.h include/vlc_access.h
include/vlc_acl.h include/vlc_acl.h
include/vlc/aout.h
include/vlc_bits.h include/vlc_bits.h
include/vlc_block.h include/vlc_block.h
include/vlc_block_helper.h include/vlc_block_helper.h
include/vlc_codec.h include/vlc_codec.h
include/vlc_common.h include/vlc_common.h
include/vlc_config.h
include/vlc_config_cat.h include/vlc_config_cat.h
include/vlc_config.h
include/vlc_cpu.h include/vlc_cpu.h
include/vlc/decoder.h
include/vlc_demux.h include/vlc_demux.h
include/vlc_error.h include/vlc_error.h
include/vlc_es.h include/vlc_es.h
...@@ -51,26 +43,34 @@ include/vlc_filter.h ...@@ -51,26 +43,34 @@ include/vlc_filter.h
include/vlc_httpd.h include/vlc_httpd.h
include/vlc_image.h include/vlc_image.h
include/vlc_input.h include/vlc_input.h
include/vlc/input.h
include/vlc_interaction.h include/vlc_interaction.h
include/vlc_interface.h include/vlc_interface.h
include/vlc/intf.h
include/vlc_keys.h include/vlc_keys.h
include/vlc/libvlc.h
include/vlc_md5.h include/vlc_md5.h
include/vlc/mediacontrol.h
include/vlc/mediacontrol_structures.h
include/vlc_messages.h include/vlc_messages.h
include/vlc_meta.h include/vlc_meta.h
include/vlc_objects.h include/vlc_objects.h
include/vlc_osd.h include/vlc_osd.h
include/vlc_playlist.h include/vlc_playlist.h
include/vlc/sout.h
include/vlc_spu.h include/vlc_spu.h
include/vlc_stream.h include/vlc_stream.h
include/vlc_strings.h include/vlc_strings.h
include/vlc_threads.h
include/vlc_threads_funcs.h include/vlc_threads_funcs.h
include/vlc_threads.h
include/vlc_tls.h include/vlc_tls.h
include/vlc_update.h include/vlc_update.h
include/vlc_url.h include/vlc_url.h
include/vlc_video.h include/vlc_video.h
include/vlc/vlc.h
include/vlc_vlm.h include/vlc_vlm.h
include/vlc_vod.h include/vlc_vod.h
include/vlc/vout.h
include/vlc_xml.h include/vlc_xml.h
include/vout_synchro.h include/vout_synchro.h
include/win32_specific.h include/win32_specific.h
...@@ -94,9 +94,9 @@ src/control/playlist.c ...@@ -94,9 +94,9 @@ src/control/playlist.c
src/control/video.c src/control/video.c
src/control/vlm.c src/control/vlm.c
src/extras/dirent.c src/extras/dirent.c
src/extras/getopt1.c
src/extras/getopt.c src/extras/getopt.c
src/extras/getopt.h src/extras/getopt.h
src/extras/getopt1.c
src/extras/libc.c src/extras/libc.c
src/input/access.c src/input/access.c
src/input/clock.c src/input/clock.c
...@@ -153,8 +153,8 @@ src/osd/osd.c ...@@ -153,8 +153,8 @@ src/osd/osd.c
src/osd/osd_parser.c src/osd/osd_parser.c
src/osd/osd_text.c src/osd/osd_text.c
src/osd/osd_widgets.c src/osd/osd_widgets.c
src/playlist/item-ext.c
src/playlist/item.c src/playlist/item.c
src/playlist/item-ext.c
src/playlist/loadsave.c src/playlist/loadsave.c
src/playlist/playlist.c src/playlist/playlist.c
src/playlist/services_discovery.c src/playlist/services_discovery.c
...@@ -176,9 +176,9 @@ src/video_output/vout_synchro.c ...@@ -176,9 +176,9 @@ src/video_output/vout_synchro.c
src/vlc.c src/vlc.c
# modules # modules
modules/access/cdda.c
modules/access/cdda/access.c modules/access/cdda/access.c
modules/access/cdda/access.h modules/access/cdda/access.h
modules/access/cdda.c
modules/access/cdda/callback.c modules/access/cdda/callback.c
modules/access/cdda/callback.h modules/access/cdda/callback.h
modules/access/cdda/cdda.c modules/access/cdda/cdda.c
...@@ -192,16 +192,19 @@ modules/access/dshow/crossbar.cpp ...@@ -192,16 +192,19 @@ modules/access/dshow/crossbar.cpp
modules/access/dshow/dshow.cpp modules/access/dshow/dshow.cpp
modules/access/dshow/filter.cpp modules/access/dshow/filter.cpp
modules/access/dshow/filter.h modules/access/dshow/filter.h
modules/access/dv.c
modules/access/dvb/access.c modules/access/dvb/access.c
modules/access/dvb/dvb.h modules/access/dvb/dvb.h
modules/access/dvb/en50221.c modules/access/dvb/en50221.c
modules/access/dvb/http.c modules/access/dvb/http.c
modules/access/dvb/linux_dvb.c modules/access/dvb/linux_dvb.c
modules/access/dv.c
modules/access/dvdnav.c modules/access/dvdnav.c
modules/access/dvdread.c modules/access/dvdread.c
modules/access/fake.c modules/access/fake.c
modules/access/file.c modules/access/file.c
modules/access_filter/dump.c
modules/access_filter/record.c
modules/access_filter/timeshift.c
modules/access/ftp.c modules/access/ftp.c
modules/access/gnomevfs.c modules/access/gnomevfs.c
modules/access/http.c modules/access/http.c
...@@ -215,12 +218,18 @@ modules/access/mms/mmsh.c ...@@ -215,12 +218,18 @@ modules/access/mms/mmsh.c
modules/access/mms/mmsh.h modules/access/mms/mmsh.h
modules/access/mms/mmstu.c modules/access/mms/mmstu.c
modules/access/mms/mmstu.h modules/access/mms/mmstu.h
modules/access/pvr/pvr.c modules/access_output/bonjour.c
modules/access/pvr/videodev2.h modules/access_output/bonjour.h
modules/access_output/dummy.c
modules/access_output/file.c
modules/access_output/http.c
modules/access_output/shout.c
modules/access_output/udp.c
modules/access/pvr.c
modules/access/rtsp/access.c modules/access/rtsp/access.c
modules/access/rtsp/real_asmrp.c
modules/access/rtsp/real.c modules/access/rtsp/real.c
modules/access/rtsp/real.h modules/access/rtsp/real.h
modules/access/rtsp/real_asmrp.c
modules/access/rtsp/real_rmff.c modules/access/rtsp/real_rmff.c
modules/access/rtsp/real_rmff.h modules/access/rtsp/real_rmff.h
modules/access/rtsp/real_sdpplin.c modules/access/rtsp/real_sdpplin.c
...@@ -252,16 +261,6 @@ modules/access/vcdx/vcd.c ...@@ -252,16 +261,6 @@ modules/access/vcdx/vcd.c
modules/access/vcdx/vcd.h modules/access/vcdx/vcd.h
modules/access/vcdx/vcdplayer.c modules/access/vcdx/vcdplayer.c
modules/access/vcdx/vcdplayer.h modules/access/vcdx/vcdplayer.h
modules/access_filter/dump.c
modules/access_filter/record.c
modules/access_filter/timeshift.c
modules/access_output/bonjour.c
modules/access_output/bonjour.h
modules/access_output/dummy.c
modules/access_output/file.c
modules/access_output/http.c
modules/access_output/shout.c
modules/access_output/udp.c
modules/audio_filter/channel_mixer/dolby.c modules/audio_filter/channel_mixer/dolby.c
modules/audio_filter/channel_mixer/headphone.c modules/audio_filter/channel_mixer/headphone.c
modules/audio_filter/channel_mixer/simple.c modules/audio_filter/channel_mixer/simple.c
...@@ -363,6 +362,7 @@ modules/codec/spudec/spudec.h ...@@ -363,6 +362,7 @@ modules/codec/spudec/spudec.h
modules/codec/subsdec.c modules/codec/subsdec.c
modules/codec/svcdsub.c modules/codec/svcdsub.c
modules/codec/tarkin.c modules/codec/tarkin.c
modules/codec/telx.c
modules/codec/theora.c modules/codec/theora.c
modules/codec/twolame.c modules/codec/twolame.c
modules/codec/vorbis.c modules/codec/vorbis.c
...@@ -466,10 +466,10 @@ modules/gui/beos/TransportButton.cpp ...@@ -466,10 +466,10 @@ modules/gui/beos/TransportButton.cpp
modules/gui/beos/TransportButton.h modules/gui/beos/TransportButton.h
modules/gui/beos/VideoOutput.cpp modules/gui/beos/VideoOutput.cpp
modules/gui/beos/VideoWindow.h modules/gui/beos/VideoWindow.h
modules/gui/macosx/AppleRemote.h
modules/gui/macosx/AppleRemote.m
modules/gui/macosx/about.h modules/gui/macosx/about.h
modules/gui/macosx/about.m modules/gui/macosx/about.m
modules/gui/macosx/AppleRemote.h
modules/gui/macosx/AppleRemote.m
modules/gui/macosx/applescript.h modules/gui/macosx/applescript.h
modules/gui/macosx/applescript.m modules/gui/macosx/applescript.m
modules/gui/macosx/bookmarks.h modules/gui/macosx/bookmarks.h
...@@ -496,26 +496,26 @@ modules/gui/macosx/open.m ...@@ -496,26 +496,26 @@ modules/gui/macosx/open.m
modules/gui/macosx/output.h modules/gui/macosx/output.h
modules/gui/macosx/output.m modules/gui/macosx/output.m
modules/gui/macosx/playlist.h modules/gui/macosx/playlist.h
modules/gui/macosx/playlist.m
modules/gui/macosx/playlistinfo.h modules/gui/macosx/playlistinfo.h
modules/gui/macosx/playlistinfo.m modules/gui/macosx/playlistinfo.m
modules/gui/macosx/playlist.m
modules/gui/macosx/prefs.h modules/gui/macosx/prefs.h
modules/gui/macosx/prefs.m modules/gui/macosx/prefs.m
modules/gui/macosx/prefs_widgets.h modules/gui/macosx/prefs_widgets.h
modules/gui/macosx/prefs_widgets.m modules/gui/macosx/prefs_widgets.m
modules/gui/macosx/update.h modules/gui/macosx/update.h
modules/gui/macosx/update.m modules/gui/macosx/update.m
modules/gui/macosx/voutgl.m
modules/gui/macosx/vout.h modules/gui/macosx/vout.h
modules/gui/macosx/vout.m modules/gui/macosx/vout.m
modules/gui/macosx/voutgl.m
modules/gui/macosx/voutqt.m modules/gui/macosx/voutqt.m
modules/gui/macosx/wizard.h modules/gui/macosx/wizard.h
modules/gui/macosx/wizard.m modules/gui/macosx/wizard.m
modules/gui/ncurses.c modules/gui/ncurses.c
modules/gui/pda/pda.c modules/gui/pda/pda.c
modules/gui/pda/pda.h
modules/gui/pda/pda_callbacks.c modules/gui/pda/pda_callbacks.c
modules/gui/pda/pda_callbacks.h modules/gui/pda/pda_callbacks.h
modules/gui/pda/pda.h
modules/gui/pda/pda_interface.c modules/gui/pda/pda_interface.c
modules/gui/pda/pda_interface.h modules/gui/pda/pda_interface.h
modules/gui/pda/pda_support.c modules/gui/pda/pda_support.c
...@@ -620,8 +620,8 @@ modules/gui/skins2/macosx/macosx_tooltip.hpp ...@@ -620,8 +620,8 @@ modules/gui/skins2/macosx/macosx_tooltip.hpp
modules/gui/skins2/macosx/macosx_window.cpp modules/gui/skins2/macosx/macosx_window.cpp
modules/gui/skins2/macosx/macosx_window.hpp modules/gui/skins2/macosx/macosx_window.hpp
modules/gui/skins2/parser/builder.cpp modules/gui/skins2/parser/builder.cpp
modules/gui/skins2/parser/builder.hpp
modules/gui/skins2/parser/builder_data.hpp modules/gui/skins2/parser/builder_data.hpp
modules/gui/skins2/parser/builder.hpp
modules/gui/skins2/parser/expr_evaluator.cpp modules/gui/skins2/parser/expr_evaluator.cpp
modules/gui/skins2/parser/expr_evaluator.hpp modules/gui/skins2/parser/expr_evaluator.hpp
modules/gui/skins2/parser/interpreter.cpp modules/gui/skins2/parser/interpreter.cpp
...@@ -704,6 +704,7 @@ modules/gui/skins2/utils/ustring.cpp ...@@ -704,6 +704,7 @@ modules/gui/skins2/utils/ustring.cpp
modules/gui/skins2/utils/ustring.hpp modules/gui/skins2/utils/ustring.hpp
modules/gui/skins2/utils/var_bool.cpp modules/gui/skins2/utils/var_bool.cpp
modules/gui/skins2/utils/var_bool.hpp modules/gui/skins2/utils/var_bool.hpp
modules/gui/skins2/utils/variable.hpp
modules/gui/skins2/utils/var_list.cpp modules/gui/skins2/utils/var_list.cpp
modules/gui/skins2/utils/var_list.hpp modules/gui/skins2/utils/var_list.hpp
modules/gui/skins2/utils/var_percent.cpp modules/gui/skins2/utils/var_percent.cpp
...@@ -712,7 +713,6 @@ modules/gui/skins2/utils/var_text.cpp ...@@ -712,7 +713,6 @@ modules/gui/skins2/utils/var_text.cpp
modules/gui/skins2/utils/var_text.hpp modules/gui/skins2/utils/var_text.hpp
modules/gui/skins2/utils/var_tree.cpp modules/gui/skins2/utils/var_tree.cpp
modules/gui/skins2/utils/var_tree.hpp modules/gui/skins2/utils/var_tree.hpp
modules/gui/skins2/utils/variable.hpp
modules/gui/skins2/vars/equalizer.cpp modules/gui/skins2/vars/equalizer.cpp
modules/gui/skins2/vars/equalizer.hpp modules/gui/skins2/vars/equalizer.hpp
modules/gui/skins2/vars/playlist.cpp modules/gui/skins2/vars/playlist.cpp
...@@ -773,9 +773,9 @@ modules/gui/wince/timer.cpp ...@@ -773,9 +773,9 @@ modules/gui/wince/timer.cpp
modules/gui/wince/video.cpp modules/gui/wince/video.cpp
modules/gui/wince/wince.cpp modules/gui/wince/wince.cpp
modules/gui/wince/wince.h modules/gui/wince/wince.h
modules/gui/wxwidgets/dialogs.cpp
modules/gui/wxwidgets/dialogs/bookmarks.cpp modules/gui/wxwidgets/dialogs/bookmarks.cpp
modules/gui/wxwidgets/dialogs/bookmarks.hpp modules/gui/wxwidgets/dialogs/bookmarks.hpp
modules/gui/wxwidgets/dialogs.cpp
modules/gui/wxwidgets/dialogs/fileinfo.cpp modules/gui/wxwidgets/dialogs/fileinfo.cpp
modules/gui/wxwidgets/dialogs/fileinfo.hpp modules/gui/wxwidgets/dialogs/fileinfo.hpp
modules/gui/wxwidgets/dialogs/infopanels.cpp modules/gui/wxwidgets/dialogs/infopanels.cpp
...@@ -844,8 +844,8 @@ modules/misc/growl.c ...@@ -844,8 +844,8 @@ modules/misc/growl.c
modules/misc/gtk_main.c modules/misc/gtk_main.c
modules/misc/logger.c modules/misc/logger.c
modules/misc/memcpy/fastmemcpy.h modules/misc/memcpy/fastmemcpy.h
modules/misc/memcpy/memcpy.c
modules/misc/memcpy/memcpyaltivec.c modules/misc/memcpy/memcpyaltivec.c
modules/misc/memcpy/memcpy.c
modules/misc/msn.c modules/misc/msn.c
modules/misc/network/ipv4.c modules/misc/network/ipv4.c
modules/misc/network/ipv6.c modules/misc/network/ipv6.c
...@@ -915,11 +915,11 @@ modules/stream_out/transrate/getvlc.h ...@@ -915,11 +915,11 @@ modules/stream_out/transrate/getvlc.h
modules/stream_out/transrate/putvlc.h modules/stream_out/transrate/putvlc.h
modules/stream_out/transrate/transrate.c modules/stream_out/transrate/transrate.c
modules/stream_out/transrate/transrate.h modules/stream_out/transrate/transrate.h
modules/video_chroma/i420_rgb.c
modules/video_chroma/i420_rgb.h
modules/video_chroma/i420_rgb16.c modules/video_chroma/i420_rgb16.c
modules/video_chroma/i420_rgb8.c modules/video_chroma/i420_rgb8.c
modules/video_chroma/i420_rgb.c
modules/video_chroma/i420_rgb_c.h modules/video_chroma/i420_rgb_c.h
modules/video_chroma/i420_rgb.h
modules/video_chroma/i420_rgb_mmx.h modules/video_chroma/i420_rgb_mmx.h
modules/video_chroma/i420_ymga.c modules/video_chroma/i420_ymga.c
modules/video_chroma/i420_yuy2.c modules/video_chroma/i420_yuy2.c
...@@ -950,13 +950,13 @@ modules/video_filter/swscale/filter.c ...@@ -950,13 +950,13 @@ modules/video_filter/swscale/filter.c
modules/video_filter/swscale/rgb2rgb.c modules/video_filter/swscale/rgb2rgb.c
modules/video_filter/swscale/rgb2rgb.h modules/video_filter/swscale/rgb2rgb.h
modules/video_filter/swscale/rgb2rgb_template.c modules/video_filter/swscale/rgb2rgb_template.c
modules/video_filter/swscale/swscale_altivec_template.c
modules/video_filter/swscale/swscale.c modules/video_filter/swscale/swscale.c
modules/video_filter/swscale/swscale.h modules/video_filter/swscale/swscale.h
modules/video_filter/swscale/swscale_altivec_template.c
modules/video_filter/swscale/swscale_internal.h modules/video_filter/swscale/swscale_internal.h
modules/video_filter/swscale/swscale_template.c modules/video_filter/swscale/swscale_template.c
modules/video_filter/swscale/yuv2rgb.c
modules/video_filter/swscale/yuv2rgb_altivec.c modules/video_filter/swscale/yuv2rgb_altivec.c
modules/video_filter/swscale/yuv2rgb.c
modules/video_filter/swscale/yuv2rgb_mlib.c modules/video_filter/swscale/yuv2rgb_mlib.c
modules/video_filter/swscale/yuv2rgb_template.c modules/video_filter/swscale/yuv2rgb_template.c
modules/video_filter/time.c modules/video_filter/time.c
...@@ -988,8 +988,6 @@ modules/video_output/x11/x11.c ...@@ -988,8 +988,6 @@ modules/video_output/x11/x11.c
modules/video_output/x11/xcommon.c modules/video_output/x11/xcommon.c
modules/video_output/x11/xcommon.h modules/video_output/x11/xcommon.h
modules/video_output/x11/xvideo.c modules/video_output/x11/xvideo.c
modules/visualization/galaktos/PCM.c
modules/visualization/galaktos/PCM.h
modules/visualization/galaktos/beat_detect.c modules/visualization/galaktos/beat_detect.c
modules/visualization/galaktos/beat_detect.h modules/visualization/galaktos/beat_detect.h
modules/visualization/galaktos/builtin_funcs.c modules/visualization/galaktos/builtin_funcs.c
...@@ -1024,6 +1022,8 @@ modules/visualization/galaktos/param.h ...@@ -1024,6 +1022,8 @@ modules/visualization/galaktos/param.h
modules/visualization/galaktos/param_types.h modules/visualization/galaktos/param_types.h
modules/visualization/galaktos/parser.c modules/visualization/galaktos/parser.c
modules/visualization/galaktos/parser.h modules/visualization/galaktos/parser.h
modules/visualization/galaktos/PCM.c
modules/visualization/galaktos/PCM.h
modules/visualization/galaktos/per_frame_eqn.c modules/visualization/galaktos/per_frame_eqn.c
modules/visualization/galaktos/per_frame_eqn.h modules/visualization/galaktos/per_frame_eqn.h
modules/visualization/galaktos/per_frame_eqn_types.h modules/visualization/galaktos/per_frame_eqn_types.h
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -29,18 +29,19 @@ ...@@ -29,18 +29,19 @@
#if defined (WIN32) || defined (__APPLE__) #if defined (WIN32) || defined (__APPLE__)
static char *ppsz_language[] = static char *ppsz_language[] =
{ "auto", "en", "en_GB", "ca", "cs", "da", "de", "es", "fr", "gl", "he", "hu", { "auto", "en", "en_GB", "ar", "ca", "cs", "da", "de", "es", "fa", "fr", "gl",
"it", "ja", "ka", "ko", "ms", "ne", "nl", "oc", "pt_BR", "ro", "ru", "sk", "he", "hu", "it", "ja", "ka", "ko", "ms", "ne", "nl", "oc", "pt_BR", "ro",
"sl", "sv", "th", "tr", "zh_CN", "zh_TW" }; "ru", "sk", "sl", "sv", "th", "tr", "zh_CN", "zh_TW" };
static char *ppsz_language_text[] = static char *ppsz_language_text[] =
{ N_("Auto"), N_("American English"), N_("British English"), { N_("Auto"), N_("American English"), N_("British English"),
N_("Catalan"), N_("Czech"), N_("Danish"), N_("German"), N_("Spanish"), N_("Arabic"), N_("Catalan"), N_("Czech"), N_("Danish"), N_("German"),
N_("French"), N_("Galician"), N_("Hebrew"), N_("Hungarian"),N_("Italian"), N_("Spanish"), N_("Persian"),N_("French"), N_("Galician"), N_("Hebrew"),
N_("Japanese"),N_("Georgian"), N_("Korean"), N_("Malay"), N_("Nepali"), N_("Hungarian"),N_("Italian"),N_("Japanese"),N_("Georgian"), N_("Korean"),
N_("Dutch"), N_("Occitan"), N_("Brazilian Portuguese"), N_("Romanian"), N_("Malay"), N_("Nepali"), N_("Dutch"), N_("Occitan"),
N_("Russian"), N_("Slovak"), N_("Slovenian"), N_("Swedish"), N_("Thai"), N_("Brazilian Portuguese"), N_("Romanian"), N_("Russian"), N_("Slovak"),
N_("Turkish"),N_("Simplified Chinese"), N_("Chinese Traditional") }; N_("Slovenian"), N_("Swedish"), N_("Thai"), N_("Turkish"),
N_("Simplified Chinese"), N_("Chinese Traditional") };
#endif #endif
static char *ppsz_snap_formats[] = static char *ppsz_snap_formats[] =
......
...@@ -41,6 +41,7 @@ static int FindLanguage( const char * psz_lang ) ...@@ -41,6 +41,7 @@ static int FindLanguage( const char * psz_lang )
const char ** ppsz_parser; const char ** ppsz_parser;
const char * ppsz_all[] = const char * ppsz_all[] =
{ {
"Arabic", "ar",
"Catalan", "ca", "Catalan", "ca",
"Czech", "cs", "Czech", "cs",
"Danish", "da", "Danish", "da",
...@@ -48,6 +49,7 @@ static int FindLanguage( const char * psz_lang ) ...@@ -48,6 +49,7 @@ static int FindLanguage( const char * psz_lang )
"British", "en_GB", "British", "en_GB",
"English", "en", "English", "en",
"Spanish", "es", "Spanish", "es",
"Persian", "fa",
"French", "fr", "French", "fr",
"Galician", "gl", "Galician", "gl",
"Hebrew", "he", "Hebrew", "he",
......
...@@ -251,6 +251,8 @@ subpicture_region_t *__spu_CreateRegion( vlc_object_t *p_this, ...@@ -251,6 +251,8 @@ subpicture_region_t *__spu_CreateRegion( vlc_object_t *p_this,
video_format_t *p_fmt ) video_format_t *p_fmt )
{ {
subpicture_region_t *p_region = malloc( sizeof(subpicture_region_t) ); subpicture_region_t *p_region = malloc( sizeof(subpicture_region_t) );
if( !p_region ) return NULL;
memset( p_region, 0, sizeof(subpicture_region_t) ); memset( p_region, 0, sizeof(subpicture_region_t) );
p_region->p_next = 0; p_region->p_next = 0;
p_region->p_cache = 0; p_region->p_cache = 0;
...@@ -273,7 +275,7 @@ subpicture_region_t *__spu_CreateRegion( vlc_object_t *p_this, ...@@ -273,7 +275,7 @@ subpicture_region_t *__spu_CreateRegion( vlc_object_t *p_this,
if( !p_region->picture.i_planes ) if( !p_region->picture.i_planes )
{ {
free( p_region ); free( p_region );
free( p_fmt->p_palette ); if( p_fmt->p_palette ) free( p_fmt->p_palette );
return NULL; return NULL;
} }
...@@ -635,8 +637,8 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -635,8 +637,8 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
} }
/* Force palette if requested */ /* Force palette if requested */
if( p_spu->b_force_palette && VLC_FOURCC('Y','U','V','P') == if( p_spu->b_force_palette &&
p_region->fmt.i_chroma ) (VLC_FOURCC('Y','U','V','P') == p_region->fmt.i_chroma) )
{ {
memcpy( p_region->fmt.p_palette->palette, memcpy( p_region->fmt.p_palette->palette,
p_spu->palette, 16 ); p_spu->palette, 16 );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment