Accepting request 545872 from multimedia:libs
- Update to version 2.2.8: + Demuxers: Fix AVI invalid pointer dereferences. + Updated translations. - Changes from version 2.2.7: + Decoders: - Fix flac heap write overflow on format change. - Fix crash in libavcodec module (heap write out-of band) CVE-2017-10699. - Fix infinite loop in sami subtitle. - Fix AAC 7.1 channels detection. - Fix potential crash in ASX parser. + Mac OS X: - Fix compatibility with macOS High Sierra. - Fix regression in ASS subtitle decoding. - Fix crash during automatic update. Some users might need to manually update to the newest version. + Video Output: Fix Direct3D9 output with odd offsets. + Misc: - Fix crash in MTP. - Support libupnp 1.8. + Updated translations. - Removed vlc-flac-heap-overflow.patch, fixed upstream. OBS-URL: https://build.opensuse.org/request/show/545872 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/vlc?expand=0&rev=74
This commit is contained in:
commit
aa723f371d
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:c403d3accd9a400eb2181c958f3e7bc5524fe5738425f4253d42883b425a42a8
|
|
||||||
size 22198720
|
|
3
vlc-2.2.8.tar.xz
Normal file
3
vlc-2.2.8.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:9bf046848fb56d93518881b39099b8288ee005d5ba0ddf705b6f6643b8d562ec
|
||||||
|
size 22137276
|
@ -1,148 +0,0 @@
|
|||||||
X-Git-Url: http://git.videolan.org/?p=vlc%2Fvlc-2.2.git;a=blobdiff_plain;f=modules%2Fcodec%2Fflac.c;h=fb12e6cab890777592154b43d8a2bc286a8f3913;hp=87c1e6cb7b84d4ba2b5eef18f9dc861b40cf6393;hb=55a82442cfea9dab8b853f3a4610f2880c5fadf3;hpb=dbe888f9ca9c3b102478b4a16a3d1d985c267899
|
|
||||||
|
|
||||||
diff --git a/modules/codec/flac.c b/modules/codec/flac.c
|
|
||||||
index 87c1e6cb7b..fb12e6cab8 100644
|
|
||||||
--- a/modules/codec/flac.c
|
|
||||||
+++ b/modules/codec/flac.c
|
|
||||||
@@ -64,6 +64,8 @@ struct decoder_sys_t
|
|
||||||
*/
|
|
||||||
FLAC__StreamDecoder *p_flac;
|
|
||||||
FLAC__StreamMetadata_StreamInfo stream_info;
|
|
||||||
+
|
|
||||||
+ uint8_t rgi_channels_reorder[AOUT_CHAN_MAX];
|
|
||||||
bool b_stream_info;
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -87,6 +89,19 @@ static const int pi_channels_maps[9] =
|
|
||||||
| AOUT_CHAN_LFE
|
|
||||||
};
|
|
||||||
|
|
||||||
+/* XXX it supposes our internal format is WG4 */
|
|
||||||
+static const uint8_t ppi_reorder[1+8][8] = {
|
|
||||||
+ { },
|
|
||||||
+ { 0, },
|
|
||||||
+ { 0, 1 },
|
|
||||||
+ { 0, 1, 2 },
|
|
||||||
+ { 0, 1, 2, 3 },
|
|
||||||
+ { 0, 1, 3, 4, 2 },
|
|
||||||
+ { 0, 1, 4, 5, 2, 3 },
|
|
||||||
+ { 0, 1, 5, 6, 4, 2, 3 },
|
|
||||||
+ { 0, 1, 6, 7, 4, 5, 2, 3 },
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
/*****************************************************************************
|
|
||||||
* Local prototypes
|
|
||||||
*****************************************************************************/
|
|
||||||
@@ -143,6 +158,29 @@ static void Interleave( int32_t *p_out, const int32_t * const *pp_in,
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
+ * DecoderSetOutputFormat: helper function to convert and check frame format
|
|
||||||
+ *****************************************************************************/
|
|
||||||
+static int DecoderSetOutputFormat( unsigned i_channels, unsigned i_rate,
|
|
||||||
+ unsigned i_streaminfo_rate,
|
|
||||||
+ unsigned i_bitspersample,
|
|
||||||
+ audio_format_t *fmt,
|
|
||||||
+ uint8_t *pi_channels_reorder )
|
|
||||||
+{
|
|
||||||
+ if( i_channels == 0 || i_channels > FLAC__MAX_CHANNELS ||
|
|
||||||
+ i_bitspersample == 0 || (i_rate == 0 && i_streaminfo_rate == 0) )
|
|
||||||
+ return VLC_EGENERIC;
|
|
||||||
+
|
|
||||||
+ fmt->i_channels = i_channels;
|
|
||||||
+ fmt->i_rate = (i_rate > 0 ) ? i_rate : i_streaminfo_rate;
|
|
||||||
+ fmt->i_physical_channels =
|
|
||||||
+ fmt->i_original_channels = pi_channels_maps[i_channels];
|
|
||||||
+ memcpy( pi_channels_reorder, ppi_reorder[i_channels], i_channels );
|
|
||||||
+ fmt->i_bitspersample = i_bitspersample;
|
|
||||||
+
|
|
||||||
+ return VLC_SUCCESS;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/*****************************************************************************
|
|
||||||
* DecoderWriteCallback: called by libflac to output decoded samples
|
|
||||||
*****************************************************************************/
|
|
||||||
static FLAC__StreamDecoderWriteStatus
|
|
||||||
@@ -150,30 +188,31 @@ DecoderWriteCallback( const FLAC__StreamDecoder *decoder,
|
|
||||||
const FLAC__Frame *frame,
|
|
||||||
const FLAC__int32 *const buffer[], void *client_data )
|
|
||||||
{
|
|
||||||
- /* XXX it supposes our internal format is WG4 */
|
|
||||||
- static const unsigned char ppi_reorder[1+8][8] = {
|
|
||||||
- { },
|
|
||||||
- { 0, },
|
|
||||||
- { 0, 1 },
|
|
||||||
- { 0, 1, 2 },
|
|
||||||
- { 0, 1, 2, 3 },
|
|
||||||
- { 0, 1, 3, 4, 2 },
|
|
||||||
- { 0, 1, 4, 5, 2, 3 },
|
|
||||||
- { 0, 1, 5, 6, 4, 2, 3 },
|
|
||||||
- { 0, 1, 6, 7, 4, 5, 2, 3 },
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
VLC_UNUSED(decoder);
|
|
||||||
decoder_t *p_dec = (decoder_t *)client_data;
|
|
||||||
decoder_sys_t *p_sys = p_dec->p_sys;
|
|
||||||
|
|
||||||
- if( p_dec->fmt_out.audio.i_channels <= 0 ||
|
|
||||||
- p_dec->fmt_out.audio.i_channels > 8 )
|
|
||||||
+ if( DecoderSetOutputFormat( frame->header.channels,
|
|
||||||
+ frame->header.sample_rate,
|
|
||||||
+ p_sys->b_stream_info ? p_sys->stream_info.sample_rate : 0,
|
|
||||||
+ frame->header.bits_per_sample,
|
|
||||||
+ &p_dec->fmt_out.audio,
|
|
||||||
+ p_sys->rgi_channels_reorder ) )
|
|
||||||
return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
|
|
||||||
- if( date_Get( &p_sys->end_date ) <= VLC_TS_INVALID )
|
|
||||||
+
|
|
||||||
+ if( p_sys->end_date.i_divider_num != p_dec->fmt_out.audio.i_rate )
|
|
||||||
+ {
|
|
||||||
+ if( p_sys->end_date.i_divider_num > 0 )
|
|
||||||
+ date_Change( &p_sys->end_date, p_dec->fmt_out.audio.i_rate, 1 );
|
|
||||||
+ else
|
|
||||||
+ date_Init( &p_sys->end_date, p_dec->fmt_out.audio.i_rate, 1 );
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if( decoder_UpdateAudioFormat( p_dec ) )
|
|
||||||
return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
|
|
||||||
|
|
||||||
- const unsigned char *pi_reorder = ppi_reorder[p_dec->fmt_out.audio.i_channels];
|
|
||||||
+ if( date_Get( &p_sys->end_date ) <= VLC_TS_INVALID )
|
|
||||||
+ return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
|
|
||||||
|
|
||||||
p_sys->p_aout_buffer =
|
|
||||||
decoder_NewAudioBuffer( p_dec, frame->header.blocksize );
|
|
||||||
@@ -181,7 +220,8 @@ DecoderWriteCallback( const FLAC__StreamDecoder *decoder,
|
|
||||||
if( p_sys->p_aout_buffer == NULL )
|
|
||||||
return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
|
|
||||||
|
|
||||||
- Interleave( (int32_t *)p_sys->p_aout_buffer->p_buffer, buffer, pi_reorder,
|
|
||||||
+ Interleave( (int32_t *)p_sys->p_aout_buffer->p_buffer, buffer,
|
|
||||||
+ p_sys->rgi_channels_reorder ,
|
|
||||||
frame->header.channels, frame->header.blocksize,
|
|
||||||
frame->header.bits_per_sample );
|
|
||||||
|
|
||||||
@@ -233,17 +273,11 @@ static void DecoderMetadataCallback( const FLAC__StreamDecoder *decoder,
|
|
||||||
decoder_sys_t *p_sys = p_dec->p_sys;
|
|
||||||
|
|
||||||
/* Setup the format */
|
|
||||||
- p_dec->fmt_out.audio.i_rate = metadata->data.stream_info.sample_rate;
|
|
||||||
- p_dec->fmt_out.audio.i_channels = metadata->data.stream_info.channels;
|
|
||||||
- if(metadata->data.stream_info.channels < 9)
|
|
||||||
- {
|
|
||||||
- p_dec->fmt_out.audio.i_physical_channels =
|
|
||||||
- p_dec->fmt_out.audio.i_original_channels =
|
|
||||||
- pi_channels_maps[metadata->data.stream_info.channels];
|
|
||||||
- }
|
|
||||||
- if (!p_dec->fmt_out.audio.i_bitspersample)
|
|
||||||
- p_dec->fmt_out.audio.i_bitspersample =
|
|
||||||
- metadata->data.stream_info.bits_per_sample;
|
|
||||||
+ DecoderSetOutputFormat( metadata->data.stream_info.channels,
|
|
||||||
+ metadata->data.stream_info.sample_rate,
|
|
||||||
+ metadata->data.stream_info.sample_rate,
|
|
||||||
+ metadata->data.stream_info.bits_per_sample,
|
|
||||||
+ &p_dec->fmt_out.audio, p_sys->rgi_channels_reorder );
|
|
||||||
|
|
||||||
msg_Dbg( p_dec, "channels:%d samplerate:%d bitspersamples:%d",
|
|
||||||
p_dec->fmt_out.audio.i_channels, p_dec->fmt_out.audio.i_rate,
|
|
||||||
|
|
26
vlc.changes
26
vlc.changes
@ -1,3 +1,29 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Nov 26 23:21:35 UTC 2017 - joerg.lorenzen@ki.tng.de
|
||||||
|
|
||||||
|
- Update to version 2.2.8:
|
||||||
|
+ Demuxers: Fix AVI invalid pointer dereferences.
|
||||||
|
+ Updated translations.
|
||||||
|
- Changes from version 2.2.7:
|
||||||
|
+ Decoders:
|
||||||
|
- Fix flac heap write overflow on format change.
|
||||||
|
- Fix crash in libavcodec module (heap write out-of band)
|
||||||
|
CVE-2017-10699.
|
||||||
|
- Fix infinite loop in sami subtitle.
|
||||||
|
- Fix AAC 7.1 channels detection.
|
||||||
|
- Fix potential crash in ASX parser.
|
||||||
|
+ Mac OS X:
|
||||||
|
- Fix compatibility with macOS High Sierra.
|
||||||
|
- Fix regression in ASS subtitle decoding.
|
||||||
|
- Fix crash during automatic update. Some users might need to
|
||||||
|
manually update to the newest version.
|
||||||
|
+ Video Output: Fix Direct3D9 output with odd offsets.
|
||||||
|
+ Misc:
|
||||||
|
- Fix crash in MTP.
|
||||||
|
- Support libupnp 1.8.
|
||||||
|
+ Updated translations.
|
||||||
|
- Removed vlc-flac-heap-overflow.patch, fixed upstream.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Nov 14 16:14:57 UTC 2017 - dimstar@opensuse.org
|
Tue Nov 14 16:14:57 UTC 2017 - dimstar@opensuse.org
|
||||||
|
|
||||||
|
4
vlc.spec
4
vlc.spec
@ -35,7 +35,7 @@
|
|||||||
# VNC support - the module is not really usable in most cases tested so far (e.g. against qemu-kvm -vnc :xx)
|
# VNC support - the module is not really usable in most cases tested so far (e.g. against qemu-kvm -vnc :xx)
|
||||||
%bcond_with vnc
|
%bcond_with vnc
|
||||||
Name: vlc
|
Name: vlc
|
||||||
Version: 2.2.6
|
Version: 2.2.8
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Graphical media player
|
Summary: Graphical media player
|
||||||
License: GPL-2.0+ AND LGPL-2.1+
|
License: GPL-2.0+ AND LGPL-2.1+
|
||||||
@ -55,7 +55,6 @@ Patch6: vlc-gcc6-buildfixes.patch
|
|||||||
Patch7: vlc.a52.patch
|
Patch7: vlc.a52.patch
|
||||||
# PATCH-FIX-OPENSUSE vlc-projectM-qt5.patch -- link to libprojectM-qt5
|
# PATCH-FIX-OPENSUSE vlc-projectM-qt5.patch -- link to libprojectM-qt5
|
||||||
Patch8: vlc-projectM-qt5.patch
|
Patch8: vlc-projectM-qt5.patch
|
||||||
Patch9: vlc-flac-heap-overflow.patch
|
|
||||||
BuildRequires: Mesa-devel
|
BuildRequires: Mesa-devel
|
||||||
BuildRequires: SDL-devel >= 1.2.10
|
BuildRequires: SDL-devel >= 1.2.10
|
||||||
BuildRequires: aalib-devel
|
BuildRequires: aalib-devel
|
||||||
@ -360,7 +359,6 @@ fi
|
|||||||
%if 0%{?suse_version} > 1320
|
%if 0%{?suse_version} > 1320
|
||||||
%patch8 -p1
|
%patch8 -p1
|
||||||
%endif
|
%endif
|
||||||
%patch9 -p1
|
|
||||||
|
|
||||||
### Fix up sources for LUA 5.3
|
### Fix up sources for LUA 5.3
|
||||||
if pkg-config --atleast-version 5.3 lua; then
|
if pkg-config --atleast-version 5.3 lua; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user