Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
3rd November 2016, 22:26 | #1 | Link |
Registered User
Join Date: Jan 2015
Posts: 1,048
|
What language are DVD2AVI and DGIndex written in?
I'm interested in learning how to code. I'm also interested in creating a fork of DGIndex that's specifically optimized for generating 60hz d2v files and variable-framerate MP4 files from hybrid content. Hence, the question.
Edit: frame rate. Not bitrate.
__________________
I ask unusual questions but always give proper thanks to those who give correct and useful answers. Last edited by Katie Boundary; 7th November 2016 at 04:39. |
3rd November 2016, 23:30 | #2 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
DGIndex / DGDecode are written mainly in C, there is some C++ in DGDecode as far as I recall and both have external Assembler modules for time critical stuff like iDCT.
__________________
Groucho's Avisynth Stuff |
6th November 2016, 11:28 | #4 | Link | |||
Registered User
Join Date: Mar 2011
Posts: 4,823
|
It's easy enough to produce variable frame rate video now containing 23.976fps and 29.970fps sections with the TIVTC plug-in. I'm not sure how you'd go about deinterlaciing any video sections to 59.940fps rather than 29.970fps though as I haven't had a need, but does anyone know if that's currently do-able? I'd be interested to know myself for future reference.
I guess I should be expecting a PM from Katie with a heartfelt apology sometime fairly soon, given all the arguing and abuse I had to endure. Only a few months ago...... Quote:
Quote:
Quote:
|
|||
7th November 2016, 04:45 | #5 | Link |
Registered User
Join Date: Jan 2015
Posts: 1,048
|
That's right, hello! Instead of honoring pulldown flags and then relying on some algorithm's best guesses to put humpty-dumpty back together again, you'll be able to just convert VFR video natively like we should have been doing all along! Won't that be neat?
__________________
I ask unusual questions but always give proper thanks to those who give correct and useful answers. |
7th November 2016, 10:26 | #6 | Link |
Registered User
Join Date: Mar 2011
Posts: 4,823
|
On your ignore list, off your ignore list...... but that wasn't much of an apology.
DecombVFRMod I had a quick look through the manual and it also appears to be designed for outputting 23.976fps and 29.970fps combinations as VFR, much like TIVTC. I suspect one reason for that is the de-interlacing is adaptive and in theory only de-interlaces combed frames, and even then only de-interlaces the area of those frames where combing is detected. Still, sometimes de-interlacing to 59.940fps would probably be preferable. TIVTC's algorithms are very good at "guessing", especially in 2 pass mode. If pulldown is hard-coded rather than applied via flags, a "best guess" still needs to be relied upon. Your decoder would need to be able to detect and remove pulldown, detect interlacing & de-interlace to "double frame rate" and output a timecodes file. If a source has hard-coded pulldown, how do plan on bypassing the "guessing"? Realistically, you'd have to be building algorithms similar to those already being used into the deocder. Surely there must be a way to get TIVTC to do the work while de-interlacing to double frame rate? I've used it to output VFR several times before, and it'll take frames from an alternative clip when it detects combing so you can use any de-interlacer, but I haven't worked out if there's a way to get it to take 2 frames from a de-interlaced clip and double the frame rate. If anyone knows a way to do that, I'd be keen to learn for future reference, or is it generally accepted it's not worth the effort for hybrid sources? Last edited by hello_hello; 7th November 2016 at 14:34. |
9th November 2016, 00:46 | #7 | Link |
Registered User
Join Date: Jan 2015
Posts: 1,048
|
It occurred to me early on that if someone wants to export a project file in which the field operation is set to 60hz or VFR, and then frameserve that through AVIsynth, then the bob-deinterlacing algorithm(s) would need to be implemented in a very unusual place. I've been looking through the DGIndex documentation, and it says that d2v files merely store an integer value representing the field operation to perform, leaving the actual execution to mpeg2dec3.dll/mpeg2source. This means that I will need to create a fork of mpeg2dec3 that handles these additional field operations.
Also, if I allow users to pick a bobbing algorithm instead of forcing iBob or Yadif on them, then project files will need to carry an entirely new field specifying the algorithm. This might justify a different file extension: .d4v
__________________
I ask unusual questions but always give proper thanks to those who give correct and useful answers. |
9th November 2016, 03:32 | #8 | Link | |
Registered User
Join Date: Mar 2011
Posts: 4,823
|
Still no apology??
Quote:
It's all do-able at present, aside from being able to de-interlace video sections to 59.940fps (as far as I know). Mind you the more I think about it, the more I wonder if de-interlacing to 59.940fps is really all that important for hybrid sources. "Film" and "video" look totally different, and while the interlacing and frame rate is only part it, de-interlacing to 59.940fps would probably make the difference between them more obvious. I don't work with much NTSC and even less with hybrid NTSC but the times I have I wasn't worried about de-interlacing to 59.940fps. Combinations of 23.976 and 29.970 progressive were fine. |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|