<html><head></head><body><div class="gmail_quote">Le 9 juillet 2017 16:34:36 GMT+03:00, "Rémi Denis-Courmont" <git@videolan.org> a écrit :<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">vlc | branch: master | Rémi Denis-Courmont <remi@remlab.net> | Sun Jul 9 16:22:04 2017 +0300| [da721e6fca98c487d5933c1d5164ee58203138e0] | committer: Rémi Denis-Courmont<br /><br />xa: remove struct member<br /><br /><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"> <a href="http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=da721e6fca98c487d5933c1d5164ee58203138e0">http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=da721e6fca98c487d5933c1d5164ee58203138e0</a><br /></blockquote>---<br /><br /> modules/demux/xa.c | 22 ++++++++++------------<br /> 1 file changed, 10 insertions(+), 12 deletions(-)<br /><br />diff --git a/modules/demux/xa.c b/modules/demux/xa.c<br />index cc525cfdfc..92e06bf7b7 100644<br />--- a/modules/demux/xa.c<br />+++ b/modules/demux/xa.c<br />@@ -58,7 +58,6 @@ struct demux_sys_t<br /> {<br /> es_out_id_t *p_es;<br /> <br />- int64_t i_data_offset;<br /> unsigned int i_data_size;<br /> unsigned int i_block_frames;<br /> unsigned int i_frame_size;<br />@@ -80,6 +79,8 @@ typedef struct xa_header_t<br /> uint16_t wBitsPerSample;<br /> } xa_header_t;<br /> <br />+#define HEADER_LENGTH 24<br />+<br /> static_assert(offsetof(xa_header_t, wBitsPerSample) == 22, "Bad padding");<br /> <br /> #define FRAME_LENGTH 28 /* samples per frame */<br />@@ -107,7 +108,7 @@ static int Open( vlc_object_t * p_this )<br /> /* read XA header*/<br /> xa_header_t xa;<br /> <br />- if( vlc_stream_Read( p_demux->s, &xa, 24 ) < 24 )<br />+ if( vlc_stream_Read( p_demux->s, &xa, HEADER_LENGTH ) < HEADER_LENGTH )<br /> {<br /> free( p_sys );<br /> return VLC_EGENERIC;<br />@@ -127,7 +128,6 @@ static int Open( vlc_object_t * p_this )<br /> fmt.i_bitrate = (<a href="http://fmt.audio">fmt.audio</a>.i_rate * <a href="http://fmt.audio">fmt.audio</a>.i_bytes_per_frame * 8)<br /> / <a href="http://fmt.audio">fmt.audio</a>.i_frame_length;<br /> <br />- p_sys->i_data_offset = vlc_stream_Tell( p_demux->s );<br /> /* FIXME: better computation */<br /> p_sys->i_data_size = xa.iSize * 15 / 56;<br /> /* How many frames per block (1:1 is too CPU intensive) */<br />@@ -167,13 +167,11 @@ static int Demux( demux_t *p_demux )<br /> {<br /> demux_sys_t *p_sys = p_demux->p_sys;<br /> block_t *p_block;<br />- int64_t i_offset;<br />+ int64_t i_offset = vlc_stream_Tell( p_demux->s );<br /> unsigned i_frames = p_sys->i_block_frames;<br /> <br />- i_offset = vlc_stream_Tell( p_demux->s );<br />-<br /> if( p_sys->i_data_size > 0 &&<br />- i_offset >= p_sys->i_data_offset + p_sys->i_data_size )<br />+ (i_offset - HEADER_LENGTH) >= p_sys->i_data_size )<br /> {<br /> /* EOF */<br /> return 0;<br />@@ -213,9 +211,9 @@ static int Control( demux_t *p_demux, int i_query, va_list args )<br /> {<br /> demux_sys_t *p_sys = p_demux->p_sys;<br /> <br />- return demux_vaControlHelper( p_demux->s, p_sys->i_data_offset,<br />- p_sys->i_data_size ? p_sys->i_data_offset<br />- + p_sys->i_data_size : -1,<br />- p_sys->i_bitrate, p_sys->i_frame_size,<br />- i_query, args );<br />+ return demux_vaControlHelper( p_demux->s, HEADER_LENGTH,<br />+ p_sys->i_data_size<br />+ ? HEADER_LENGTH + p_sys->i_data_size : -1,<br />+ p_sys->i_bitrate, p_sys->i_frame_size,<br />+ i_query, args );<br /> }<br /><br /><hr /><br />vlc-commits mailing list<br />vlc-commits@videolan.org<br /><a href="https://mailman.videolan.org/listinfo/vlc-commits">https://mailman.videolan.org/listinfo/vlc-commits</a><br /></pre></blockquote></div><br clear="all">+ constant<br>
-- <br>
Rémi Denis-Courmont<br>
Typed on an inconvenient virtual keyboard</body></html>