Premiere Bashing?
-
- Joined: Sat Jun 07, 2008 9:10 pm
Premiere Bashing?
Basically, what I want to know is where all the Premiere bashing comes from? The two major complains that I read about are as follows: 1) Inability to properly handle 23.976 video, 2) Bugginess/crashing.
I've experienced the bugginess and crashing, but found that it's actually at fault of either AviSynth or the IM-AviSynth.prm plugin. As soon as I uninstalled the plugin from Premiere (at the disc-space-cost of using Huffy sources), APP has been rock-solid stable. (Not to get too technical, but I took a gander at the plugin source-code. There's a slight memory-handing oversight in it. There's an inconsistency in the location of "new" to each respective "delete". In short: Not all C++ libraries handle new/delete keywords the same way, so those commands shouldn't be mixed between end-user libraries. Handling memory this way runs the risk of mixing "new"s and "delete"s between different runtime libraries, which can cause memory leaks and irregular behavior.)
I'm not quite sure about the 23.976 video. I've run a test export from APP to HuffYUV, which Media Player Classic (henceforth "MPC") has told me is 23.98 fps. That said, I've gotten the exact same results from a VirtualDub export: MPC tells me that a file (never even loaded into APP) is 23.98fps. Loading up both AVIs into APP, Premiere tells me that the .AVI container is 23.976fps but the video codec stream is 23.98fps. For both of them! Granted, I'm using CS3 and they may have fixed the 23.976 problem since earlier releases. But then again, it might not actually be their problem (seeing as how it exported exactly the same way VirtualDub did).
Any clarification would be greatly appreciated. I've actually been enjoying most of Premiere (which may be partly due to the psychology of shelling out the money to buy it--I don't want to be disappointed in my purchase). That said, I want to know which work-arounds I need to use, and what behavior to be on-the-lookout-for when editing/exporting.
On a side note: if I have a 23.976 .avi container with a 23.98 video stream, which do I believe? Which is correct? And why is there a redundancy of that information, especially if it doesn't coincide? (I'm planning for the final-export to be 29.97fps, so it doesn't matter a whole lot, but I'm curious.)
I've experienced the bugginess and crashing, but found that it's actually at fault of either AviSynth or the IM-AviSynth.prm plugin. As soon as I uninstalled the plugin from Premiere (at the disc-space-cost of using Huffy sources), APP has been rock-solid stable. (Not to get too technical, but I took a gander at the plugin source-code. There's a slight memory-handing oversight in it. There's an inconsistency in the location of "new" to each respective "delete". In short: Not all C++ libraries handle new/delete keywords the same way, so those commands shouldn't be mixed between end-user libraries. Handling memory this way runs the risk of mixing "new"s and "delete"s between different runtime libraries, which can cause memory leaks and irregular behavior.)
I'm not quite sure about the 23.976 video. I've run a test export from APP to HuffYUV, which Media Player Classic (henceforth "MPC") has told me is 23.98 fps. That said, I've gotten the exact same results from a VirtualDub export: MPC tells me that a file (never even loaded into APP) is 23.98fps. Loading up both AVIs into APP, Premiere tells me that the .AVI container is 23.976fps but the video codec stream is 23.98fps. For both of them! Granted, I'm using CS3 and they may have fixed the 23.976 problem since earlier releases. But then again, it might not actually be their problem (seeing as how it exported exactly the same way VirtualDub did).
Any clarification would be greatly appreciated. I've actually been enjoying most of Premiere (which may be partly due to the psychology of shelling out the money to buy it--I don't want to be disappointed in my purchase). That said, I want to know which work-arounds I need to use, and what behavior to be on-the-lookout-for when editing/exporting.
On a side note: if I have a 23.976 .avi container with a 23.98 video stream, which do I believe? Which is correct? And why is there a redundancy of that information, especially if it doesn't coincide? (I'm planning for the final-export to be 29.97fps, so it doesn't matter a whole lot, but I'm curious.)
- Zarxrax
- Joined: Sun Apr 01, 2001 6:37 pm
- Contact:
In my experience, Premiere and Premiere Pro are both very finicky even without the AVS plugin installed. Not only that, but premiere pro is buggy exporting to just about any codec other than Uncompressed. I have actually submitted a bug report about that to adobe like 5 times, ever since they released premiere pro 1.0, and they never do a damn thing about it, despite me having a reproducible problem that is verified by numerous other people.
Regarding 23.976fps, I think the current version of premiere pro actually handles it alright.
If you see problems in the code of the avs plugin, it would be great if you could offer fixes.
Regarding 23.976fps, I think the current version of premiere pro actually handles it alright.
If you see problems in the code of the avs plugin, it would be great if you could offer fixes.
-
- Joined: Sat Jun 07, 2008 9:10 pm
Firstly, thanks for your quick response. Interesting to know about the exporting problem. (Which I have experienced, though it's not too much of a hassle to export to Huffy for me.) Does it play nice with Huffy and Lagarith for you?Zarxrax wrote:In my experience, Premiere and Premiere Pro are both very finicky even without the AVS plugin installed. Not only that, but premiere pro is buggy exporting to just about any codec other than Uncompressed. I have actually submitted a bug report about that to adobe like 5 times, ever since they released premiere pro 1.0, and they never do a damn thing about it, despite me having a reproducible problem that is verified by numerous other people.
Regarding 23.976fps, I think the current version of premiere pro actually handles it alright.
If you see problems in the code of the avs plugin, it would be great if you could offer fixes.
As for fixes to the code, I don't have a development environment (or even just a barebones compiler) setup here so I'm going purely on visual reading of the source. As such, I don't feel right offering "fixes" so much as offering suggestions. Couple that with the fact that I'm not familiar with the interface APP provides to the plugin, nor with the interface AviSynth exports. All I know about either interface is what's used by the APP AviSynth plugin.
- Zarxrax
- Joined: Sun Apr 01, 2001 6:37 pm
- Contact:
No, it does not work properly with them either. It will randomly corrupt the video in some frames, usually observed along the top or bottom of the frame. It may not happen in every export.Aedren wrote:Firstly, thanks for your quick response. Interesting to know about the exporting problem. (Which I have experienced, though it's not too much of a hassle to export to Huffy for me.) Does it play nice with Huffy and Lagarith for you?
- BasharOfTheAges
- Just zis guy, you know?
- Joined: Tue Sep 14, 2004 11:32 pm
- Status: Breathing
- Location: Merrimack, NH
It has happened to me on 3 separate occasions as well. I've simply taken to exporting uncompressed as well. I have the HDD space, so it's not a major issue.
Anime Boston Fan Creations Coordinator (2019-2023)
Anime Boston Fan Creations Staff (2016-2018)
Another Anime Convention AMV Contest Coordinator 2008-2016
| | |
Anime Boston Fan Creations Staff (2016-2018)
Another Anime Convention AMV Contest Coordinator 2008-2016
| | |
-
- Joined: Sun Jun 22, 2008 12:40 pm
Hiya Aedren. I maintain (occasionally) the avisynth premiere plugin.
The only place where I use new is to make the FileInfo struct:
which is a combination of Premiere's memory handling stuff (which it likes you to use) and placement new.
The call to CreateScriptEnvironment
returns a class new'd inside Avisynth so I delete this at the end:
If you believe any of this may cause a problem, let me know what would be better and I'll send you a new version to test.
To be honest, the only time I free or delete stuff is when Premiere shuts down. So I can't see that part of the memory management affecting Premiere's stability whilst it's running.
-flend
Can you be more specific about exactly where you see this inconsistency?There's an inconsistency in the location of "new" to each respective "delete".
The only place where I use new is to make the FileInfo struct:
Code: Select all
FileInfo *fi = (FileInfo *)stdparms->piSuites->memFuncs->newPtr(sizeof(FileInfo));
new (fi) FileInfo();
The call to CreateScriptEnvironment
Code: Select all
fi->scriptEnvironment = CreateScriptEnvironment(AVISYNTH_INTERFACE_VERSION);
Code: Select all
delete fileptr->scriptEnvironment;
To be honest, the only time I free or delete stuff is when Premiere shuts down. So I can't see that part of the memory management affecting Premiere's stability whilst it's running.
-flend
-
- Joined: Sat Jun 07, 2008 9:10 pm
That's the area I was talking about. Basically, since the new/delete are being mixed between AviSynth's runtime library and the IM-AviSynth runtime library, there is huge potential for memory handling mismatches. Runtime libraries do similar, but not exactly the same, things when handling new/delete. So if you don't compile with the exact same compiler/library that AviSynth was compiled with, you'll likely see problems... To deal with this, most libraries provide functions along the lines of: CreateMemorySpaceInsideLibrary() and FreeMemorySpaceThatWasAllocatedInsideLibrary(). (Sometimes the "CreateMemory..." is implicit with a load command, sometimes not.) I'm not sure that AviSynth gives you this...flend wrote:The call to CreateScriptEnvironment
returns a class new'd inside Avisynth so I delete this at the end:Code: Select all
fi->scriptEnvironment = CreateScriptEnvironment(AVISYNTH_INTERFACE_VERSION);
If you believe any of this may cause a problem, let me know what would be better and I'll send you a new version to test.Code: Select all
delete fileptr->scriptEnvironment;
When I still had the plugin installed, I would experience a crash every time I closed Premiere. It was the standard "Premiere needs to close, but will try to save your data for a later restore." Granted, I was closing Premiere anyway, but that doesn't make it O.K. for it to crash.
Other than that, I'm pretty certain most of the crashes stem from AviSynth itself. (I'm not at all impressed with the either the interface it gives scripts or the library it provides to programs. Granted, it works, but it barely does that. I would get regular CRC mismatches from the deinterlacing scripts which used output=/input=, hardly something that should happen for a library that boasts consistent frameserving.)
-
- Joined: Sun Jun 22, 2008 12:40 pm
Well, CreateScriptEnvironment is (basically): return new ScriptEnvironment; but there is no API function provided to delete it nicely that I can see (avisynth 2.5.7) .Aedren wrote:To deal with this, most libraries provide functions along the lines of: CreateMemorySpaceInsideLibrary() and FreeMemorySpaceThatWasAllocatedInsideLibrary(). (Sometimes the "CreateMemory..." is implicit with a load command, sometimes not.) I'm not sure that AviSynth gives you this...
This could have been caused by me free-ing stuff in the wrong order. Avisynth uses a shared frame memory store stored in the ScriptEnvironment so it's not safe to delete S.E. (and therefore the store) before making sure all references to classes such as PClips etc. (which themselves refer to the memory in S.E.) are dealt with first.When I still had the plugin installed, I would experience a crash every time I closed Premiere.
I uploaded a fix for this bug a few days ago to the sourceforge page http://sourceforge.net/projects/videoeditorskit/ . If anyone was having problems with crashing on exit and the new version 1.91 fixes it, I'd be keen to know.
I think it's clear that these issues won't affect Premiere at any time before final closing. I had a look through the source code of the plugin for anything else dodgy but couldn't find anything. Premiere occasionally still comes up with strange results but I blame either Premiere itself or some memory overwriting going on in avisynth.
Cheers!
flend
- badmartialarts
- Bad Martial Artist
- Joined: Sat Oct 25, 2003 5:31 am
- Location: In ur Kitchen Stadium, eatin ur peppurz
I never had the 'crash on exit' thing until recently, I thought it was some weird interaction with the particular plugins I was using in my scripts. I'll give 1.91 a shot, and post my findings.
Life's short.
eBayhard.
eBayhard.
- Pwolf
- Friendly Neighborhood Pwaffle
- Joined: Thu May 03, 2001 4:17 pm
- Location: Some where in California, I forgot :\
- Contact: