Friday, March 14, 2014

Adobe Premiere 5.1 gotchas

I'm using our old copy of Premiere 5.1 to put together the Cosmic Architecture of the Universe show. For the last few days, did not have any issues to speak of. Suddenly, it failed to start today, and complained of not enough RAM. This discussion led me to start Firefox and log in to GMail before starting Premiere, that used up sufficient RAM to reduce free RAM to less than 2 GB, making Premiere start up!

Another issue was with transitions from XVID video to still frame and vice versa - they were making the output frame blank. Other manipulations like frame hold also had this issue. Tried with H.264 codec also, that also had the problem. But Huffyuv encoded videos are fine, they are able to handle transitions and cuts without problems. Only problem with them is file size. Exceeding 2 GB causes other issues, crashes! Legacy VFW libraries are limited to 2GB etc. So, short clips of Huffyuv where transitions are required, XVID where no transitions are required. 

Wednesday, March 12, 2014

GL_warp2Avi 2 GB file-size limit

Found by trial and error that the GL_warp2Avi has a 2 GB file size limit for both input and output avi files. This is due to the limitations of the legacy video for windows code used. The limits are discussed at
http://neuron2.net/LVG/filesize.html

Because of this, I could not use huffyuv codec for clips longer than 30 seconds or so. My workaround was to use x264vfw for high quality input and output avi files with small size.

Note: Workaround for input file limits - using virtualdub frameserver.

Sunday, March 09, 2014

desturate in CEP

Wanted to try and "restore" a clipped piece of audio in Cool Edit Pro, so tried out a search for doing so in Audition and found this discussion which may be useful. In my case, just changing the sample depth 32 to 16 was enough for me. But useful for reference:


  • Convert to 32 bit
  • Normalize to 50%
  • Use Chebyshev bandpass 18th Order, 4 Hz to 22.5 kHz.

Tuesday, February 11, 2014

adding .me top level domain to phplist

We got a complaint from a subscriber, email not being delivered to TLD .me - email address being flagged as invalid. Corrected as per this post,
http://forums.phplist.com/viewtopic.php?f=24&t=37520

adding .me in two places in admin/commonlib/lib/userlib.php

Saturday, February 08, 2014

running apps with no installers on Linux with Wine - winetricks

I wrote about my GL_warp2Avi tool,
Currently it is written using many Windows-only libraries like MFC and so on. Would need a complete re-write to make it compile on other platforms. Wine is a possibility. 
For running it under Wine, you will first need to install libraries using winetricks,http://wiki.winehq.org/winetricks 
(When I try running it under Linux with Wine, it seems to crash when initializing the output avi file.) 

Thursday, February 06, 2014

avi-to-avi pre-warp tool - GL_warp2Avi

My quest for an OpenGL accelerated pre-warping tool similar to TGAWarp finally made me start coding, albeit in copy-paste fashion. This tool is cobbled together using code from:

http://www.codeproject.com/Articles/8739/Extracting-AVI-Frames - for getting frames from AVI
http://nehe.gamedev.net/tutorial/playing_avi_files_in_opengl/23001/ - for playing AVI with OpenGL
http://paulbourke.net/dataformats/meshwarp/ - for the OpenGL drawing code
http://paulbourke.net/miscellaneous/lenscorrection/#opengl - for the OpenGL initializations
https://github.com/pdbourke/vlc-warp-2.1 - for the ReadMesh code.

Other minor pieces are credited in the comments.

The software can be downloaded from GitHub. The source repository is also available, for all those who would like to help in making improvements.

Usage: Open input fisheye avi file when prompted. Preview of warping is shown on the main window. Choose Menu item Avi Generation - choose output warped avi file when prompted. The render runs at approximately 2 fps on my 1.9 GHz Athlon laptop.

Please note the following points, which could be improved etc. The hard-coded parts are commented as such, // hard coded! hack! and so on.

  1. The current version expects the map file EP_xyuv_1920.map which should be a valid map file, in the same directory as the executable. This is hard coded at the moment. Other valid map files could be put in its place, but I have not tested this.
  2. The current version uses only AVI for input and output. This could be improved by using FFMPEG as Asaf of Surreyyasoft suggested.
  3. The dimensions of the output are currently limited by display size. If display size is larger than 1920x1080, like in my case with a laptop monitor and a secondary monitor at 1920x1200, the initial frame size is set to 1920x1080, and output will be at this resolution. If the program is run on a computer with a smaller display, the frame size reduces correspondingly, and so will the output. This could be improved by using FBO etc. 
  4. The progress bar seems to freeze if the application loses focus (if you click on another window etc). But the rendering still goes on without problems.
  5. Currently there is no way to pause and resume. Aborting also results in a crash.
  6. Currently, instead of giving an error message, the program takes defaults for input and output. Default input is a file called Face2.avi in a Data sub-directory of the executable directory. Default output is in the active directory -  executable directory or input file directory, with the time-stamp as filename.
