<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">r489 | r2d | 2016-01-12 22:33:48 +0000 (Tue, 12 Jan 2016) | 1 line
Changed paths:
   M /libmpc/trunk/include/mpc/mpcdec.h
   M /libmpc/trunk/libmpcdec/mpc_demux.c
   M /libmpc/trunk/mpc2sv8/mpc2sv8.c

mpc2sv8 : fix a segfault caused by commit r476
------------------------------------------------------------------------
Index: include/mpc/mpcdec.h
===================================================================
diff --git a/include/mpc/mpcdec.h b/libmpc/include/mpc/mpcdec.h
--- a/include/mpc/mpcdec.h	(revision 488)
+++ b/include/mpc/mpcdec.h	(revision 489)
@@ -116,6 +116,8 @@
                           mpc_bool_t use_title, mpc_bool_t clip_prevention);
 /// decode frame
 MPC_API mpc_status mpc_demux_decode(mpc_demux * d, mpc_frame_info * i);
+/// decode frame : use mpc_demux_decode() instead. This function is only used by mpc2sv8.
+MPC_API mpc_status mpc_demux_decode_inner(mpc_demux * d, mpc_frame_info * i);
 /// get streaminfo
 MPC_API void mpc_demux_get_info(mpc_demux * d, mpc_streaminfo * i);
 /// seeks to a given sample
Index: libmpcdec/mpc_demux.c
===================================================================
diff --git a/libmpcdec/mpc_demux.c b/libmpc/libmpcdec/mpc_demux.c
--- a/libmpcdec/mpc_demux.c	(revision 488)
+++ b/libmpcdec/mpc_demux.c	(revision 489)
@@ -566,7 +566,7 @@
 	memcpy(i, &amp;d-&gt;si, sizeof d-&gt;si);
 }
 
-static mpc_status mpc_demux_decode_inner(mpc_demux * d, mpc_frame_info * i)
+mpc_status mpc_demux_decode_inner(mpc_demux * d, mpc_frame_info * i)
 {
 	mpc_bits_reader r;
 	if (d-&gt;si.stream_version &gt;= 8) {
Index: mpc2sv8/mpc2sv8.c
===================================================================
diff --git a/mpc2sv8/mpc2sv8.c b/libmpc/mpc2sv8/mpc2sv8.c
--- a/mpc2sv8/mpc2sv8.c	(revision 488)
+++ b/mpc2sv8/mpc2sv8.c	(revision 489)
@@ -162,9 +162,9 @@
 		mpc_frame_info frame;
 
 		demux-&gt;d-&gt;samples_to_skip = MPC_FRAME_LENGTH + MPC_DECODER_SYNTH_DELAY;
-		err = mpc_demux_decode(demux, &amp;frame);
+        err = mpc_demux_decode_inner(demux, &amp;frame);
 
-		if(frame.bits == -1) break;
+        if (MPC_IS_FAILURE(err) || frame.bits == -1) break;
 
 		datacpy(demux-&gt;d, &amp;e);
 		writeBitstream_SV8 ( &amp;e, si.max_band); // write SV8-Bitstream
</pre></body></html>