Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 213768 Details for
Bug 297910
[patch] Port gnustep-apps/cynthiune to new Musepack API
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
cynthiune-0.9.5-libmpcdec.patch
Musepack-new-API.patch (text/plain), 8.53 KB, created by
Samuli Suominen (RETIRED)
on 2009-12-22 16:28:31 UTC
(
hide
)
Description:
cynthiune-0.9.5-libmpcdec.patch
Filename:
MIME Type:
Creator:
Samuli Suominen (RETIRED)
Created:
2009-12-22 16:28:31 UTC
Size:
8.53 KB
patch
obsolete
>2009-05-19 Yavor Doganov <yavor@gnu.org> > > * Bundsles/Musepack/CNSFileHandle.h: Import <mpc/reader.h>. > (CNSFileHandleRetain, CNSFileHandleRelease): Remove prototypes. > (CNSFileHandleRead, CNSFileHandleTell, CNSFileHandleCanSeek) > (CNSFileHandleSeek, CNSFileHandleGetSize): Accept mpc_reader > type as first argument. > * Bundles/Musepack/CNSFileHandle.m (CNSFileHandleRetain) > (CNSFileHandleRelease): Delete; unused. > (CNSFileHandleRead, CNSFileHandleTell, CNSFileHandleCanSeek) > (CNSFileHandleSeek, CNSFileHandleGetSize): Adjust for the new > mpc_reader type. > * Bundles/Musepack/Musepack.h <mpcDecoder>: Declare of > mpc_demux type. > * Bundles/Musepack/Musepack.m: Import <mpc/mpcdec.h>. > (MPCReaderDelete): Use `mpc_reader_exit_stdio' instead of > `free'. > (MPCStreamInfoNew): Don't call `mpc_streaminfo_init'. > (MPCDecoderNew): Remove function. > ([Musepack -streamOpen]): Initialize the decoder with the new > API function `mpc_demux_init'. > ([Musepack +streamTestOpen]): Likewise. > ([Musepack -readNextChunk:withSize:]): Adjust to use > `mpc_demux_decode'. > <frame, err>: New local variables. > <vbrAcc, vbrBits>: Remove. > ([Musepack -readDuration]): Use `mpc_streaminfo_get_length' to > obtain the duration and return its result casted to unsigned int. > ([Musepack -streamClose]): Use `mpc_demux_exit' as appropriate. > ([Musepack +acceptedFileExtensions]): Recognize `.mpp'. > ([Musepack -seek]): Use `mpc_demux_seek_second'. > >--- cynthiune.app-0.9.5.orig/Bundles/Musepack/CNSFileHandle.h >+++ cynthiune.app-0.9.5/Bundles/Musepack/CNSFileHandle.h >@@ -23,20 +23,17 @@ > #ifndef CNSFILEHANDLE_H > #define CNSFILEHANDLE_H > >-#include <mpcdec/config_types.h> >+#import <mpc/reader.h> > > #ifdef __cplusplus > extern "C" { > #endif /* __cplusplus */ > >-void CNSFileHandleRetain (void *fileHandle); >-void CNSFileHandleRelease (void *fileHandle); >- >-int CNSFileHandleRead (void *fileHandle, void *ptr, int size); >-int CNSFileHandleTell (void *fileHandle); >-mpc_bool_t CNSFileHandleCanSeek (void *fileHandle); >-mpc_bool_t CNSFileHandleSeek (void *fileHandle, int offset); >-int CNSFileHandleGetSize (void *fileHandle); >+int CNSFileHandleRead (mpc_reader *fileHandle, void *ptr, int size); >+int CNSFileHandleTell (mpc_reader *fileHandle); >+mpc_bool_t CNSFileHandleCanSeek (mpc_reader *fileHandle); >+mpc_bool_t CNSFileHandleSeek (mpc_reader *fileHandle, int offset); >+int CNSFileHandleGetSize (mpc_reader *fileHandle); > > #ifdef __cplusplus > } >--- cynthiune.app-0.9.5.orig/Bundles/Musepack/CNSFileHandle.m >+++ cynthiune.app-0.9.5/Bundles/Musepack/CNSFileHandle.m >@@ -26,57 +26,45 @@ > > #import "CNSFileHandle.h" > >-void >-CNSFileHandleRetain (void *fileHandle) >-{ >- [(NSFileHandle *) fileHandle retain]; >-} >- >-void >-CNSFileHandleRelease (void *fileHandle) >-{ >- [(NSFileHandle *) fileHandle release]; >-} >- > int >-CNSFileHandleRead (void *fileHandle, void *ptr, int size) >+CNSFileHandleRead (mpc_reader *fileHandle, void *ptr, int size) > { > NSData *data; > >- data = [(NSFileHandle *) fileHandle readDataOfLength: size]; >+ data = [(NSFileHandle *) fileHandle->data readDataOfLength: size]; > [data getBytes: ptr]; > > return [data length]; > } > > int >-CNSFileHandleTell (void *fileHandle) >+CNSFileHandleTell (mpc_reader *fileHandle) > { >- return [(NSFileHandle *) fileHandle offsetInFile]; >+ return [(NSFileHandle *) fileHandle->data offsetInFile]; > } > > mpc_bool_t >-CNSFileHandleCanSeek (void *fileHandle) >+CNSFileHandleCanSeek (mpc_reader *fileHandle) > { > return YES; > } > > mpc_bool_t >-CNSFileHandleSeek (void *fileHandle, int offset) >+CNSFileHandleSeek (mpc_reader *fileHandle, int offset) > { >- [(NSFileHandle *) fileHandle seekToFileOffset: (long long) offset]; >+ [(NSFileHandle *) fileHandle->data seekToFileOffset: (long long) offset]; > > return YES; > } > > int >-CNSFileHandleGetSize (void *fileHandle) >+CNSFileHandleGetSize (mpc_reader *fileHandle) > { > int size, where; > >- where = [(NSFileHandle *) fileHandle offsetInFile]; >- size = [(NSFileHandle *) fileHandle seekToEndOfFile]; >- [(NSFileHandle *) fileHandle seekToFileOffset: (long long) where]; >+ where = [(NSFileHandle *) fileHandle->data offsetInFile]; >+ size = [(NSFileHandle *) fileHandle->data seekToEndOfFile]; >+ [(NSFileHandle *) fileHandle->data seekToFileOffset: (long long) where]; > > return size; > } >--- cynthiune.app-0.9.5.orig/Bundles/Musepack/Musepack.h >+++ cynthiune.app-0.9.5/Bundles/Musepack/Musepack.h >@@ -31,7 +31,7 @@ > > mpc_reader *mpcReader; > mpc_streaminfo *mpcStreamInfo; >- mpc_decoder *mpcDecoder; >+ mpc_demux *mpcDecoder; > > MPC_SAMPLE_FORMAT sampleBuffer[maxSamples]; > unsigned char frameBuffer[maxSamples * 4]; >--- cynthiune.app-0.9.5.orig/Bundles/Musepack/Musepack.m >+++ cynthiune.app-0.9.5/Bundles/Musepack/Musepack.m >@@ -30,7 +30,7 @@ > #import <Cynthiune/Format.h> > #import <Cynthiune/utils.h> > >-#import <mpcdec/mpcdec.h> >+#import <mpc/mpcdec.h> > > #import "Musepack.h" > #import "CNSFileHandle.h" >@@ -75,7 +75,7 @@ > MPCReaderDelete (mpc_reader *reader) > { > [(NSFileHandle *) reader->data release]; >- free (reader); >+ mpc_reader_exit_stdio (reader); > } > > static mpc_streaminfo * >@@ -84,23 +84,10 @@ > mpc_streaminfo *streamInfo; > > streamInfo = malloc (sizeof (mpc_streaminfo)); >- mpc_streaminfo_init (streamInfo); > > return streamInfo; > } > >-static mpc_decoder * >-MPCDecoderNew (mpc_reader *reader, mpc_streaminfo *streamInfo) >-{ >- mpc_decoder *decoder; >- >- decoder = malloc (sizeof (mpc_decoder)); >- mpc_decoder_setup (decoder, reader); >- mpc_decoder_initialize (decoder, streamInfo); >- >- return decoder; >-} >- > static inline void > CopyBuffer (const MPC_SAMPLE_FORMAT *buffer, unsigned char *destBuffer, > unsigned int length) >@@ -173,10 +160,13 @@ > { > [fileHandle retain]; > mpcReader = MPCReaderNew (fileHandle); >+ if (!mpcReader) >+ return MPC_FALSE; > mpcStreamInfo = MPCStreamInfoNew (); >- mpc_streaminfo_read (mpcStreamInfo, mpcReader); >- >- mpcDecoder = MPCDecoderNew (mpcReader, mpcStreamInfo); >+ mpcDecoder = mpc_demux_init (mpcReader); >+ if (!mpcDecoder) >+ return MPC_FALSE; >+ mpc_demux_get_info (mpcDecoder, mpcStreamInfo); > > result = YES; > } >@@ -196,6 +186,7 @@ > NSFileHandle *testFileHandle; > mpc_reader *testReader; > mpc_streaminfo *testStreamInfo; >+ mpc_demux *testDecoder; > BOOL result; > > testFileHandle = [NSFileHandle fileHandleForReadingAtPath: fileName]; >@@ -203,9 +194,14 @@ > { > testReader = MPCReaderNew (testFileHandle); > testStreamInfo = MPCStreamInfoNew (); >- result = !mpc_streaminfo_read (testStreamInfo, testReader); >- free (testStreamInfo); >- MPCReaderDelete (testReader); >+ testDecoder = mpc_demux_init (testReader); >+ if (testDecoder) >+ { >+ result = YES; >+ mpc_demux_exit (testDecoder); >+ } >+ if (testReader) >+ MPCReaderDelete (testReader); > } > else > result = NO; >@@ -222,21 +218,29 @@ > withSize: (unsigned int) bufferSize > { > int bytes, status; >- unsigned int vbrAcc, vbrBits; >+ mpc_frame_info frame; >+ mpc_status err; > unsigned long frames, samples; > > status = 1; >+ frame.buffer = sampleBuffer; > >- if (!remaining) >+ while (!remaining) > { >- samples = mpc_decoder_decode (mpcDecoder, sampleBuffer, >- &vbrAcc, &vbrBits); >- if (!samples) >- status = 0; >- else if (samples == (unsigned long) -1) >- status = -1; >+ err = mpc_demux_decode (mpcDecoder, &frame); >+ if (err != MPC_STATUS_OK) >+ { >+ status = -1; >+ break; >+ } >+ else if (frame.bits == -1) >+ { >+ status = 0; >+ break; >+ } > else > { >+ samples = frame.samples; > frames = samples * mpcStreamInfo->channels; > CopyBuffer (sampleBuffer, frameBuffer, frames); > remaining = frames * 2; >@@ -277,7 +281,7 @@ > > - (unsigned int) readDuration > { >- return mpcStreamInfo->pcm_samples / mpcStreamInfo->sample_freq; >+ return (unsigned int) mpc_streaminfo_get_length (mpcStreamInfo); > } > > - (void) streamClose >@@ -287,12 +291,10 @@ > [fileHandle closeFile]; > [fileHandle release]; > } >+ if (mpcDecoder) >+ mpc_demux_exit (mpcDecoder); > if (mpcReader) > MPCReaderDelete (mpcReader); >- if (mpcStreamInfo) >- free (mpcStreamInfo); >- if (mpcDecoder) >- free (mpcDecoder); > > [self _resetIVars]; > } >@@ -300,7 +302,7 @@ > // Player Protocol > + (NSArray *) acceptedFileExtensions > { >- return [NSArray arrayWithObjects: @"mpc", @"mp+", nil]; >+ return [NSArray arrayWithObjects: @"mpc", @"mp+", @"mpp", nil]; > } > > - (BOOL) isSeekable >@@ -310,7 +312,7 @@ > > - (void) seek: (unsigned int) aPos > { >- mpc_decoder_seek_seconds (mpcDecoder, (double) aPos); >+ mpc_demux_seek_second (mpcDecoder, (double) aPos); > } > > @end
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 297910
: 213768