tags 552829 + patch pending thanks Dear maintainer,
I've prepared an NMU for mpc123 (versioned as 0.2.4-1.1) and plan to upload it to DELAYED/N, where N depends on the opinion of the sponsor I hope to find. Please feel free to tell me if I should delay it longer.
diff -u mpc123-0.2.4/debian/changelog mpc123-0.2.4/debian/changelog --- mpc123-0.2.4/debian/changelog +++ mpc123-0.2.4/debian/changelog @@ -1,3 +1,12 @@ +mpc123 (0.2.4-1.1) unstable; urgency=low + + * Non-maintainer upload. + * Apply upstream commit c7cdcc0; port to libmpcdec6 API (Closes: + #552829). + * debian/control (Build-Depends): Require libmpcdec-dev >= 2:0.1~r435. + + -- Yavor Doganov <ya...@gnu.org> Wed, 24 Feb 2010 19:04:16 +0200 + mpc123 (0.2.4-1) unstable; urgency=low * New upstream release (Closes: #459317) diff -u mpc123-0.2.4/debian/control mpc123-0.2.4/debian/control --- mpc123-0.2.4/debian/control +++ mpc123-0.2.4/debian/control @@ -2,7 +2,7 @@ Section: sound Priority: optional Maintainer: Daniele Sempione <scr...@oziosi.org> -Build-Depends: debhelper (>= 4.0.0), libmpcdec-dev, libao-dev, gettext +Build-Depends: debhelper (>= 4.0.0), libmpcdec-dev (>= 2:0.1~r435), libao-dev, gettext Standards-Version: 3.7.3 Package: mpc123 only in patch2: unchanged: --- mpc123-0.2.4.orig/ao.c +++ mpc123-0.2.4/ao.c @@ -144,9 +144,9 @@ data->ao_dev=ao_open_live(ao_drvnum, &ao_fmt, opt_head); }else{ /* output to file (act as a decoder) */ - data->ao_dev=ao_open_file(ao_drvnum, options.foutput, TRUE, &ao_fmt, NULL); + data->ao_dev=ao_open_file(ao_drvnum, options.foutput, MPC_TRUE, &ao_fmt, NULL); } - + if( !data->ao_dev ){ dief(_("Could not open audio output: [%d] %s\n"), errno, strerror(errno)); } @@ -175,6 +175,9 @@ unsigned char * output; unsigned bytes=samples * 2; /* 16 bit == 2 bytes */ + if(!bytes) + return 0; + const unsigned pSize = 16; const int clip_min = -1 << (pSize - 1); const int clip_max = (1 << (pSize - 1)) - 1; @@ -192,7 +195,8 @@ } if(!output){ - dief(_("Out of memory (needed 0x%08x bytes)\n"), bytes); + sayf(0, "Out of memory (needed 0x%08x bytes)\n", bytes); + return 0; } /* code stolen from xmms-musepack */ only in patch2: unchanged: --- mpc123-0.2.4.orig/mpc123.h +++ mpc123-0.2.4/mpc123.h @@ -29,8 +29,9 @@ # include <libintl.h> -# include <mpcdec/config_types.h> -# include <mpcdec/mpcdec.h> +# include <mpc/mpcdec.h> +# include <mpc/streaminfo.h> +# include <mpc/mpc_types.h> # ifndef LOCALEDIR # define LOCALEDIR "/usr/share/locale" /* this is the Debian default */ @@ -44,7 +45,7 @@ */ # define VERS_MAJOR 0 # define VERS_MINOR 2 -# define VERS_REV 4 +# define VERS_REV 5 # define COPYRIGHT_NOTICE VERS_NAME " Copyright " COPYRIGHT "\n" \ "This is free software, meaning it comes under the terms of the\n" \ only in patch2: unchanged: --- mpc123-0.2.4.orig/player.c +++ mpc123-0.2.4/player.c @@ -31,9 +31,9 @@ */ int do_play_stream(mpc_reader * the_reader, reader_data * data){ mpc_streaminfo tmp_stream_info; - mpc_decoder mpc123_decoder; - mpc_int32_t mpc_ret; - mpc_uint32_t vbrAcc=0, vbrUpd=0; + mpc_demux *mpc123_decoder = NULL; + mpc_frame_info frame; + mpc_status err; int played=0; void * ao_data=NULL; @@ -44,19 +44,12 @@ unsigned bytes_from_decoder=0; /* read file's streaminfo data */ - mpc_streaminfo_init(&tmp_stream_info); - if( (mpc_ret=mpc_streaminfo_read(&tmp_stream_info, the_reader)) - != ERROR_CODE_OK){ - debugf("mpc_streaminfo_read()=%d", mpc_ret); + mpc123_decoder = mpc_demux_init(the_reader); + if( !mpc123_decoder ){ die("Not a valid musepack file\n"); } - /* initialize decoder with the appropriate file reader */ - mpc_decoder_setup(&mpc123_decoder, the_reader); - if( !(mpc_ret=mpc_decoder_initialize(&mpc123_decoder, &tmp_stream_info)) ){ - debugf("mpc_decoder_initialize()=%d", mpc_ret); - die("Error initializing decoder\n"); - } + mpc_demux_get_info(mpc123_decoder, &tmp_stream_info); if( mpc123_ao_init(&ao_data, &tmp_stream_info) != 0 ){ dief("Could not initialize audio library: error %d\n", errno); @@ -64,21 +57,21 @@ /* decoding loop */ while(1){ - decoded_samples=mpc_decoder_decode(&mpc123_decoder, buffer, - &vbrAcc, &vbrUpd); + frame.buffer = buffer; + err = mpc_demux_decode(mpc123_decoder, &frame); - if( !decoded_samples ){ /* eof */ + if( err != MPC_STATUS_OK ){ /* eof */ debugf("End of file after %d samples", total_decoded); break; } - if( decoded_samples == -1 ){ /* decoding error */ + if( err == -1 ){ /* decoding error */ debug("Error decoding stream."); say(0, "Error while decoding -- maybe corrupted data?\n"); break; } -/* debug(" <%d %d %d>", vbrAcc, vbrUpd, vbrUpd * 44100 / 1152 / 100);*/ + decoded_samples = frame.samples; total_decoded += decoded_samples; bytes_from_decoder = decoded_samples * sizeof(float) * 2; only in patch2: unchanged: --- mpc123-0.2.4.orig/reader_file.c +++ mpc123-0.2.4/reader_file.c @@ -22,30 +22,27 @@ #include "mpc123.h" -#include <mpcdec/config_types.h> -#include <mpcdec/mpcdec.h> - /* read wrapper */ -static mpc_int32_t mpc123_file_read(void *t, void *ptr, mpc_int32_t size){ - reader_data *data=(reader_data*) t; +static mpc_int32_t mpc123_file_read(mpc_reader *t, void *ptr, mpc_int32_t size){ + reader_data *data=(reader_data*) t->data; return read(data->fd, ptr, size); } /* seek wrapper */ -static mpc_bool_t mpc123_file_seek(void *t, mpc_int32_t offset){ - reader_data *data=(reader_data*) t; +static mpc_bool_t mpc123_file_seek(mpc_reader *t, mpc_int32_t offset){ + reader_data *data=(reader_data*) t->data; lseek(data->fd, offset, SEEK_SET); - return TRUE; + return MPC_TRUE; } -static mpc_int32_t mpc123_file_tell(void *t){ - reader_data *data=(reader_data*) t; +static mpc_int32_t mpc123_file_tell(mpc_reader *t){ + reader_data *data=(reader_data*) t->data; return lseek(data->fd, 0, SEEK_CUR); } /* get filesize */ -static mpc_int32_t mpc123_file_get_size(void *t){ - reader_data *data=(reader_data*) t; +static mpc_int32_t mpc123_file_get_size(mpc_reader *t){ + reader_data *data=(reader_data*) t->data; off_t old_offset=lseek(data->fd, 0, SEEK_CUR); /* save old pos */ mpc_int32_t toret=lseek(data->fd, 0, SEEK_END); @@ -56,8 +53,8 @@ } /* on an empty disk, you can seek() forever */ -static mpc_bool_t mpc123_file_canseek(void *t){ - return TRUE; +static mpc_bool_t mpc123_file_canseek(mpc_reader *t){ + return MPC_TRUE; } /* @@ -65,12 +62,12 @@ * handles plain files */ mpc_reader mpc123_file_reader={ - .read=mpc123_file_read, - .seek=mpc123_file_seek, - .tell=mpc123_file_tell, - .get_size=mpc123_file_get_size, - .canseek=mpc123_file_canseek, - .data=NULL /* reader_data * data */ + .read = mpc123_file_read, + .seek = mpc123_file_seek, + .tell = mpc123_file_tell, + .get_size = mpc123_file_get_size, + .canseek = mpc123_file_canseek, + .data = NULL /* reader_data * data */ }; /* vim:ft=c:tw=78:ts=2:et:cin: