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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > VapourSynth

Reply
 
Thread Tools Search this Thread Display Modes
Old 16th November 2012, 20:46   #21  |  Link
lil'jerry
Guest
 
Posts: n/a
IJust wanted to say thanks for providing this. After seeing the announcement for AvxSynth I was thinking of porting DGIndex to something cross-platform but got discouraged by the fact that it's a huge mass of spaghetti code. But after seeing this post, I've started up again a few days ago this time starting from scratch and just re-implementing core features (generating d2v files, demuxing video/audio, d2v fixer, etc.) and leaving out all the other cruft (AC3 decoding, audio resampling, cropping filter, luminance filter, etc). Right now, I have d2v generation and demuxing working and I'm getting identical results to DGIndex in my limited tests. I'm trying to finish up the last few features I want supported and trying to test it as much as possible. Should have something by mid next week for others to test and I'll throw the code up on github. It's written for Qt and uses ffmpeg libs for parsing/demuxing of the streams.

Last edited by lil'jerry; 17th November 2012 at 15:55.
  Reply With Quote
Old 19th November 2012, 13:50   #22  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,907
Quote:
Originally Posted by lil'jerry View Post
IJust wanted to say thanks for providing this. After seeing the announcement for AvxSynth I was thinking of porting DGIndex to something cross-platform but got discouraged by the fact that it's a huge mass of spaghetti code. But after seeing this post, I've started up again a few days ago this time starting from scratch and just re-implementing core features (generating d2v files, demuxing video/audio, d2v fixer, etc.) and leaving out all the other cruft (AC3 decoding, audio resampling, cropping filter, luminance filter, etc). Right now, I have d2v generation and demuxing working and I'm getting identical results to DGIndex in my limited tests. I'm trying to finish up the last few features I want supported and trying to test it as much as possible. Should have something by mid next week for others to test and I'll throw the code up on github. It's written for Qt and uses ffmpeg libs for parsing/demuxing of the streams.
Please rename the tool as I prefer to keep the DG imprimatur for my stuff. Thank you.

Last edited by Guest; 19th November 2012 at 15:45.
Guest is offline   Reply With Quote
Old 19th November 2012, 15:21   #23  |  Link
lil'jerry
Guest
 
Posts: n/a
Yes, it will be called something different such as D2VCreator since it shares no code but only shares a similar-looking GUI and a subset of functionality of the DGIndex/DVD2AVI programs.
  Reply With Quote
Old 19th November 2012, 15:45   #24  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,907
Great, thanks very much and good luck with the project!
Guest is offline   Reply With Quote
Old 19th November 2012, 21:36   #25  |  Link
lil'jerry
Guest
 
Posts: n/a
Hey Daemon in looking at your code it seems you ignore the "field operation" flag in the D2V file. Are you planning to support this?
  Reply With Quote
Old 19th November 2012, 22:13   #26  |  Link
Daemon404
Registered User
 
Join Date: Mar 2005
Posts: 128
Quote:
Originally Posted by lil'jerry View Post
Hey Daemon in looking at your code it seems you ignore the "field operation" flag in the D2V file. Are you planning to support this?
I'm not sure. Its use seems rather dubious... it doesn't do anything that can't be done elsewhere, as far as I can see?

As a side note, new beta is posted, this time with a MinGW build as well, which has inline assembly and should be faster.

Changlog here, because I'm lazy: https://github.com/dwbuiten/d2vsourc.../beta2...beta3
Daemon404 is offline   Reply With Quote
Old 19th November 2012, 22:18   #27  |  Link
Keiyakusha
契約者
 
Keiyakusha's Avatar
 
Join Date: Jun 2008
Posts: 1,577
Daemon404
Hi. You mentioned gui before, but I don't see it. It is not yet ready, right?
Anyway I want to make feature request for it - please don't forget some kind of indication where vobs,cells start/end so we can easily cut exactly at these points. Of course if cutting will be part of the subset at all.
Keiyakusha is offline   Reply With Quote
Old 19th November 2012, 22:23   #28  |  Link
Daemon404
Registered User
 
