comparison src/filewriter/mp3.c @ 2461:85e03a981a7c

take care of force_v2_val, only_v1_val and only_v2_val
author Yoshiki Yazawa <yaz@cc.rim.or.jp>
date Thu, 27 Mar 2008 00:13:29 +0900
parents e09d9633d6aa
children 769e17da93dd 6d08e3120615
comparison
equal deleted inserted replaced
2460:a651657361d7 2461:85e03a981a7c
196 aud_cfg_db_close(db); 196 aud_cfg_db_close(db);
197 } 197 }
198 198
199 static gint mp3_open(void) 199 static gint mp3_open(void)
200 { 200 {
201 if ((gfp = lame_init()) == (void *)-1) 201 gfp = lame_init();
202 if (gfp == NULL)
202 return 0; 203 return 0;
203 204
204 /* setup id3 data */ 205 /* setup id3 data */
205 id3tag_init(gfp); 206 id3tag_init(gfp);
206 207
207 if (tuple) { 208 if (tuple) {
208 /* XXX write UTF-8 even though libmp3lame does id3v2.3. --yaz */ 209 /* XXX write UTF-8 even though libmp3lame does id3v2.3. --yaz */
209
210 AUDDBG("track_name = %s\n", aud_tuple_get_string(tuple, FIELD_TITLE, NULL));
211
212 lameid3.track_name = g_strdup(aud_tuple_get_string(tuple, FIELD_TITLE, NULL)); 210 lameid3.track_name = g_strdup(aud_tuple_get_string(tuple, FIELD_TITLE, NULL));
213 id3tag_set_title(gfp, lameid3.track_name); 211 id3tag_set_title(gfp, lameid3.track_name);
214 212
215 lameid3.performer = g_strdup(aud_tuple_get_string(tuple, FIELD_ARTIST, NULL)); 213 lameid3.performer = g_strdup(aud_tuple_get_string(tuple, FIELD_ARTIST, NULL));
216 id3tag_set_artist(gfp, lameid3.performer); 214 id3tag_set_artist(gfp, lameid3.performer);
225 id3tag_set_year(gfp, lameid3.year); 223 id3tag_set_year(gfp, lameid3.year);
226 224
227 lameid3.track_number = g_strdup_printf("%d", aud_tuple_get_int(tuple, FIELD_TRACK_NUMBER, NULL)); 225 lameid3.track_number = g_strdup_printf("%d", aud_tuple_get_int(tuple, FIELD_TRACK_NUMBER, NULL));
228 id3tag_set_track(gfp, lameid3.track_number); 226 id3tag_set_track(gfp, lameid3.track_number);
229 227
230 // id3tag_write_v1(gfp); 228 if(force_v2_val) {
231 id3tag_add_v2(gfp); 229 id3tag_add_v2(gfp);
230 }
231 if(only_v1_val) {
232 id3tag_v1_only(gfp);
233 }
234 if(only_v2_val) {
235 id3tag_v2_only(gfp);
236 }
232 } 237 }
233 238
234 /* input stream description */ 239 /* input stream description */
235 240
236 lame_set_in_samplerate(gfp, input.frequency); 241 lame_set_in_samplerate(gfp, input.frequency);
307 if (output_file) 312 if (output_file)
308 { 313 {
309 encout = lame_encode_flush_nogap(gfp, encbuffer, ENCBUFFER_SIZE); 314 encout = lame_encode_flush_nogap(gfp, encbuffer, ENCBUFFER_SIZE);
310 aud_vfs_fwrite(encbuffer, 1, encout, output_file); 315 aud_vfs_fwrite(encbuffer, 1, encout, output_file);
311 316
312 // lame_mp3_tags_fid(gfp, output_file); // will erase id3v2 tag?? 317 // lame_mp3_tags_fid(gfp, output_file); // will erase id3v2 tag??
313 318
314 lame_close(gfp); 319 lame_close(gfp);
320 AUDDBG("lame_close() done\n");
315 321
316 free_lameid3(&lameid3); 322 free_lameid3(&lameid3);
317 323
318 olen = 0; 324 olen = 0;
319 } 325 }