Output quality seems to be comparable to TGAWarp. Taking sample frames from the excellent show Cosmic Colors from GLPA, which we're currently exhibiting,

Frame generated by GL_warp2Avi:



Similar frame generated by TGAWarp (actually jpgwarper):


Note: 2 GB file limits for input and output files.
Note 2: Workaround using virtualdub as frameserver - then it can use avisynth avs files, which can source image sequences, mp4, mov etc etc. 

changing exe name in a Visual Studio project

This stackoverflow thread discusses this issue of how to change the generated exe file's name. Either change it in Project Properties -> Configuration Properties -> General -> Target Name
or change it in
Configuration Properties -> Linker -> General -> Output file.

Friday, January 10, 2014

procmailrc file issue

For getting the bounces generated by krishna's mailer daemon, which would be sent to noreply@radiosai.org, the postfix install needs to be configured to deliver mail to radiosai.org domain also, and procmailrc has to be configured.

http://hnsws.blogspot.in/2010/11/bounce-processing-for-yahoo-and-new-ip.html
Had done the procmailrc, now have adjusted main.cf
changed
mydestination = radiosai.org, krishna, localhost.localdomain, localhost
to
mydestination = radiosai.org, krishna, localhost.localdomain, localhost, krishna.radiosai.org
But actually that was not the problem - the problem was that .procmailrc was named procmailrc (no dot at beginning). renamed it with the dot, started working.

fixing / changing HELO of mail server

Bounce processing was not proceeding. It complained that php imap module was not installed. Did

apt-get install php5-imap
and service restart apache2
Then error was, cannot open /var/mail/apachemails
had to do chmod 660 for /var/mail/apachemails

