Is anyone interested in updating UpdateMedia so that it stores uses the standard id3 tags instead of user defined ones?
If we rip audio media in lmce-0704 we get standard title, artist & album id3 tags embedded into the mp3 files which is great. However we dont get the track tag (contains the track no. from the original CD) or year or genre tags. So adding these to UpdateMedia so that they are written back into the mp3 file would improve the 'friendliness' of the ripped files enormously when using those files with iTunes or other media playback software for example.
UpdateMedia is also currently inserting the Track art image back into a User Defined Tag inside each mp3 file - instead of using the standard picture tag. Because of this other software cannot see these embedded track images inside lmce-0704 ripped tracks. Again iTunes is an example of this.
Would anyone like to get involved in updating UpdateMedia to make it more compatible in terms of how and where it stores id3 tage data?
Andrew
I would love to see this applied as well as I did invest a serious amount of time adding coverart both in Windows media player and Itunes (and Media monkey, and mediaportal and...) well, I have tried everything I could find and LMCE is so far the best all over...
I updated the ripping script to add genre, track, year information to ripped files. I posted it and instructions for installing it here: http://forum.linuxmce.org/index.php?topic=1726.0
I understand it's been checked into the SVN server, so it should be part of the next release. UpdateMedia does need some work however. I was thinking about taking a crack at that next, but I'm currently working on Insteon integration, which is fairly involved, so if anyone wants to take a crack at UpdateMedia, go ahead.
Quote from: PeteK on September 07, 2007, 04:49:08 PM
I updated the ripping script to add genre, track, year information to ripped files. I posted it and instructions for installing it here: http://forum.linuxmce.org/index.php?topic=1726.0
I understand it's been checked into the SVN server, so it should be part of the next release. UpdateMedia does need some work however. I was thinking about taking a crack at that next, but I'm currently working on Insteon integration, which is fairly involved, so if anyone wants to take a crack at UpdateMedia, go ahead.
Aaah yes I remember your post about that :-) I'll take a look at your script over the weekend.
The changes needed to UpdateMedia need to be made in the C++ sources though so we would need someone to take on the C coding there. Anyone interested?
I'd like to work on fixing bugs in some subsystems that (should) call UpdateMedia, namely the "Resynchronize" media code called by the Admin website, the ripping code that looks up format settings set by the Admin website, and insert ripping GUI widgets into the Admin website (not just the Orbiter). I also found that there's at least two different codepaths for ripping use cases, depending on whether a whole jukebox or a single disc (in a jukebox) in the Orbiter is used as the GUI to start the process.
Do you know where I can find the codepaths, and the code files they call, initiated by those GUI widgets, and resulting in the ripped files in the filesystem and their database representation?
andrew - This would be a good opportunity for me to just jump in, as any... i'll take a look at the code and start familiarising myself with it and just see if i can hack on the support needed...
don't leave me as just the one dev though! It would be nice to have some help! :-D
-Thom
I completely forgot about this, sounds like a familiar issue eh? ;) Being the nosy busybody that I am I'll try to assist where I can, at the time I didn't feel up to the task (well I still don't really) but maybe I can do some legwork. Some other related info can be found here: http://forum.linuxmce.org/index.php?topic=3150.0
This probably isn't worth much, but since I done it already I might as well post the results:
I just compiled it and ran the binary, thinking it would probably spit out some usage info but instead it looked like it started scanning the whole disk. Lucky for me it couldn't connect to the database (I was running inside a chroot).
The usage info I was looking for:
dcerouter_:/usr/src/LinuxMCE-1.1-SRC/src/UpdateMedia# ./UpdateMedia --help
10 11/16/07 1:36:29.473 AlarmManager::AlarmManager 0x80b0770 <0xb6b906d0>
Unknown: --help
UpdateMedia, v.<=version=>
Usage: UpdateMedia [-h hostname] [-u username] [-p password] [-D database] [-P mysql port]
[-d The list with directories, pipe delimited] [-s] [-t]
hostname -- address or DNS of database host, default is `dce_router`
username -- username for database connection
password -- password for database connection, default is `` (empty)
database -- database name. default is pluto_main
-s -- Update all search tokens
-t -- Update all thumbnails
-w -- Synchronize files only
-B -- Run as daemon
Directory defaults to /home
10 11/16/07 1:36:29.475 AlarmManager::~AlarmManager start 0x80b0770 <0xb6b906d0>
10 11/16/07 1:36:29.475 AlarmManager::~AlarmManager done 0x80b0770 <0xb6b906d0>
Figured I might as well do a test run:
# mkdir -p /tmp/data/audio
# cdparanoia -d /dev/cdrom 3 - | oggenc -Q --artist "Pink Floyd" --album "Wish You Were Here" --date "1975" --genre "Rock" --tracknum 3 -q 1 -o "/tmp/data/audio/Pink Floyd/Wish You Were Here/Have a Cigar.ogg" -
# file /tmp/data/audio/Pink\ Floyd/Wish\ You\ Were\ Here/Have\ a\ Cigar.ogg
/tmp/data/audio/Pink Floyd/Wish You Were Here/Have a Cigar.ogg: Ogg data, Vorbis audio, stereo, 44100 Hz, ~80000 bps, created by: Xiph.Org libVorbis I
# ./UpdateMedia -d /tmp/data/audio
...(lots of output including failed SQL queries)...
# file /tmp/data/audio/Pink\ Floyd/Wish\ You\ Were\ Here/Have\ a\ Cigar.ogg
/tmp/data/audio/Pink Floyd/Wish You Were Here/Have a Cigar.ogg: Ogg data, Vorbis audio, stereo, 44100 Hz, ~80000 bps, created by: Xiph.Org libVorbis I
# ogginfo /tmp/data/audio/Pink\ Floyd/Wish\ You\ Were\ Here/Have\ a\ Cigar.ogg
Processing file "/tmp/data/audio/Pink Floyd/Wish You Were Here/Have a Cigar.ogg"...
New logical stream (#1, serial: 76bf03de): type vorbis
Vorbis headers parsed for stream 1, information follows...
Version: 0
Vendor: Xiph.Org libVorbis I 20050304
Channels: 2
Rate: 44100
Nominal bitrate: 80.000000 kb/s
Upper bitrate not set
Lower bitrate not set
User comments section follows...
artist=Pink Floyd
genre=Rock
date=1975
album=Wish You Were Here
tracknumber=3
Vorbis stream 1:
Total data length: 2833759 bytes
Playback length: 5m:08.000s
Average bitrate: 73.604130 kb/s
Logical stream 1 ended
So I guess that wasn't enough to mangle the file like you pointed out earlier in the other thread. I figured I'd copy the file over to the real system and do the media sync from the web-admin. At the first attempt the automatic update beat me to it, so I've stopped that in it's screen session, removed the file from disk and DB and tried again.
Resynchronize directory /home/public/data/audio
sudo -u root /usr/pluto/bin/UpdateMedia -d "/home/public/data/audio"
05 11/16/07 2:47:37.864 # PlutoMediaFile STARTED: dir /home/public/data/audio/Pink Floyd/Wish You Were Here file Have a Cigar.ogg <0xb6b416d0>
05 11/16/07 2:47:37.978 # PlutoMediaFile STARTED: dir /home/public/data/audio/Pink Floyd file Wish You Were Here <0xb6b416d0>
05 11/16/07 2:47:37.978 Adding parent folder to db: /home/public/data/audio/Pink Floyd/Wish You Were Here PlutoMediaParentFolder.HandleFileNotInDatabase <0xb6b416d0>
05 11/16/07 2:47:38.131 # PlutoMediaFile STARTED: dir /home/public/data/audio file Pink Floyd <0xb6b416d0>
05 11/16/07 2:47:38.132 Adding parent folder to db: /home/public/data/audio/Pink Floyd PlutoMediaParentFolder.HandleFileNotInDatabase <0xb6b416d0>
05 11/16/07 2:47:38.180 # PlutoMediaFile STARTED: dir /home/public/data file audio <0xb6b416d0>
05 11/16/07 2:47:38.180 Parent folder already in the database: /home/public/data/audio <0xb6b416d0>
01 11/16/07 2:47:38.186 Cannot find self in maplock! (0x80b47b4) (>2) alarm: AlarmManager.cpp:102 <0xb6b40b90>
ready to dump locks using logger: 0x80b4858
05 11/16/07 2:47:38.186 Dumping 1 locks <0xb6b40b90>
05 11/16/07 2:47:38.186 finished check for exceptions <0xb6b40b90>
05 11/16/07 2:47:38.186 OL: (0x80b47b4) (>1) alarm AlarmManager.cpp l:87 time: 2:47:38a (0 s) thread: 3065255632 Rel: Y Got: Y <0xb6b40b90>
And what do you know?
# file /home/public/data/audio/Pink\ Floyd/Wish\ You\ Were\ Here/Have\ a\ Cigar.ogg
/home/public/data/audio/Pink Floyd/Wish You Were Here/Have a Cigar.ogg: Audio file with ID3 version 23.0 tag, MP3 encoding
# ogginfo /home/public/data/audio/Pink\ Floyd/Wish\ You\ Were\ Here/Have\ a\ Cigar.ogg
Processing file "/home/public/data/audio/Pink Floyd/Wish You Were Here/Have a Cigar.ogg"...
Warning: Hole in data found at approximate offset 4500 bytes. Corrupted ogg.
New logical stream (#1, serial: 76bf03de): type vorbis
Vorbis headers parsed for stream 1, information follows...
Version: 0
Vendor: Xiph.Org libVorbis I 20050304
Channels: 2
Rate: 44100
Nominal bitrate: 80,000000 kb/s
Upper bitrate not set
Lower bitrate not set
User comments section follows...
artist=Pink Floyd
genre=Rock
date=1975
album=Wish You Were Here
tracknumber=3
Vorbis stream 1:
Total data length: 2833759 bytes
Playback length: 5m:08.000s
Average bitrate: 73,604130 kb/s
Logical stream 1 ended
Warning: Hole in data found at approximate offset 2838528 bytes. Corrupted ogg.
Hole in one! My .ogg apparently turned into an MP3... :P
Unfortunately this little excercise has not provided me with more clues as to where to look in the code for the part responsible for the id3 tagging, which is why I did this. I was hoping for some clues in the logging. I guess the only conclusion I can draw from this that a database connection is needed to properly test this.
Quote from: tschak909 on November 16, 2007, 01:03:03 AM
andrew - This would be a good opportunity for me to just jump in, as any... i'll take a look at the code and start familiarising myself with it and just see if i can hack on the support needed...
don't leave me as just the one dev though! It would be nice to have some help! :-D
-Thom
Thom, Mathew & Zaerc,
I understand that there is a new and updated UpdateMedia (and supporting scripts) coming in 0710.
It looks like 0710 is only a few weeks away now based on the announcement made about a month or so back. So it might make sense to hold off to see what 0710 brings... and then figure out what is needed from there.
What do you think?
Quote from: totallymaxed on November 17, 2007, 11:01:08 AMI understand that there is a new and updated UpdateMedia (and supporting scripts) coming in 0710.
It looks like 0710 is only a few weeks away now based on the announcement made about a month or so back. So it might make sense to hold off to see what 0710 brings... and then figure out what is needed from there.
What do you think?
I tend to agree. But I also think LMCE development should be a lot more transparent than currently. Especially if there's a goal for 2008Q2 for the project to scale to a large development community, with the promotion to get it there. So I'd still like to see the codepaths, and some techniques for finding and documenting arbitrary codepaths starting at interesting GUI, execution and data "waypoints".
As for LMCE "0710" (which will actually be released probably in 0712, though upgraded on Kubuntu 0710), some of the bugs assigned to webpaul are the dual codepaths for internal/external optical drive ripping, which might be the same alternate codepaths for single/changer disc ripping respectively. Which could indeed mean that not only are all my ripping bugs going away, but likely so is the dual codepath.
But I still would like to understand the codepaths. Is someone familiar with the full scope of the LMCE codebase (including its interfaces to its many included OSS modules, from MySQL and Linux to Asterisk and MythTV) available to generate a call graph, which can show the "non-LMCE" components as just interfaces to their black boxes, but present a schematic of LMCE itself among all those components? That is my dream, as on any project already underway recruiting new developers.
I guess we'll be better off to wait and see what 0710 brings then. No use in fixing something that's about to be replaced I guess. Thanks for the update.
Quote from: Matthew on November 17, 2007, 03:57:30 PM
Quote from: totallymaxed on November 17, 2007, 11:01:08 AMI understand that there is a new and updated UpdateMedia (and supporting scripts) coming in 0710.
It looks like 0710 is only a few weeks away now based on the announcement made about a month or so back. So it might make sense to hold off to see what 0710 brings... and then figure out what is needed from there.
What do you think?
I tend to agree. But I also think LMCE development should be a lot more transparent than currently. Especially if there's a goal for 2008Q2 for the project to scale to a large development community, with the promotion to get it there. So I'd still like to see the codepaths, and some techniques for finding and documenting arbitrary codepaths starting at interesting GUI, execution and data "waypoints".
As for LMCE "0710" (which will actually be released probably in 0712, though upgraded on Kubuntu 0710), some of the bugs assigned to webpaul are the dual codepaths for internal/external optical drive ripping, which might be the same alternate codepaths for single/changer disc ripping respectively. Which could indeed mean that not only are all my ripping bugs going away, but likely so is the dual codepath.
But I still would like to understand the codepaths. Is someone familiar with the full scope of the LMCE codebase (including its interfaces to its many included OSS modules, from MySQL and Linux to Asterisk and MythTV) available to generate a call graph, which can show the "non-LMCE" components as just interfaces to their black boxes, but present a schematic of LMCE itself among all those components? That is my dream, as on any project already underway recruiting new developers.
I am with you 100% on the belief that lmce needs to develop into a multi-tasking development effort that has multiple 'threads' so to speak. At present it essentially has 'one' thread - webpaul (and some Pluto dev help to). I agree a full scope of the lmce codebase with documented codepaths and call graph is needed so that a multi-threaded effort can be effectively and collectively managed. Once we have that any developers who are interested can choose the team/thread they are interested in and get involved in the knowledge that their coding efforts will be incorporated under peer review into stable/unstable codebase overtime. Without that in place its difficult to grow the developer community around lmce to the critical mass that is needed to move the project forward at the pace that i feel is needed.
So the question is how do we move from the single development theread model we have right now to the above multi-threaded one?
As for 0710 well that was never intended as a date stamp for the release - the concept was to name lmce releases after the release of Kubuntu that they were built upon. Hence the next releases name of lmce-0710
LMCE looks to be inside that major transition as a project right now. At the end of October, Paul announced that Daniel K would be the "community liason" for the project team. That team looks like it consists now of Paul, Daniel, and some unnamed Pluto developer. They're evidently working on the LMCE0710 release, mainly upgrading the Kubuntu distro, the MythTV version, a lot of patches (some submitted by community members) since LMCE0704 (especially MythTV integration), and perhaps some extra MythTV work (Daniel is on the MythTV project team, too). They're also evidently working on making sqlCVS open to more developers, which might include patch authors. All on a one month schedule that's about 2/3 complete.
In the meantime they've been pretty quiet. I'm a little troubled by the silence of Daniel, who spent a week and a half active as community liason (http://forum.linuxmce.org/index.php?action=profile;u=39936;sa=showPosts), but hasn't posted anything in a week, after just a week of real activity two weeks ago. I hope he's busy working on the code, or otherwise contributing to the project. Daniel was supposed to take over from Paul, but Paul himself hasn't posted in a full month now. Of course it's all volunteer, but inconsistent volunteers can kill a project, even if just inconsistent in communicating with a project's community. Though this project is not in that kind of danger now.
Project growing pains are worst when a project is first opening. If all that's happening is that community relations are slowing as material work is laboring mightily to deliver a new release, a new collaboration environment, and a new policy for growing the project team, then the next few weeks waiting for results will be worth the uncertainty in the meantime. That uncertainty does, however, inhibit people from contributing to solving high-priority problems that might be redundant effort.
Don't worry, I'm alive and well. :)
We're definitely in transition; but it is actually going as smoothly as can be expected.
The last couple weeks I've been working on a couple MythTV bugs that cause most of the instability of MythTV in LMCE:
http://svn.mythtv.org/trac/ticket/3361
http://svn.mythtv.org/trac/ticket/4115
You'll see that these tickets were both modified in the last few days. I've also been posting to the developer mailing list, which I recommend that everyone posting to the Developer section of the forum joins.
Razvan is not an unnamed developer :) I've named him a couple times. He's not the only person at Pluto improving LinuxMCE either. Christian M has been integrating my MythTV patches and Eugen C integrated PeteK's Insteon patches into Paul's tree. You'll also notice some Mantis bugs are being taken care of by Pluto folks... They are also sicking their testers on the thing for us to help ferret out bugs.
Any perceived quiet is mostly because there is a lot of work going on to get 0710 out the door, I'm working in parallel to get the code base self-hosting so anyone with 0710 will be able to compile things on their own without investing in a farm of build servers.
<b>That uncertainty does, however, inhibit people from contributing to solving high-priority problems that might be redundant effort.</b>
This I can actually help with, I'll do a sync to the public repository from the Pluto+Paul changes this week. The reason the 0710 development is going on in private repositories is because of the ambitious goal of getting 0710 out this month. It didn't make sense to suspend the work that was already in progress while the public repository was being set up...
Quote from: danielk on November 20, 2007, 12:24:48 AM
Don't worry, I'm alive and well. :)
I figured as much, but even nicer to see a sign :).
Quote from: danielk on November 20, 2007, 12:24:48 AMI've also been posting to the developer mailing list, which I recommend that everyone posting to the Developer section of the forum joins.
Is it possible to config the maillist to post to the developer forum, maybe either posted as a daily thread throughout the day or post a daily digest each day? It's already a bit of a hassle logging into each of the the forums, the wiki and Mantis with separate logins. Convergence is our game; the people this project attracts will be sensitive to arbitrary partitions.
0710 sounds excellent. How does MPlayer fit in? Or rather, how does Xine fit in to LMCE, since MythTV uses Mplayer?
Maybe a better question is how do we reinsert this discussion into a new thread, now that we're pretty OT from "Updating UpdateMedia"?
Quote from: danielk on November 20, 2007, 12:24:48 AM
Don't worry, I'm alive and well. :)
We're definitely in transition; but it is actually going as smoothly as can be expected.
The last couple weeks I've been working on a couple MythTV bugs that cause most of the instability of MythTV in LMCE:
http://svn.mythtv.org/trac/ticket/3361
http://svn.mythtv.org/trac/ticket/4115
You'll see that these tickets were both modified in the last few days. I've also been posting to the developer mailing list, which I recommend that everyone posting to the Developer section of the forum joins.
Razvan is not an unnamed developer :) I've named him a couple times. He's not the only person at Pluto improving LinuxMCE either. Christian M has been integrating my MythTV patches and Eugen C integrated PeteK's Insteon patches into Paul's tree. You'll also notice some Mantis bugs are being taken care of by Pluto folks... They are also sicking their testers on the thing for us to help ferret out bugs.
Any perceived quiet is mostly because there is a lot of work going on to get 0710 out the door, I'm working in parallel to get the code base self-hosting so anyone with 0710 will be able to compile things on their own without investing in a farm of build servers.
<b>That uncertainty does, however, inhibit people from contributing to solving high-priority problems that might be redundant effort.</b>
This I can actually help with, I'll do a sync to the public repository from the Pluto+Paul changes this week. The reason the 0710 development is going on in private repositories is because of the ambitious goal of getting 0710 out this month. It didn't make sense to suspend the work that was already in progress while the public repository was being set up...
Hi Daniel,
Thanks for the update. We work daily with the Pluto guys you mentioned above and recognise the strong contribution they make. In that context how do you see the transition from private svn to the public one happening? Once that transition has happened I assume that the public svn will then be the focus for all development. Is that how you see it?
Andrew
Quote from: Matthew on November 20, 2007, 01:12:52 AM
Is it possible to config the maillist to post to the developer forum, maybe either posted as a daily thread throughout the day or post a daily digest each day?
why don't you use the web archives of mailman?
Quote
It's already a bit of a hassle logging into each of the the forums, the wiki and Mantis with separate logins. Convergence is our game; the people this project attracts will be sensitive to arbitrary partitions.
The pluto guys have some kind of a "MasterUsers" Table and are provisioning other systems from it. I'm thinking about a "simple sign on" system with ldap backend. We then could feed the wiki, sqlCVS, mantis and more to come from there.
What i wonder about if we should give every user a unique installation id. Its "1" for now...
but this goes completely off topic..
best regards and happy hacking,
Hari
Quote from: hari on November 20, 2007, 01:55:20 PM
why don't you use the web archives of mailman?
Or have a daily digest sent by mail... The Mailinglists supports daily digest instead of single-messeging...
Quote from: hari on November 20, 2007, 01:55:20 PM
The pluto guys have some kind of a "MasterUsers" Table and are provisioning other systems from it. I'm thinking about a "simple sign on" system with ldap backend. We then could feed the wiki, sqlCVS, mantis and more to come from there.
I guess you mean something like an openID-System for the developers community ? I don't know about the current forum and mantis and so on, but phpbb does support it.
I guess, it wasn't too bad to have a known forum-admin as well as mantis. For the trac-environment and mailinglist, there is a maintainer with root that we know exists and cares as well as there have been admins promoted for the wiki, but a moderator on the forum could split this topic for example. So that is a real need for both, the forum and mantis.
Quote from: hari on November 20, 2007, 01:55:20 PMWhat i wonder about if we should give every user a unique installation id. Its "1" for now...
I definately prefer a non-IDed version of LinuxMCE. If someone wants to be registered and unique, they may of course get a different one, but from the privacy perspective and data-protection we cannot give everyone a unique ID. We would start joining M$ with their policy but without their (official) reason they have of preventing piracy.
Best regards,
Andreas
Or... instead of spreading ourselves and our resources thinner then they already are, we could use this very forum, like we've always done before.
And as far as the wiki admins go, that has been a pretty big disaster so far, yet another great example of the need for people that are actually a part of this community, and not on their own island doing their own thing without any regards towards the needs and wishes of the community.
Unified login would be nice, but I for one won't be holding my breath.
Edit:
Also I think the last thing we'd need is a bunch of forum moderators pushing everybody around, that didn't work out very well in the wiki either.
Quote from: Zaerc on November 20, 2007, 04:15:38 PM
Or... instead of spreading ourselves and our resources thinner then they already are, we could use this very forum, like we've always done before.
And as far as the wiki admins go, that has been a pretty big disaster so far, yet another great example of the need for people that are actually a part of this community, and not on their own island doing their own thing without any regards towards the needs and wishes of the community.
Unified login would be nice, but I for one won't be holding my breath.
Edit:
Also I think the last thing we'd need is a bunch of forum moderators pushing everybody around, that didn't work out very well in the wiki either.
I 100% agree Zaerc.
Quote from: chewi on November 20, 2007, 03:14:05 PM
Quote from: hari on November 20, 2007, 01:55:20 PM
why don't you use the web archives of mailman?
Or have a daily digest sent by mail... The Mailinglists supports daily digest instead of single-messeging...ser a unique installation id. Its "1" for now...
That would still split developer discussions in the same community into two separated discussion areas: the list and the Web forum.
What I'm talking about is subscribing the Web forum to the list, and feeding the list from the forum (preserving author fields in each direction), so the forum has all the list posts, and the list has all the forum posts (or at least "new post" notices). With each list thread in a separate forum topic, or at least each daily list digest posted in its own topic.
But only if there's existing SW to just install or quickly glue them together. If not, then really all discussion should go in the forum, with the list just for pushed activity notices.