View Full Version : Apple ProRes 422 decoded with QTinput (using QT 7.5.5)
j3ff
5th December 2008, 21:26
Hey guys,
My last resort is to come here and ask you guys for tips, I've done a fair share of research and do not seem to get anywhere with this.
I have sources that are using the Apple ProRes 422 codec, I have QuickTime 7.5.5 installed and am using QTSource.dll (0.0.5a AND 0.0.6 were tried) and I am experiencing a problem that may be a filter problem? that's where I need help.
Here's the script (an actual really SIMPLE script):
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\qtsource.dll")
qtinput("v:\prores.mov",audio=true)
Now here's the error:
When I open up the script using AvsP, I hit F5 (to open the video pane) and the video shows fine etc, I can scroll and what not. The second I hit F5 a second time (without any modifications) I get a
"Evaluate: System Exception - Access Violation"
Now does ANYONE know of a way to maybe work around this / fix this. I'd appreciate the help and would be very thankful :thanks:
poisondeathray
5th December 2008, 22:25
Don't use audio=true for QTInput
QTInput("file.mov")
ConvertToYV12()
Specify audio using DirectShowSource() in a separate script, you need ffdshow audio configuration "uncompressed" set to 16-bit (default is disabled), to decode the sowt audio
or together:
vid=QTInput("file.mov")
aud=DirectShowSource("file.mov",video=false)
audiodub(vid,aud)
ConvertToYV12()
I am assuming you already have ProRes installed
Blue_MiSfit
6th December 2008, 00:52
I was able to handle a ProRes file not long ago. QTInput worked, and I extracted the audio track with MPEG Streamclip.
~MiSfit
tateu
6th December 2008, 01:22
Setting audio=false does not solve it. My first guess...I screwed something up in QTSource. My limited programming skills and lack of knowledge about memory buffers, pointers and how and when to delete/free them has caused many issues in my software over the years. The same crash happens with ProRes and QTInput using VirtualDub. If you use the file menu and "Open" the same file it crashes but, strangely, if you press F2 to "Reload" the same file, it does not crash. The same problem also happens when using the VirtualDub quicktime input plugin.
The only thing that would make me think it is not necessarily my fault, is that it only seems to happen with the ProRes codec. I know that having the AJAKonaSoftwareCodec.qtx file installed causes lots of problems with QTSource, so maybe something in the ProRes codec is at fault. Unfortunately, I am swamped at work this month and have no free time to investigate the problem. Maybe I can look into it in January.
Gavino
6th December 2008, 14:39
My limited programming skills and lack of knowledge about memory buffers, pointers and how and when to delete/free them has caused many issues in my software over the years.
Your honesty is refreshing - perhaps you could add this line to your programs' docs so people know what to expect. :D
Only joking - I appreciate your efforts (though I must say I recently had problems with your VirtualDub quicktime input plugin - see here).
Can you imagine if all software producers did this: "Our programmers don't know how to write secure code, so don't use this browser to access your bank account..."
poisondeathray
6th December 2008, 15:03
The method I listed above works on my PC for AvsP, Vdub, MeGUI
In fact, as soon as I add audio=true, I get the same crash message as the OP, and when I remove it, it works again.
I recall someone else having problems getting it to work in the MeGUI trouble shooting thread, but I think it was narrowed down to something on their system
tateu
7th December 2008, 01:12
Unfortunately, I am swamped at work this month and have no free time to investigate the problem. Maybe I can look into it in January.
Well, I lied. I decided to spend a few minutes with it today...I went through and turned off a lot of the memory frees and deletes, one by one, but that did not solve it. I then started turning off other things in my destructor and...lo and behold...turning off the quicktime function TerminateQTML() fixes the crash. I don't really know why (there is something in the QuicktimeSDK docs about not calling InitalizeQTML/TerminateQTML from dllmain so I am going to head over to the AviSynth developer forum and start a thread asking about that) and I'm not sure if that can cause other problems (I wouldn't really think so...but...).
You are welcome to give this test version a try: http://www.tateu.net/software/dl.php?f=QTSource_Alpha
I have made tons of changes since the last release 2 years ago. This ProRes fixed version contains all of those changes. I previously mentioned my stellar programming skills, so it is of course possible that some of the changes included in this version may cause more problems than they solve...but...I use this version quite frequently in production at work and have not had any issues, so hopefully it works for everyone else.
Gavino,
See the other thread (http://forum.doom9.org/showthread.php?p=1209308#post1209308) for a response about the VirtualDub version.
j3ff
8th December 2008, 17:42
Thanks to all of you for replying in this thread trying to help me!
Tateu, the problem IS fixed and for that I thank you VERY much, you have saved me a big headache and I appreciate you taking the time to make the ProRes compatible, I didn't want to stop using your filter because it is THAT awesome!
Thank you very much all of you! :thanks:
Blue_MiSfit
8th December 2008, 21:37
Indeed! More thanks to Tateu! Your QTInput filter is marvelous and hugely useful!
~MiSfit
Mug Funky
9th December 2008, 02:29
ooh, thanks for the update. i wasn't experiencing huge probs with prores, but there was always a crash after reloading a clip sourced from over ethernet. it'd load the first time but would crash on reloading.
this release seems to have fixed that :)
btw, don't apologise for your programming skills. instead know they are far in excess of most of the skills that seem to be at work at Apple (tried using Color? it's a ball-ache)
chaynik
25th December 2008, 06:30
Beautiful! This fixed the access violations I was having when loading the scripts into VirtualDub one after the other. Thank you!
Now quick question for you, tateu. When loading 10-bit QuickTimes in raw mode, how is the conversion handled to 8-bit?
Thanks again!
7ekno
25th December 2008, 11:07
Wicked job Tateu ;)
v0.0.8 fixes a lot of "access violation" errors that were occuring when I tried to preview multiple AVS scripts with QTInput's in AvSP ... (which also means I no longer need to use DirectShowSource() as a work around to see multiple MOVs !!!) ..
Thanks again Tateu, v0.0.8 may not be perfect for everyone (it's flawless for my use!), but it's definately a blessing to the alternative for me (screwing around with QuickTime DirectShow Source Filters, GraphEdit and Filter Merits!!!!) ...
Cheers,
7
Deinorius
5th January 2009, 14:08
Hi guys, my problem has nothing to do with QTInput, but I can't decode the audio stream in a Quicktime file which was explained above. It worked with another file, but this one doesn't work.
If you wan't to try it yourself, it's here (http://www.thewitcher.com/community/download.php?type=video&id=2&p=mov). After extraction I get the extension "ima4". I tried libavcodec and disabled in ffdshow for IMA ADPCM, but nothing worked.
UltraTV
14th September 2010, 22:25
Yo tateu, I can't tell you how many times qtsource has saved me! That being said I'm hoping if you're still actively working with it you can take a look at a problem I'm having with prores422 files. I have a few pieces of content with 10 mono pcm tracks. qtsource only sees the first one.
tateu
15th September 2010, 06:04
Actively working with it? The compiled dll, yes, I still use it in production at the office...but the source code, no. It's been over a year and half since I last touched that. There are tons of things I've always wanted to fix but other projects, life, etc. got in the way and I've never gotten back to it.
... 10 mono pcm tracks. qtsource only sees the first one.
The way I set it up to work is that it should mix all 10 mono tracks down into 1 mono track for output. I just tried it on a test clip with mpeg-4 video and 10 16 bit, 44.1K mono audio tracks and it worked that way. I don't remember why I set it to mix down the tracks for output...maybe it was too hard for me to read that many separate tracks or maybe it was too hard for me to create that many audio tracks in an AviSynth clip??? Regardless of why...that is the only way it will work.
Is that what happens for you? Or is it really only outputting audio from the first track?
UltraTV
15th September 2010, 18:35
Glad to see you're still around.
I'm pretty sure it's working correctly. That is downmixing the 10 tracks to one track. We have some people in the office that may be able to contribute, so I'll have them look at the source code and see if they can figure out a way to handle the 10 discreet tracks.
Do you have any input that might help them get up to speed? We need to have avisynth see all 10 tracks so I can use getchannel() to grab the two stereo tracks. Then we'll be gravy...
p.s. any chance I can get a link to the latest source code?
tateu
15th September 2010, 19:19
The source code is on an old computer at home. I'll get you a link sometime in the next few days...
daniel.payne.
15th September 2010, 20:31
Hi Tateu,
Pretty sure its a QT thing. When in default (mode = 0) and mov type 2Yuv. One gets a access violation error.
Workaround is to select
mode=1
raw=2YUV
Could this be fixed to work out that it is 2YUV?
no worries if not. another day another workaround learned.
D
tateu
15th September 2010, 21:49
Do you have any input that might help them get up to speed? We need to have avisynth see all 10 tracks so I can use getchannel() to grab the two stereo tracks.
I'm almost there...it turns out to be rather easy...According to http://developer.apple.com/quicktime/audioextraction.html all you need is:
Boolean allChannelsDiscrete = true;
// disable mixing of audio channels
err = MovieAudioExtractionSetProperty(extractionSessionRef,
kQTPropertyClass_MovieAudioExtraction_Movie,
kQTMovieAudioExtractionMoviePropertyID_AllChannelsDiscrete,
sizeof (Boolean), &allChannelsDiscrete);
I tried it with some test QTInput source code I had lying around here at work...and it works. I'll try to get you a compiled version for testing in the next day or three. The version I am playing with right now isn't fully working in some other areas.
UltraTV
15th September 2010, 22:35
Brilliant! Can't thank you enough.
tateu
16th September 2010, 07:30
See this thread for multitrack audio and/or other QTInput updates:
http://forum.doom9.org/showthread.php?t=156777
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.