Some mails are being bounced, like rediffmail,
Jan 10 02:19:32 krishna postfix/smtp[28562]: 112D02A0C11: to=, relay=mx.rediffmail.rediff.akadns.net[119.252.147.10]:25, delay=0.27, delays=0.1/0/0.1/0.07, dsn=5.0.0, status=bounced (host mx.rediffmail.rediff.akadns.net[119.252.147.10] said: 553 sorry, invalid HELO hostname (#5.7.1) (in reply to RCPT TO command))
Checking the sai inspires email, looks like the HELO is being sent as krishna instead of FQDN, gmail show original shows
Received: from krishna.radiosai.org (krishna.radiosai.org. [111.93.16.162])
        by mx.google.com
for older mails, while for newer mails it says

Received: from krishna (krishna.radiosai.org. [111.93.16.162])
        by mx.google.com

Fixed by changing in /etc/postfix/main.cf
 myhostname=krishna   to
 myhostname=krishna.radiosai.org
using
https://major.io/2006/12/26/fixing-invalid-helos/

Wednesday, January 08, 2014

compiling with Visual Studio 2008 Express

Some of the stuff I went through - once again, just a link dump:

fatal error C1083: Cannot open include file: 'afxwin.h'

Apparently this is because MFC is not included with VS Express.

https://www.google.co.in/search?q=creating+mfc+with+visual+studio+2008+express

http://www.codeproject.com/Articles/30439/How-to-compile-MFC-code-in-Visual-C-Express
had to google for ddk, found a link at
http://forums.mydigitallife.info/threads/16561-Looking-for-quot-Windows-Server-2003-SP1-DDK-quot-download-link-needed


Similarly, after building in debug mode, there was the error on running the application that MFC42D.DLL was not found. Since I did have  MFC42.DLL, I just rebuilt it in Release configuration, and the application worked fine. Other resources for these are this MS forum thread and this useful tool.

Initializing window size on starting of application using a call to MoveWindow. Unfortunately, it does not allow the window size to be greater than the size of the screen. So, I can't make AVI using AVI generator demo which are 1920 x 1080, since the window decoration makes the client rect smaller than 1920 x 1080 even if my screen resolution is that big. 

Tried with adding scrollbars, but only the part of the window which is visible is rendered in the avi. Rest is black. 
hardcoded to
createwindow()
cs.style |=   WS_HSCROLL | WS_VSCROLL;

ReSizeGLScene()
hard coded
glViewport(0,0,1920,1080);   
and in setbitmapheader in avigenerator

// changing size of image so dimension are multiple of 4
    //size.cx=(size.cx/4)*4;
    //size.cy=(size.cy/4)*4;
    // hack - hard coding to 1920 x 1080
    size.cx=1920;
    size.cy=1080;

Have stopped working on this for now. Maybe Fluag will work if the developer responds.

Monday, January 06, 2014

compiling Fluag

Tried compiling Fluag directly using the vcproj project file available with the source. Visual Studio 2008 complains that Lua_5.1.5_static.lib is compiled with a different version of the compiler. Tried compiling lua to re-create the lib file - downloaded lua 5.1.5 source, the visual studio solution files from lua-users wiki, but found that the 5.1.5 source contained an etc folder with build instructions using a bat file from Visual Studio terminal, (not simply cmd.exe, we have to go to the Terminal from within Visual Studio, otherwise cl.exe not found errors will come up), used that bat file, it built a lua51.lib, renamed it and moved it to the fluag src/libs folder, ran the build once again, success.

But even with this compiled version, no opengl output for me. 

more caveats with using vlc-warp compiled from source

Following up from my earlier post on compiling vlc-warp on Linux, there were some issues faced by T and posted to the small_planetarium yahoo group. Apparently the warp was not happening, the error message on the terminal was that the mesh file was malformed. Finally, the issue turned out to be locale dependent. Either using a US English locale throughout, or changing . to , in the mesh file, solved the issue. Apparently in the Polish locale, the separator for decimal point is comma , and not dot .

So, while compiling and using vlc-warp, if your locale uses some other decimal mark other than ., you will need to modify the mesh files from Paul suitably!

Sunday, January 05, 2014

Fluag for opengl with avisynth

Fluag - downloaded and tried out. The test scripts which do not use opengl work fine. The info opengl script which prints out gl info works fine. But any test script which uses opengl to render video was returning a blank clip. Have requested help from the developer. 

Saturday, January 04, 2014

lots of opengl trials

Just copying over all the links I used as such, not bothering to format it:

and
says add windows.h before every include of gl related h file - that worked for fbo test from http://www.songho.ca/opengl/gl_fbo.html

For making a test with Youka's window.h - wait for keypress on Windows,
https://www.google.co.in/search?q=c%2B%2B+wait+for+keypress

http://www.cplusplus.com/forum/beginner/4533/
 

OpenGL in Avisynth

This blog post
http://www.morethantechnical.com/2009/01/14/opengl-for-avisynth/
describes using opengl for an avisynth plugin. Getting the source files from google code,  tried building the dll. Faced several setup issues, but finally got it to compile. But trying it out with Avisynth, found that the plugin was not delivering video out back to Avisynth. It was opening a new Opengl window, but nothing was being drawn to it, and nothing was coming back to Avisynth either. Then I thought of trying out the more advanced Fluag plugin developed by Youka.

installing and trying out SIVP for Scilab on Windows

Exploring more methods of reaching my goal of a graphics-card accelerated way of pre-warping, came across SIVP for Scilab, which seemed to do just what I wanted. That is, it is capable of opening and saving avi files, and can do image manipulations on individual frames with OpenCV acceleration. Tried installing Scilab for Windows, OpenCV for Windows and then the SIVP package listed in the download section on the SIVP page. Opening Scilab and choosing the menu item Toolboxes -> SIVP as given in the documentation pdf, the following errors:

Startup execution:
  loading initial environment
 SIVP - Scilab Image and Video Processing Toolbox 0.5.0
Warning: Feature str2code is obsolete.
Warning: Please use ascii instead.
Warning: This feature will be permanently removed in Scilab 6.0.0

if MSDOS then
     !--error 4
Undefined variable: MSDOS
at line      64 of exec file called by :   
-0.5.0\\loader.sce")
in  execstr instruction    called by : 
execstr(toolboxes(1));if exists("%oldgcbo"
while executing a callback


Also, testing it by calling imread etc gave errors of unrecognized function.

Then tried uninstalling SIVP and installing using ATOMS instead,
atomsinstall('SVIP')

This worked fine. But trying to read images made Scilab give out of memory errors, asking that I use stacksize to increase the stack size. Once again, errors while using
stacksize('max')
stacksize: Cannot allocate memory.

But giving a specific value, like
stacksize(50e6)
worked. Giving larger values, like
stacksize(100e6) 
again failed.


Friday, January 03, 2014

compiling avisynth plugins with opengl

Used Visual Studio 2008 and the instructions at the avisynth wiki. I used the avisynth.h version bundled with the avisynth 2.58 download, by choosing to install Platform SDK also while (re-) installing. For compiling dlls with opengl and glut, followed this very good answer on stackoverflow. Downloading the GLUT libraries and header file, copying to the correct folders, then the settings needed in Visual Studio -

Link to the OpenGL libraries (important step):
  • Under the Project menu select Project Properties (Alt+F7) at the bottom.
  • Select Configuration Properties → Linker → Input from the navigation panel on the left.
  • Select All Configurations from the Configuration drop-down box at the top of the dialog. This ensures you are changing the settings for both the Debug and Release configurations.
  • Type “opengl32.lib glu32.lib glut32.lib” in Additional Dependencies and click OK (the opengl32.lib and glu32.lib are already in the system, and glut32.lib will be after downloading GLUT).

It is also necessary to set the paths in Visual Studio:
  • In Tools -> Options -> VC++ Directories -> Include Files:
    C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
  • In Configuration Properties → Linker → Additional Library Directories:
    C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib


Thursday, January 02, 2014

Microsoft account creation email verification problem and solution

In order to compile avisynth plugins, the method with the most step-by-step instructions seems to be Visual Studio, and VS Express is a free download. But for using it for more than 30 days, it needs to be registered, and for that, one needs to create a Microsoft account. In the email verification process for that, unfortunately they don't provide a "copy this code and paste it" form as an alternative to clicking the link which comes in the email. And unfortunately the confirmation link did not work for me - tried it on Firefox, Chrome and IE8. Checking the source of the confirmation email, thought that the length of the URL might be too large, and that that might be the issue. Sure enough, I copy-pasted the URL without the trailing huge

&ru=3Dhttps etc... 
 
part, thinking that ru must be return url,and sure enough, it worked! So, the URL which worked had the following format,

https://account.live.com/Email/Verify?otc=(92-character-code)&mn==3D(email-in-url-encoded-form)

Saturday, December 28, 2013

compiling vlc (or vlc-warp) for Windows

Could not find any relevant solution to the cross-compiling issue - the dlls etc have not been made properly, so even mounting the Linux partition on Windows and trying to run vlc fails. Edit - the cross compiling post has now been updated with the solution - installing wine-dev package.

Tried the Msys method of compiling VLC on Windows. That fails when trying to build automake etc, saying
configure: error: cannot run C compiled programs

Next was to try the "advanced instructions" at  https://wiki.videolan.org/Win32CompileMSYSNew/
That has a note halfway down, saying
Note: I found that compiling 2.1.0 requires xgettext, msgmerge, msgfmt and so on. These in turn require libiconv. I'm not sure if that suffices as at this point I gave up. 
So I also gave up, for now.

Friday, December 27, 2013

cross compiling VLC Warp for windows

VLC wiki recommends cross-compiling from Linux as the preferred route to compile for Windows. But trying to compile the vlc-warp cloned from github, ran into lots of dependency problems. My Kubuntu 12.04 was borked by installing .deb which depended on newer libc versions, so gave it up and installed Ubuntu 13.10. 13.10 initially had older libraries like libc and so on, but after updating, the libraries required were updated to newer ones.

Then, followed the Win32 cross compile guide on the VLC wiki, and the build went through. I followed the "Preferred method" of MingW on Linux. First installed the build tools from the Unix compile wiki,
sudo apt-get install git libtool build-essential pkg-config autoconf
and then did apt-get install for all the packages mentioned on the cross compile guide. I used a tar.gz with a backup of the git clone of the vlc-warp directory which I had got for the Linux compile, and the backup of the vlc-contrib-i686-w64-mingw32-latest.tar.bz2 pre-built contribs which were got earlier while doing make prebuilt for the contribs. The make itself took only around 20 minutes, just like for the Linux make.

Unfortunately, after doing the make,
make package-win-common
failed.

make[3]: *** No rule to make target `/usr/include/wine/windows/stdole2.idl', needed by `stdole2.tlb'.  Stop.
make[3]: Leaving directory `/home/hari/vlc-warp-2.1/win32/npapi-vlc/activex'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/hari/vlc-warp-2.1/win32/npapi-vlc'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/hari/vlc-warp-2.1/win32/npapi-vlc'
make: *** [stamp-npapi-build] Error 2


I guess a solution to this would have to be a separate post.

Edit on 6 Jan 2014: The comments below helped solve this issue. Installing wine-dev package solved it.