Join Date: Mar 2005
Posts: 128
Quote:
Originally Posted by Keiyakusha View Post
Daemon404
Hi. You mentioned gui before, but I don't see it. It is not yet ready, right?
Anyway I want to make feature request for it - please don't forget some kind of indication where vobs,cells start/end so we can easily cut exactly at these points. Of course if cutting will be part of the subset at all.
I didn't. I think you meant lil'jerry.
Daemon404 is offline   Reply With Quote
Old 19th November 2012, 22:24   #29  |  Link
lil'jerry
Guest
 
Posts: n/a
Quote:
Originally Posted by Daemon404 View Post
I'm not sure. Its use seems rather dubious... it doesn't do anything that can't be done elsewhere, as far as I can see?
How is it dubious? The force film operation is quite useful for soft telecined input files so you don't have to IVTC. Unless your just skipping all the field repeats in decoding anyway.

Quote:
Originally Posted by Keiyakusha View Post
Hi. You mentioned gui before, but I don't see it. It is not yet ready, right?
I'm working on a cloned DGIndex/DVD2AVI right now as I announced above.
  Reply With Quote
Old 19th November 2012, 22:33   #30  |  Link
Daemon404
Registered User
 
Join Date: Mar 2005
Posts: 128
Quote:
Originally Posted by lil'jerry View Post
How is it dubious? The force film operation is quite useful for soft telecined input files so you don't have to IVTC. Unless your just skipping all the field repeats in decoding anyway.
As it is right now, neither VapourSynth nor d2vsource has a concept of a 'field'. I do not feel it is worth the complexity of adding this to d2vsource to achieve something you can easily do outside of it, in the same 'perfect' way. There's no value-add for this feature, as far as I can tell...
Daemon404 is offline   Reply With Quote
Old 19th November 2012, 22:40   #31  |  Link
lil'jerry
Guest
 
Posts: n/a
So then how are you decoding mpeg-2 files with RFF flags set? Are you just always ignoring the repeats or what? ffms2 has the rffmode option that still works under Vapoursynth just as it does under Avisynth. That Vapoursynth has no concept of a field seems irrelevant.

Last edited by lil'jerry; 19th November 2012 at 22:42.
  Reply With Quote
Old 19th November 2012, 22:41   #32  |  Link
Daemon404
Registered User
 
Join Date: Mar 2005
Posts: 128
Quote:
Originally Posted by lil'jerry View Post
So then how are you decoding mpeg-2 files with RFF flags set? Are you just always ignoring the repeats or what?
FFmpeg's stuff handles this, AFAIK.
Daemon404 is offline   Reply With Quote
Old 19th November 2012, 22:43   #33  |  Link
lil'jerry
Guest
 
Posts: n/a
Quote:
Originally Posted by Daemon404 View Post
FFmpeg's stuff handles this, AFAIK.
So then you are pushing through 29.97 with frame repeats even with soft telecine? That seems silly to do. As I mention above, ffms2's rffmode works even under Vapoursynth so that these field repeats can be ignored so IVTC isn't needed.
  Reply With Quote
Old 19th November 2012, 22:45   #34  |  Link
Keiyakusha
契約者
 
Keiyakusha's Avatar
 
Join Date: Jun 2008
Posts: 1,577
Quote:
Originally Posted by Daemon404 View Post
I didn't. I think you meant lil'jerry.
woops, sorry! yes, lil'jerry!
Keiyakusha is offline   Reply With Quote
Old 19th November 2012, 22:46   #35  |  Link
Daemon404
Registered User
 
Join Date: Mar 2005
Posts: 128
Quote:
Originally Posted by lil'jerry View Post
So then you are pushing through 29.97 with frame repeats even with soft telecine? That seems silly to do.
Again, this is EASILY worked with outside of d2vsource, and I do not want to fill it with unrelated cruft. Why are people so obsessed with ~everything done in the source filter~? I have very purposely not implemented several of DGDecode's bloat features. It sounds to me like all this feature accomplishes is adding a slight convenience, in exchange for a lot more complexity.

EDIT: It is feasible, however, to return rff flags as part of the frame metadata for other filters. Like hinting in AVS.
Daemon404 is offline   Reply With Quote
Old 19th November 2012, 22:46   #36  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,493
Quote:
Originally Posted by lil'jerry View Post
So then you are pushing through 29.97 with frame repeats even with soft telecine? That seems silly to do. As I mention above, ffms2's rffmode works even under Vapoursynth so that these field repeats can be ignored so IVTC isn't needed.
HAHAHA!

