Phonon on Windows - qt

Right now I have Phonon working on windows with a DS backend. However, it will not play certain mp3 files and although it appears to be playing m4a files (the song progress bar keeps moving) no sound comes out. The application is built using PyQt4 on Windows and is aimed at Windows users.
I know that this is not the fault of my program as when I replaced a file with one that did not play normally with one that did, the song played perfectly. I have downloaded phonon vlc, and tried to build it, but I cannot get CMake to create a makefile. Whenever I try, it tells me that the dev-cpp gcc is not able to make a simple test file.
I also tried downloading clementine and amorak to see if I could get that to work, but I have had the same problems there as well. Has anyone run into this sort of problem before?

I've run into the same problem recently. It seems to be that Phonon has a bit of a hissy fit about ID3 tags, particularly compressed ones. I've taken to creating a temporary copy of every mp3 that I open and using mutagen to delete the tags from that copy. I then open the de-tagged temporary file using PyQt/Phonon, and everything works as I expect. BTW, mutagen is awesome.
Phonon does have a bit of a habit of failing reasonably silently. This is what I do: check if your MediaObject is in a Phonon.ErrorState; if so check its errorString(), usually some incomprehensible message. Google this message and try to work from there.
Edit: Hmm, interesting. It's not Phonon having the problem, it's the DirectShow backend not being able to play the file with the compressed ID3 headers. While the "fix" I outline above does work, I found I was still having problems playing other types of files, e.g. .m4a, despite having the right codecs installed.
The solution was to install the K-Lite Codec Pack, and use the Win7DSFilterTweaker tool that comes with it to change the default decoder for the various codec types from "Microsoft" to "ffdshow". You might also need to run the ffdshow audio decoder configuration tool and tick the box marked Show dialog when an unknown application tries to load ffshow in the DirectShow control tab.

Related

Qt5 VideoPlayer: Does not play .mp4 file

My problem is little bit strange for me. I wrote a mediaPlayer program.
And I move the executable file to another directory in the same machine. Put the dlls beside the exe. It works fine. It can plays .mp4,.avi etc. But when i move the exe and dlls another machine it doesn't play mp4 files.
I tried compile both MinGW and VS2012 and result is same. Didn't find why.
Is there a advice for me ?
Thanks.
Install a default codec pack onto the end user's machine or convert the mp4 to a codec sponsored by windows.
Codec Pack Recommendation
It is hard to go wrong with K-lite Basic Codec Pack. Just be careful when downloading because the main download site is riddled with ads and false download buttons.
My preferred way to install something like this on my development machine is to use chocolatey. First install chocolatey then in your admin cmd, run:
choco install k-litecodecpackbasic
Video Conversion Tool Recommendation
Handbrake. Occasionally ffmpeg or libav might be better suited, but for most cases go with Handbrake.
If You Can't Install New Codecs...
On the end user's machine (missing admin privileges) or something else, then you probably need to use vlc's library for video playback if you need to support more than the minimum supported out of the box by Windows.
Hope that helps.

RStudio R File Corruption

