|
|
| fccHandler |
| Posted: Jul 12 2005, 05:10 AM |
 |
|
Administrator n00b
  
Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02

|
| QUOTE (phaeron @ Jul 11 2005, 03:54 PM) | | you do save your link maps, right? | Nope, but I will next time...
BTW, I'm dismayed that people are sending VirtualDub-MPEG2 crash reports to you! Perhaps it will help if I totally remove your email string from the program.
Also thanks everyone for posting the crash reports, those will be very helpful. I'll start debugging this ASAP.
-------------------- May the FOURCC be with you... |
 |
| phaeron |
| Posted: Jul 12 2005, 05:56 AM |
 |
|

Virtualdub Developer
  
Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02

|
There is a trick you can use to recover the link map: rebuild the exact same executable. Unzipping your own source archive to a different folder and rebuilding it should, with luck, give you the exact same executable along with a usable link map. If not, you can usually correlate the disassemblies given that the functions themselves usually stay the same if the source is unchanged. |
 |
| almasw |
| Posted: Jul 12 2005, 06:16 AM |
 |
|
Unregistered

|
video filter problem
VirtualDub-MPEG2 1.6.8. Compressing mpeg2 file, using divx6 codec. - Adding filter logoaway v4.01. - Show Preview The Filter preview and previous keyframe/next keyframe don't works. In the VirtualDub-MPEG2 1.5.1 version the preview window works well. |
 |
| fccHandler |
| Posted: Jul 12 2005, 07:07 AM |
 |
|
Administrator n00b
  
Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02

|
I was able to duplicate the crashes posted on the previous page, but it's a strange bug. StreamGetFrame() is being called with frame_num64 = -1...
I can add a simple workaround for this, but I don't understand how it happens.
@almasw: I don't have DivX 6 or logoaway. Does this problem only happen with MPEG-2 files? What about MPEG-1 and AVI files?
-------------------- May the FOURCC be with you... |
 |
| phaeron |
| Posted: Jul 12 2005, 08:21 AM |
 |
|

Virtualdub Developer
  
Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02

|
@fccHandler: Double check your streamGetNextRequired() routine... that might occur if the frame that needs to be fetched is already in one of the MPEG decoder's frame buffers.
I tried reproing almasw's bug in vanilla 1.6.9 and was unable to do so. I suspect the DivX codec and logoaway filters have nothing to do with it... it may be an issue with the prevKey/nextKey functions in your MPEG-2 driver. These functions aren't used anymore except for key seeking, so if they have local minima you'd never notice it in normal operation. I can't see why the preview window would be special though. |
 |
| fccHandler |
| Posted: Jul 12 2005, 09:14 AM |
 |
|
Administrator n00b
  
Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02

|
| QUOTE (phaeron @ Jul 12 2005, 04:21 AM) | | Double check your streamGetNextRequired() routine... |
Thanks! I'll check it again.
| QUOTE | | ... it may be an issue with the prevKey/nextKey functions in your MPEG-2 driver. |
Well, I noticed that as soon I threw RFF into the mix, the definition of what a VirtualDub "key frame" is became cloudy... IIRC, my MPEG-2 driver defines a "key frame" as a picture in which both fields derive from the same I-frame. If the two fields come from different coded pictures, it will never flag it as a key frame.
-------------------- May the FOURCC be with you... |
 |
| almasw |
| Posted: Jul 12 2005, 12:12 PM |
 |
|
Unregistered

|
| QUOTE (fccHandler @ Jul 12 2005, 07:07 AM) | | Does this problem only happen with MPEG-2 files? What about MPEG-1 and AVI files? |
As I see, this problem happen with MPEG-2 and MPEG-1 files, not occurs with AVI files, only in version VirtualDub-MPEG2 1.6.8.
Logoaway plugin created to remove logos from video sequence: http://www.republika.pl/vander74/virtualdub/ |
 |
| fccHandler |
| Posted: Jul 12 2005, 05:21 PM |
 |
|
Administrator n00b
  
Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02

|
| QUOTE (almasw @ Jul 12 2005, 02:16 AM) | - Adding filter logoaway v4.01. - Show Preview The Filter preview and previous keyframe/next keyframe don't works. |
Aha, I see it now! I didn't understand that you were talking about the filter's preview window.
It also happens with the internal filters, including the "crop" preview. Lots of ugly green blocks there. I'll have to trace where it's going and fix this...
Thanks for your report!
-------------------- May the FOURCC be with you... |
 |
| phaeron |
| Posted: Jul 13 2005, 04:24 AM |
 |
|

Virtualdub Developer
  
Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02

|
There is some ugliness in the way that getFrame() and streamGetFrame() react. Essentially, getFrame() can hop in and steal the decoder temporarily. This means that the decoder has to gracefully handle jumping between the two. (You can rely on getting a new call to streamSetNextDesiredFrame however after the transition.) At some point I want to rework the input layer so that reading and decoding are not intertwined.
|
 |
| fccHandler |
| Posted: Jul 13 2005, 05:20 AM |
 |
|
Administrator n00b
  
Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02

|
Indeed getFrame() was the problem... Which is funny because I could've sworn I searched through the source code and couldn't find any references to it (thus I never fully implemented it). Ironically, I also searched for streamGetRequiredCount(), and I didn't see it used anywhere either, but I DID fully implement that waste because it was easy to do. Aaargh...
I'll be releasing a new build as soon as I upgrade the core to version 1.6.9. (Hopefully tomorrow...)
-------------------- May the FOURCC be with you... |
 |
| phaeron |
| Posted: Jul 13 2005, 07:37 AM |
 |
|

Virtualdub Developer
  
Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02

|
Hmm? streamGetRequiredCount() is used. It's used by the seeking code in project.cpp to determine if it will be faster to decode to the new frame target than to the current one, thus raising interactivity. Sure you're searching properly? |
 |
| fccHandler |
| Posted: Jul 13 2005, 07:49 AM |
 |
|
Administrator n00b
  
Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02

|
| QUOTE (phaeron @ Jul 13 2005, 03:37 AM) | | Sure you're searching properly? |
Apparently not! I guess I stand corrected. 
But I'm like 100% sure this wasn't used in 1.5.10. StreamGetRequiredCount() is something new to the 1.6.x branch (or rather, it's something old that has been revived...)
-------------------- May the FOURCC be with you... |
 |
| fccHandler |
| Posted: Jul 14 2005, 07:16 AM |
 |
|
Administrator n00b
  
Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02

|
OK the new version is up, but it's really just a "quick and dirty" fix. The code is very sloppy and I'm not at all happy with it, but I think it will work for now.
-------------------- May the FOURCC be with you... |
 |
| almasw |
| Posted: Jul 14 2005, 04:33 PM |
 |
|
Unregistered

|
The new version is OK. Thanks... |
 |
| Eggplant |
| Posted: Jul 15 2005, 01:56 AM |
 |
|
Unregistered

|
I can also confirm that the crash I posted has gone away. Thanks for the quick turn around! |
 |