Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Re: Cannot write changes to file using MP3::Mplib through CGI

by Steve_p (Priest)
on Apr 25, 2004 at 14:34 UTC ( [id://347969]=note: print w/replies, xml ) Need Help??

in reply to Cannot write changes to file using MP3::Mplib through CGI

I took a look at the MP3::Mplib, and to clarify what you have above, $mp3->set_v1tag() returns false if it fails. You can check the error of with $mp3->error().

if($mp3->set_v1tag({ year => $args{year} , artist => $args{artist}, album => $args{album} , genre => $args{genre} , title => pop @mp3ary , }, &ISO_8859_1)) { return mp3->get_v1tag; } else { return $mp3->error(); }

Replies are listed 'Best First'.
Re: Re: Cannot write changes to file using MP3::Mplib through CGI
by Ryszard (Priest) on Apr 25, 2004 at 14:46 UTC
    I have actually done that, (and commented on it in my OP), but not referenced it in the code sample explicitly.
    and that is certainly true if i check $mp3->error, infact the output is a hash ref with {album => 2}

      After some discussion in the CB, let's look at the facts...

      • $mp3->set_v1tag() returns true
      • $mp3->error() is returning {album => 2 }
      • $mp3->get_v1tag() returns an empty hashref

      Looking at the doc's for MP3::Mplib, there are various constants used for the error codes, which are available in mplib.h. From this define,

      #define MP_EFNF 2

      the modules saying that "album" is not a valid tag for v1. A look at the XS code for the module give the answer pretty quickly.

      if (strcmp(key, "ALBUM") == 0) { content = mp_assemble_text_content(val, enc); if ((err = mp_set_content(new_tag, MP_ALBUM, content)) != +0) sv_catpvf(mp3_lib_err, "%s\034%i", "ALBUM", err); continue; }

      Try switching your tags to uppercase and see what happens. The code is looking for all uppercase hash keys and there doesn't seem to be any code attempting to uppercase the hash keys at all.

      OK, so the problem is not likely in the function shown above. What does the calling function get back?

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://347969]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (5)
As of 2024-06-21 12:19 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.