I had a R script open in RStudio. The file was saved many times over the course of several weeks and worked perfectly fine when RStudio was opened and closed. However, today, I restarted my computer and when I opened RStudio and more specifically the script that I mentioned, all of the R code vanished, leaving a single long row of "....." with red highlighting.
When I tried to open the R file in other text processors such as Sublime Text and Notepad++, only a line of zeroes was visible. None of my other R files were affected. I'm currently running Windows 8.1 and have the latest version of R and RStudio. What can I do to recover the code in the file and prevent something like this from happening again?
It might be an old thread and it might have been covered in 'user4458796' answer in suggestion #1 ("Use the history..."), but:
My friend had the same problem and we managed to recover the code from a 'history_database' files located on Windows at:
'C:\Users\%user%\AppData\Local\RStudio-Desktop\'
I assume there is an equivalent location in Linux in general.
Hopefully I won't get downvoted, just sharing my 2cents.
Ben.
It's not clear what happened to corrupt your file (and thus how to fix it if possible) and it is kind of ominous that you're just seeing 0's in other text editors, but I'll give you my best suggestion and some tips.
Suggestions for Attempting Recovery
Since your other R files were unaffected, you should have a messy record of your code in the history. Use the history to reconstruct your code.
Access a copy of your file from any version control, cloud, or offline backup you may have used -- git, SVN, iCloud, SugarSync, Dropbox, etc (I realize you probably wouldn't have posted this question if that were an option, but I had to throw it out there).
Use a Hex or sector editor to try to recover the data.
Use a data recover program to find an old version of your file.
Inspect your trash or recycling bin to see if it has an old version. Depending on your OS and the settings of how you (insecurely or securely) delete files, then you may be able to undelete a deleted version, even if it's not immediately available.
Try different methods of recovering text data from corrupted text files like OpenOffice's and Microsoft's suggestions.
Tips for the Future
I know that hindsight is 20/20, but a few quick tips for good measure:
Use version control. Git is supported in RStudio's GUI interface.
Have more than one version of your file. Many professors and professionals recommend writing/storing code in a text editor and using your IDE only for the working copy.
Make backups. Distinct from #2, you should backup your files to a hard drive, flash drive, or cloud service like Dropbox or Spideroak.

USB driver not loading one USB image but loads another?

I have a usb driver with multiple IOKitPersonalities each with a IOMediaIcon entry. all works fine if the usb devices are plugged in after the kext has been loaded (kext loads fine, is signed, etc.). but after reboot of the computer, only ONE of the usb devices shows the standard orange default usb image. if I unplug/reload kext/replug the usb device in, the image gets corrected.
Any thoughts?
(Details:
running Mac OS X 10.10.1 (I don't think I saw this problem before Yosemite, definitely not a problem on 10.6.8), all the Personalities are the same (except for the IDs (which are correct I think since the usb device loads correctly if I plug in after the kext is loaded) so it isn't mistake with the personality...)
I don't know how to fix your specific problem, but I can give you some pointers which may or may not be helpful (sorry, a bit too big for a comment, but not a proper answer):
The icon stuff is handled in user space, the only thing that the kernel should have to do in theory is set the IOMediaIcon before registering the service. Setting it in the personality should be fine.
In user space, Disk Arbitration takes over. You can download (most of?) the source code for it from Apple's Open Source Site.
A quick search reveals that the diskarbitrationd source code does indeed reference the IOMediaIcon, in DADisk.c
I don't know how well it works to recompile diskarbitrationd and substitute Apple's binary with your own, but if that works, maybe you can modify it to log output from the icon code, and get closer to your answer that way?
The other source of error I can possibly think of is that although the system gets the correct icon information, it can't actually find the icon file? I've heard about various bugs related to bundles and resources in the context of /System/Library/Extensions vs /Library/Extensions since they added the latter. If your icons are in your kext bundle, and you've switched to /Library/Extensions, try switching back to SLE.
I hope that helps your debugging efforts!

Ubuntu, Qt and licencing

We have a website that we are planning to distribute in a device. It is basically a big web site with lots of pictures and information. The web site is already built using some flash and javascript. I am thinking on using ubuntu for this. My plan is to install ubuntu( server, maybe!) without a graphical enviroment( Gnome, KDE, etc...) and start a browser like firefox using X servers. I have already tried this using
Code:
xinit firefox
It works and loads firefox fine. I am also thinking to build a Simple UI that will be launched at start. This UI will have a button to start this website and maybe other programs.
I hope I made myself clear.
I would like to know what do you guys think about this? Does it sound like something feasible? Do you think its a good idea to do this way? Do you have any suggestions?
It terms of licensing I don't understand well. I know ubuntu is licensed mainly under GNU GPL and I know is open source. I know that you are required to have any modifications available. However I am not sure if that includes the source code for the web site or any other proprietary application that i create and include. My understanding is that you only need to have open source any changes made to the OS but not any configuration after it has been installed.
What about Qt which is liscenced GNU LGPL v. 2.1? Do i need to release the code for the UI i make or is it only the code for any changes made to Qt itself?
Thanks in advance to anyone that reads this. I have read a lot on this but I am not so sure i got it right. I would like to know if I am at least in the right path.
Any help will be appreciated.enter code here
Ubuntu is GPL - if you make any changes to the Ubuntu (or rather linux) kernel itself then you have to offer those changes to anyone you distribute Ubuntu to - that has nothing to do with any applications or data you use on the operating system.
Qt is LGPL - you can use Qt to make any application you want without releasing anything about your application. You only have to release any modifications you make to the Qt source code yourself - which you are unlikely to do.
You don't need Qt for any of this, you can have a browser run full screen at startup in Ubuntu (or any other linux), and you can have a simple start page which will also start other local apps with just html - this may be a lot easier.
There are also "kiosk modes" for most browsers which limit what features and tool bars are present so you can prevent users quitting the browser or loading/saving other data.
Finally check out xubuntu - it's a version of ubuntu with X but without Gnome or KDE
IANAL, but with LGPL you can dynamically link to Qt and not be required to license your own sources under LGPL.
The general rule of thumb is that your end user should be able to take code of LGPLed component, make modifications to it, and have your proprietary code work with it. This also means you can link statically to LGPLed code if you provide at least object files of your own code, so they can be relinked.
For linux I suspect the answer is yes as well, but I can't say anything specific.

What is the best tool to make a CD-ROM Demo Application?

I have to make an application that will do the following:
Open a video file embedded in the application
Open some pdf files, preferably embedded in the application, but if it will have to open externally, it's no problem.
Work in fullscreen on the user computer, with a minimum resolution of 1024x768. I'm thinking about a resolution of 1024x768, centered on a black background.
I was thinking of using Flash, but I don't have much experience, so if there is another easier IDE that creates a Flash application, I would prefer that.
So, if anyone knows any Flash component to do this, I'll be very thankful.
Creating a Flash CDROM takes a little bit of care, but from my experience it's well worth it. From your requirements, the Flash IDE is well up to the task. The common requirements are as follows:
Windows / Mac platform
Flash Projector file
Autorun file (For the Windows platform)
Net access or all local
If your client is happy with creating the CDROM just for Windows, there will be very few dramas - but if they want to create a Mac-friendly version, you can do that too and I will explain afterwards.
Your Flash should preferably be an .exe projector file - the reason for this is so that the Windows user can open your app without downloading a Flash player (If the client wants a CDROM, they probably have limited net access, so this is a good thing!)
Within Flash, you can perform all your standard fs commands including full-screen.
You will likely need an Autorun file so that the user sees your application as soon as you put in the CDROM - simply create a file named 'autorun.inf' in notepad and enter the following:
[autorun]
open=yourProjector.exe
Where 'yourProjector.exe' is the name and path of your projector file.
It sounds like you're going to embed your videos and content in the CDROM - this is usually the ideal case, since your client won't receive annoying security messages, but this can also be a bad thing if you want to correct your content later (spotting errors after a thousand CDROMS have been distributed can be a PAIN).
You can serve some of your content online to avoid this, but it would give your user some ugly messages, so as long as you triple-check your content and embed everything, it would be the best scenario.
Now for a Mac, Apple has done away with autorun features years ago - there is a way to turn it on through Quicktime, but this is off by default for almost all Mac users, and turning it on is not recommended because it makes the Mac vulnerable to the 'Hong Kong Virus', one of the few Mac viruses around.
You can make your CDROM mac-friendly by creating a Mac Projector and adding instructions for how to use it by changing the background image of the CDROM window. I haven't had to do it before, but I hear that it's not too difficult.
You can use the Flash Projector. Here is a tutorial to get you started. Now, you won't be able to embed the PDF files but you can open them easily enough using fscommand("exec","foo.pdf")
You can create an Adobe AIR Application; however it won't run off the CD ROM; it'll need to be installed locally.
If creating a projector from Flash Pro doesn't work; look at a tool like Janus or Zinc

Resources