summaryrefslogtreecommitdiff
path: root/apps/codecs/wavpack.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/wavpack.c')
-rw-r--r--apps/codecs/wavpack.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/apps/codecs/wavpack.c b/apps/codecs/wavpack.c
index 2804d3ef72..19c7581e29 100644
--- a/apps/codecs/wavpack.c
+++ b/apps/codecs/wavpack.c
@@ -52,6 +52,7 @@ enum codec_status codec_start(struct codec_api* api)
52 WavpackContext *wpc; 52 WavpackContext *wpc;
53 char error [80]; 53 char error [80];
54 int bps, nchans, sr_100; 54 int bps, nchans, sr_100;
55 int retval;
55 56
56 /* Generic codec initialisation */ 57 /* Generic codec initialisation */
57 ci = api; 58 ci = api;
@@ -70,8 +71,10 @@ enum codec_status codec_start(struct codec_api* api)
70 71
71 next_track: 72 next_track:
72 73
73 if (codec_init(api)) 74 if (codec_init(api)) {
74 return CODEC_ERROR; 75 retval = CODEC_ERROR;
76 goto exit;
77 }
75 78
76 while (!*ci->taginfo_ready && !ci->stop_codec) 79 while (!*ci->taginfo_ready && !ci->stop_codec)
77 ci->sleep(1); 80 ci->sleep(1);
@@ -94,8 +97,10 @@ enum codec_status codec_start(struct codec_api* api)
94 /* Create a decoder instance */ 97 /* Create a decoder instance */
95 wpc = WavpackOpenFileInput (read_callback, error); 98 wpc = WavpackOpenFileInput (read_callback, error);
96 99
97 if (!wpc) 100 if (!wpc) {
98 return CODEC_ERROR; 101 retval = CODEC_ERROR;
102 goto exit;
103 }
99 104
100 bps = WavpackGetBytesPerSample (wpc); 105 bps = WavpackGetBytesPerSample (wpc);
101 nchans = WavpackGetReducedChannels (wpc); 106 nchans = WavpackGetReducedChannels (wpc);
@@ -206,5 +211,7 @@ enum codec_status codec_start(struct codec_api* api)
206 if (ci->request_next_track()) 211 if (ci->request_next_track())
207 goto next_track; 212 goto next_track;
208 213
209 return CODEC_OK; 214 retval = CODEC_OK;
215exit:
216 return retval;
210} 217}