Got ya!

I deleted the rff code from the vs side of ffms2 because I was lazy. NANANA
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 19th November 2012, 22:53   #37  |  Link
jackoneill
unsigned int
 
jackoneill's Avatar
 
Join Date: Oct 2012
Location: 🇪🇺
Posts: 760
Quote:
Originally Posted by lil'jerry View Post
So then you are pushing through 29.97 with frame repeats even with soft telecine? That seems silly to do. As I mention above, ffms2's rffmode works even under Vapoursynth so that these field repeats can be ignored so IVTC isn't needed.
OR, you could just open a progressive DVD with d2vsource and see that it ignores those flags.
__________________
Buy me a "coffee" and/or hire me to write code!
jackoneill is offline   Reply With Quote
Old 19th November 2012, 22:58   #38  |  Link
TheFluff
Excessively jovial fellow
 
Join Date: Jun 2004
Location: rude
Posts: 1,100
Quote:
Originally Posted by lil'jerry View Post
So then you are pushing through 29.97 with frame repeats even with soft telecine?
The other way around. ffmpeg ignores repeat fields when decoding, so you get only the coded frames. If you want to add the "missing" fields in the correct places you can do so by examining the frame PTS's, I believe. Or if you want to make your life easy just put the repeat_pict number in a per-frame property.

Last edited by TheFluff; 19th November 2012 at 23:02.
TheFluff is offline   Reply With Quote
Old 20th November 2012, 00:13   #39  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,907
I find this discussion amusing. The source filter is the last one to know about the RFF flags, so if repeated fields are going to be honored, that is the right place to do it. And to coordinate with random access by frame number...it has to take into account the repeats. This stuff is hardly "cruft", if you want to do things in a half-assed way, fine, it's your choice, but don't try to blame someone that has done the right thing.

There are lots of streams with irregular pulldown and ones with mixtures of hard and soft pulldown. If you want to have a hope of processing those correctly, you are going to need to honor repeat flags.
Guest is offline   Reply With Quote
Old 20th November 2012, 00:40   #40  |  Link
Daemon404
Registered User
 
Join Date: Mar 2005
Posts: 128
Quote:
Originally Posted by neuron2 View Post
I find this discussion amusing. The source filter is the last one to know about the RFF flags, so if repeated fields are going to be honored, that is the right place to do it.
I respectfully disagree. It adds needless complexity to a source filter. The better idea is add it to the frame metadata in VapourSynth, and have a separate filter handle it (IVTC filter, perhaps). There is absolutely no reason to burden the source filter with this, whose job is not to mess with the frames.

Quote:
Originally Posted by neuron2 View Post
And to coordinate with random access by frame number...it has to take into account the repeats.
Um, no. There's is no reason you need RFF flags for "proper" random access. In fact, you shouldn't even have to 'expand' them at all. I'm curious how you define "proper" here.

Quote:
Originally Posted by neuron2 View Post
This stuff is hardly "cruft", if you want to do things in a half-assed way, fine, it's your choice, but don't try to blame someone that has done the right thing.
"Right thing" is subjective here, and you also seem to be bogged down in AviSynth's and its filters' limitations. Your way is merely one way to do it. And for what it's worth, DGDecode has plenty of cruft. It's like a bunch of stuff that just happens to have a source filter in it. How many people actually think BlindPP(), Deblock(), LumaYV12(), or the pp, showQ, cpu, cpu2, etc params of MPEG2Source() are even useful in 2012? Were they ever useful? It's cruft-level is libpostproc-like (which actually does something similar).

Quote:
Originally Posted by neuron2 View Post
There are lots of streams with irregular pulldown and ones with mixtures of hard and soft pulldown. If you want to have a hope of processing those correctly, you are going to need to honor repeat flags.
I've been working with hybrid material (in YATTA, anime obviously) with all sorts of crap like that for about about a decade now. As I said, there is absolutely no reason to handle this in the source filter when you have standard metadata for frames.

P.S. You should take a look at how I'm actually using FFmpeg before you make such statements in the future.

Last edited by Daemon404; 20th November 2012 at 02:39. Reason: s/work/worth/
Daemon404 is offline   Reply With Quote
Reply

Tags
d2v, dgindex, vapoursynth

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 11:18.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, vBulletin Solutions Inc.