This project is read-only.

Crash Between File Encode


Here's the latest log file from a crash that occured randomly between files (no VidCoder Crash MsgBox)

14 NOV 2011 10:07

(This is a 1.2.1 enocde, but it's the same issue...running 1.2.2 on second machine as of this AM and have had 2 crashes as well with same situation)

file attachments


RandomEngy wrote Nov 14, 2011 at 4:08 PM

If there's no VidCoder messagebox, it's a crash in the native HandBrake core. From what it looks like it's crashing in the middle of an encode, where none of my code is running. Have you tried the same file on HandBrake?

RandomEngy wrote Nov 14, 2011 at 4:08 PM

(The latest HandBrake nightly that is)

deltaecho5 wrote Nov 14, 2011 at 7:49 PM

I've watched the "hand-off" if you will, and it's happening just as the program begins encode on another item in the queue (list).

The latest crashes have been without the "report a bug" message box" most often, but I get clean encodes on the Handbrake Only side. (???...I've only tried to get a few pesky files to complete and have only done this twice out of 10-14 crashes, since reboot of the program (VC) usually just picks up where it left off and moves on...later on it usually crashes on another file down the list, typically if I do anything with the GUI <g>).

Lately if I edit/change/move/clear anything on the queue, I get a crash, without a bug report prompt. This doesn't inidcate to me that it's a Handbrake issue, but something that VidCoder is triggering in Handbrake.

More than happy to use a debug copy.


deltaecho5 wrote Nov 14, 2011 at 7:51 PM

After the queue I have finishes (on two machines...patience, I am working my way through digitizing my entire 1500+ DVD library) I am going to do a complete uninstall/reinstall of 1.2.2.

RandomEngy wrote Nov 14, 2011 at 8:23 PM

The Debug build should hopefully help diagnose the errors where you're getting the "report a bug" dialog. As for the others, when you get the crashes from changing the UI, is the Preview window open? I have a suspicion that something in the preview generation might be causing the crash in that case. Anyway I'll get that built after work today.

As for moving/deleting an item in the queue triggering that kind of crash, that's a surprise to me. I don't know what native code I could be calling there, but I'll take a look.

RandomEngy wrote Nov 15, 2011 at 2:41 AM

Thanks. You'll need to uninstall the old version before installing this, I believe.

deltaecho5 wrote Nov 15, 2011 at 3:53 AM

On previous build: had a crash as soon as I clicked on the "X" while on the completed tab, to clear all completed list items, so I said, hey, while I am at it, I will d/l the debug version and get it to him.

Ran a bunch of short 1:00 min. encodes with the list, and nothing happened when I clicked the same thing. The previous 1.2.2 norm I was running was a fresh install after uninstall as well.

Noticed the menu right click is grayed on debug, can't "edit/move" anything. This is not the case on the 1.2.2 norm.

If anything else happens, I'll post. Running 2-3 titles (2hrs) now till bedtime on debug installed machine, and about 30+ on norm 1.2.2 machine (2days). We'll see in the morning...wish I could interrupt the other, but each encode is 3+ hours so if I catch it I will also do a un/reinstall on 2nd machine and see if I can make it happen with that long queue.

deltaecho5 wrote Nov 16, 2011 at 10:28 PM


Here's a crash from debug I just got on edit:

System.InvalidOperationException: Start chapter must be selected.
at VidCoder.ViewModel.MainViewModel.get_EncodeJob() in D:\docs\projects\VidCoder\VidCoder\ViewModel\MainViewModel.cs:line 1744
at VidCoder.ViewModel.MainViewModel.CreateEncodeJobVM() in D:\docs\projects\VidCoder\VidCoder\ViewModel\MainViewModel.cs:line 1805
at VidCoder.ViewModel.Components.ProcessingViewModel.<get_AddToQueueCommand>b__11() in D:\docs\projects\VidCoder\VidCoder\ViewModel\Components\ProcessingViewModel.cs:line 492
at GalaSoft.MvvmLight.Command.RelayCommand.Execute(Object parameter)
at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

RandomEngy wrote Nov 17, 2011 at 2:53 AM

Now we're getting somewhere... do you remember if you had a chapter selection, seconds selection or frame selection when you clicked the queue button?

RandomEngy wrote Nov 17, 2011 at 3:16 AM

Also you said the crash happened while you were editing something, but the stack trace says it happened when the "Add to Queue" button was pressed. Do you remember exactly what you were doing in the UI when the crash occurred?

RandomEngy wrote Nov 17, 2011 at 3:38 AM

I think I've gotten to the root cause of this one, thanks to your testing and report. Even if I haven't fixed the underlying problem, at least it shouldn't crash there anymore.

deltaecho5 wrote Nov 18, 2011 at 5:06 AM

Sorry...just got home. Yes, it was while editing a destination file name, and then on "Add To Queue" it crashed.
Process was:
-Selected file, right click menu on item, selected "edit".
-Edited file name, selected "Add to Queue".

Nothing else on the screen had changed in answer to your questions about minutes, etc.


deltaecho5 wrote Nov 18, 2011 at 7:42 PM

BTW...which works best or which do you recommend...anydvd or dvdfab?

RandomEngy wrote Nov 18, 2011 at 8:31 PM

AnyDVD is pretty great; it's never failed for me. I have not tried DVDFab.

deltaecho5 wrote Nov 28, 2011 at 7:01 PM

Some FYI's- Had some time this holiday, so I've put them here in the issue tracker to keep them less conspicuous knowing you'll get an email...<g>

-Haven't had many more loggable crashes since that last crash, still using debug on one machine and reg 1.2.2 on other. Both crash occasionally (prob HB CLI) but then again, I am not trying to edit the queued list much (to afraid too!).
-BTW...Got the DVDFab Copy lifetime license, they had a sale, and it has many features similar to your GUI that make it a decent was about $20 cheaper than anyDVD at the time, and it was a lifetime subscription instead of one year.
-"move to top" and "move to bottom" seemed to have stopped functioning on x86 XP 1.2.2 in both debug and norm build.???
(I know I know...upgrade to WinVista/7! We have 8 PC's at house and 6 at the office...not likely soon!)

-Current Suggestion(s):
...add "Check For Update" on "About" menu...(good for update info when "automatic" is purposely unchecked due to compat. issues)
...still lobbying for a "multiple items" button next to the "Video" Title/Chapters line on main screen....similar to "+Add Track" button...makes sense.

Again, product looks great...I see you are getting many more "custom" customer requests and although some are very specific and useful it's easy to begin the downward slide of total

functionality vs. awkward jumbled interface. From experience, it might be useful when you have time to exercise your code skills and tackle them, and then place some of those features in a

"special features" tab in the options dialogue. The naming conventions and scripting features for those of us that are doing mega encodes of libraries are very beneficial and make VidCoder

the choice. I've passed it along about 20 times not to those in my same spot with big libraries trying to digitize and the response has been great.

Some thoughts- The future- a break down and feedback from a group of users I've given the program to:

The real kicker, the real meat of the issues I read here is that those with TV episode discs have no simple way to encode, process and name episodes.
Currently it's: (indulge me here)
-Step 1:
Get Disc (copy to drive-prefered for queueing) via dvd43/anyDVD/dvdFAB...using a directory tree naming convention that is useful in VC (Seinfeld Season 7 Disc 1 becomes Folder: Seinfeld

Subfolder: S7D1 07 Subfolder: VIDEO_TS.

-Step 2:
Queue up files (multiple titles using VC check off list...(great!). But Video_TS files have issue: same episode sometimes due to SAP or Special Features on disc 2+ times, so what should be

8 episodes turns into 12, so numbering feature from disc to disc is now out the window. Over name the episodes using naming conventions, and sort it out later in explorer. Grrrrrrr. This is

the big pain, so what should be 24 episodes of Seinfeld on three discs turns into 42 episodes of S2D3 Special Features and 4 SAP's of episode S2D1E2 etc. Turns into longer encode of

unwanted episodes which ultimately have to be watched in order to name them correctly.

-Step 3:
Now that you have a ton of episodes in each directory, you start the clearing of the dupes (if you couldn't tell because of the same title run time, which isn't also a great indicator, because

some discs have sat four 23:04 episodes (1-4), and the fourth is actually episode 2, with the same run time. Once you get the correct number of episodes, you start renaming. So episode 1

encoded as {parent:2}{parent}{parent}.{title:2} , [{parent:2}] yields
"S7D1 01.01 , [Seinfeld].mp4" and later is edited in explorer as: "07.01 The Engagement, [Seinfeld].mp4" when the episode title is added.
You know the 0's have to added because PS3/WDLive and Xbox all sort the files numerically so 7.1 and 7.11 are next to each other if your don't, and in the small directory displays on those

devices facilitate having the name of the show at the end so you can actually read the episodes...otherwise you get "Seinfeld S7D2E1 The...." LOL.

Although VC has made this process FAR FAR less time consuming (awesome!), it's still a pain. It's not VC's (or RandomEngy's fault) that VIDEO_TS files stink, have no episode names and all in all are

becoming even more irritating with newer copy protections.

You have the intimate knowledge of the code, so any immediate release improvements are deferred to you if they are possible, obviously. Down the road? Well...
The GUI concerning preview of each episode is currently not expediant or easy, obviously relying on HB. I assume using HB engine, each preview has to basically be encoded, temp filed and replayed. The only real way to ensure you're encoding the correct episode, or if it's even an episode and not just a 26 min DVD menu or 16 min special feature you really wanted is to watch the disc and mark down chapters, or just encode it all and sort it out later (8 disc encodes turn into 2 day encodes).

What some would love to see: (RandomEngy's expert skill, desire to include and tight time budget aside)

Once the copy or disc file is 'scanned', the ability to pop open a dialog of that source item, and manipulate it as a unique batch, or a "Encode Item Sandbox" window. (see attached image)
This involves dealing on a level where the file/folder selected is segregated in a dialog (the "at bat" or batch disc/ only the specified item is being scrutinized for encode.
-Track list is presented, and selecting each could generate a Preview very more drop downs or dialog for multiple, everything is in a list box from the start.
-Once the selected track is previewed, it's "to be written" info can be altered/edited and sequentially numbered...and is added to a "at bat sandbox" queue.
-Next track (if applicable) again selected, and it's "to be written" info can be altered/edited, and it gets numbered in the next sequence and added to the "at bat sandbox" queue.
-Any enocode settings, numbering conventions, etc can be applied to each "at bat" sandbox queue.
-Once the user is done with that disc/folder, the "at bat" sandbox queue is now dumped into the main "Encode Queue".
-If an item in the Main Encode Queue needs to be edited, the "at bat" sandbox queue for all those items is reopeneds, and changes are applied to that batch. Seems this basically duplicates the basic coding procedure you've coded, but changes an "item" to "job" and the main queue (prob currently a "job") to a "project".
-The File Format naming options could be saved to naming presets just like encoding presets, so they can be recalled to be used on each "at bat" batch. Silly enough, but when you have 11-15 discs of some shows, the naming conventions now could be a text file preset we create as a script with show names and style of naming so VC didn't have to do anything but read it. Easy to change between Naming conventions for Movies versus TV shows. This makes it much more scriptable and customizable without VC having to be coded to accept everyone's wild just give us the basic {language} and leave the rest to the user.
  • Episode names is a bit more difficult, but a text file with those names we generate (from netflix, imdb, etc) could be added to the dialog in a window so drag and drop could be enabled within the program. ("User Text Input")'s just a text file that gives us the ability to keep things we want in a window we're already using.
I realize VC is a very usable and simple interface, and is gaining popularity because of this. Your work has been excellent and the stability of the software built around HB has been first rate for the size of your audience. These ideas are just an objective look at the interface from my perspective. Take them for what they are worth...since 0.072 I've been using this product daily and love what it's been and what it's become. I know ideas aren't openly solicited-I've been giving it some thought and that's where my thinking takes me.


Enclosed: Interface Image

RandomEngy wrote Nov 28, 2011 at 8:11 PM

Could you do me a favor and paste this latest post into a new discussion? I don't mind things being discussed in the open and the "newest comments on top" behavior of the issue tracker comments would probably drive me crazy.

deltaecho5 wrote Nov 29, 2011 at 3:38 PM

Done...I've updated the image and edited the comment and posted it...

RandomEngy wrote Nov 29, 2011 at 5:27 PM

The Move to Top, Move to Bottom and Delete context menu options are broken in this version and will be fixed in the next. Sorry about that. Update checking: You can turn back on update checking in options. Is there something insufficient about that approach? And what was the "multiple items" button request? Was that the "add multiple titles" button shortcut you were asking for?

deltaecho5 wrote Nov 29, 2011 at 5:55 PM

"The Move to Top, Move to Bottom and Delete context menu options are broken in this version and will be fixed in the next. Sorry about that." issues. Good to know it wasn't something I was doing.

"Update checking: You can turn back on update checking in options. Is there something insufficient about that approach?" you know sometimes a user wants to disable automatic checking, and just do it manually in the software to see which is the latest release versus the one being used. I've seen this approach and it's beneficial in a beta/test environment to not auto update, but check via the product. Just a suggestion.

"And what was the "multiple items" button request? Was that the "add multiple titles" button shortcut you were asking for? " know it! LOL... It seems logical just like the "+Add Track" button...there seem to be more "multiple track users" that may benefit from it and didn't see the menu either. Just another suggestion... :)

RandomEngy wrote Nov 29, 2011 at 6:43 PM

I could see changing "add to queue" to be a split button and adding an "add multiple titles to queue" option to it. And I like its current positioning. The reason the "add track" button is up there is because it affects the audio portion only. The enqueue button affects the queue and deals with the encode workflow so it makes sense to place it near the Start button.

As for update checking (without automatic updates) I can see the use but that's going to be low priority since it has a simple workaround of checking the website and only affects people with auto-updates disabled.

deltaecho5 wrote Dec 2, 2011 at 11:38 PM

Attached as documentation