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. |
21st August 2005, 13:58 | #1 | Link |
Moderator
Join Date: Nov 2001
Location: Netherlands
Posts: 6,364
|
puzzled by DoubleWeave and SeparateFields
I'd like some help in understanding the behaviour of DoubleWeave and SeparateFields.
Consider the following script: Code:
b = blankclip(width=720, height=288, color=$000000) w = blankclip(width=720, height=288, color=$ffffff) Interleave(b,w).AssumeFieldBased.Weave Next script: Code:
b = blankclip(width=720, height=288, color=$000000) w = blankclip(width=720, height=288, color=$ffffff) Interleave(b,w).AssumeFieldBased.Weave DoubleWeave Ok, it all makes sense up to here. Next script: Code:
b = blankclip(width=720, height=288, color=$000000) w = blankclip(width=720, height=288, color=$ffffff) Interleave(b,w).AssumeFieldBased.Weave DoubleWeave SeparateFields |
21st August 2005, 14:02 | #2 | Link |
brainless
Join Date: Mar 2003
Location: Germany
Posts: 3,653
|
that is correct!
assume this: assumefieldbased.weave() -> every frame is BFF an additional doubleweave() lets every other frame being TFF (fieldorder reversed!) this is, why doubleweave().selectodd() can change the fieldorder seamlessly
__________________
Don't forget the 'c'! Don't PM me for technical support, please. |
21st August 2005, 14:33 | #3 | Link |
Clouded
Join Date: Jul 2003
Location: Cambridge, UK
Posts: 1,148
|
... but that is a bit troubling because as Wilbert says, a clip (or more precisely a VideoInfo) contains top field first/bottom field first information...
Edit: congrats on 2000, scharfis!
__________________
a.k.a. Clouded. Come and help by making sure your favourite AVISynth filters and scripts are listed. |
21st August 2005, 14:44 | #4 | Link |
brainless
Join Date: Mar 2003
Location: Germany
Posts: 3,653
|
huh, completely missed the 2nd thousand post.
try doubleweave().info() and you'll see, that TFF and BFF are alternating, which is correct.
__________________
Don't forget the 'c'! Don't PM me for technical support, please. |
21st August 2005, 14:58 | #5 | Link |
Clouded
Join Date: Jul 2003
Location: Cambridge, UK
Posts: 1,148
|
Yup, I believe you, it's just that (as well as whatever per frame stuff) it is possible for filters to request this information for the entire clip -- which means that there is an implicit assumption that either the entire clip is TFF or that it is BFF. So finding out that it can vary from frame to frame is a bit troubling...
I could be wrong here! I will check more carefully when I have some more time...
__________________
a.k.a. Clouded. Come and help by making sure your favourite AVISynth filters and scripts are listed. |
21st August 2005, 15:36 | #7 | Link | |
Moderator
Join Date: Nov 2001
Location: Netherlands
Posts: 6,364
|
Quote:
So, it is possible to write a filter with returns the first three frames as BFF, next two as TFF, next ten as BFF, etc ... ? Just to give an example Is there a way of knowning whether frame X is BFF or TFF? |
|
21st August 2005, 16:03 | #8 | Link |
Moderator
Join Date: Nov 2001
Location: Netherlands
Posts: 6,364
|
Ok, another question which is bothering me.
Consider Code:
b = blankclip(width=720, height=288, color=$000000) w = blankclip(width=720, height=288, color=$ffffff) Interleave(b,w).AssumeFieldBased.Weave # white, black, white, ... Next script: Code:
b = blankclip(width=720, height=288, color=$000000) w = blankclip(width=720, height=288, color=$ffffff) Interleave(b,w).AssumeFieldBased.Weave # white, black, white, ... ReverseFieldDominance(false) # black, white, black, ... The problem is that if i put Code:
subtitle(string(GetParity())) # false = BFF; true = TFF edit: oh god, i'm getting complete nuts. I thought that GetParity indicates the field-dominance, right? Code:
b = blankclip(width=720, height=288, color=$000000) w = blankclip(width=720, height=288, color=$ffffff) Interleave(b,w).AssumeFieldBased.Weave # white, black, white, ... Subtitle(string(GetParity())) # false = BFF; true = TFF Code:
b = blankclip(width=720, height=288, color=$000000) w = blankclip(width=720, height=288, color=$ffffff) Interleave(b,w).AssumeFieldBased.Weave # white, black, white, ... AssumeTFF # white first after SeparateFields Subtitle(string(GetParity())) # false = BFF; true = TFF But if i use SwapFields (which doesn't change the field dominance) GetParity returns true: Code:
b = blankclip(width=720, height=288, color=$000000) w = blankclip(width=720, height=288, color=$ffffff) Interleave(b,w).AssumeFieldBased.Weave # white, black, white, ... SwapFields Subtitle(string(GetParity())) # false = BFF; true = TFF Last edited by Wilbert; 21st August 2005 at 16:30. |
|
|