Closed GoogleCodeExporter closed 9 years ago
The behavior is as intended.
If its not 100% clear if the file is completely progressive, it'll be marked as
0x81, which basically means its mixed material and the flags on each frame
itself will indicate if its interlaced or progressive. Only if, for example in
mpeg2, the header marks it as progressive_sequence, it'll be set to 0x0.
The media type is only a hint, and as documented by the MSDN, if its set to
"AMINTERLACE_DisplayModeBobOrWeave" (0x80), the flags on every frame indicate
if its interlaced (frame flags of 0 for bottom field first, or
AM_VIDEO_FLAG_FIELD1FIRST for top field first), or a progressive frame (frame
flags of AM_VIDEO_FLAG_WEAVE)
As noted above, the frame flags also indicate which field is supposed to be
shown first, therefor no global setting is applied. Additionally the field
order may change mid-stream, or even on a per frame basis (commonly used with
soft-telecine)
The splitter will never set such flags because it doesn't know, and the decoder
also doesn't need that information.
Original comment by h.lepp...@gmail.com
on 11 Feb 2012 at 12:40
With all due respect,your analisys is wrong. Probably you never used an Hw card
to check the output of your filters (see BlackMagic, AJA, BlueFish Cards)
because could be more easy understand that current lav filtes are unusable for
any broadcast usage or for any visual computing task. That you call an "hint"
is a very important detail because allows some filters to auto adjust the field
order according the ouput capabilities. Probably on VGA monitor you can
consider minimum the impact of this flag but on a PAL Monitor (Usually Field 1)
and NTSC monitor (Usually field 2) this hint is crucial. To try to let
understand the matter please consider we need to convert CirclesandSquares.Mpeg
file (1920x1080@50i -Field1) to a SD DV AVI file (720x576@50i - Field2): so
please check the following graphs: The first uses ivs MPEG2 decoder that
exports the right flag to the medialooks videoscaler filter, This filter only
in this way can automatically downscale our video and if it is set to create a
new stream of 720x576@50i - Field2 swaps the fields and move up one scanline
as required to transform a stream from Field 1 to field2 . In the second graph
(hepp2.jpg) the lav video decoder exports bad flag and the ML videoscaler,
getting both Input and Output Intelace flags unchanged, will not swap the
fields as required and we will get a DV avi file with bad field order. I'cant
believe that a coder with your skill can believe to be still in the right after
this feedback. I will wait hopefully to read your answer. :)
Original comment by roberto....@ivs.it
on 11 Feb 2012 at 5:53
Attachments:
here I've highlighted the relevant details required to convert the
1920x1080@50i Field1 to DV.
Original comment by roberto....@ivs.it
on 11 Feb 2012 at 6:19
Attachments:
Sounds like the software you're using is just not capable of dealing with
per-frame flags. Per-frame is much more accurate then defining one flag for the
whole stream. If every frame has a flag which field is the first, why would you
ever need a global flag?
Like i said, the field order can change mid-stream, and there are a lot of
files were it actually will change - or in the case of telecine switch on every
other frame.
The way it works now is fully compliant to MSDNs documentation.
I have no plans to change this. It works fine in the playback environments i
tested it with, which is my main target.
Original comment by h.lepp...@gmail.com
on 11 Feb 2012 at 6:22
It is very strange because in several years (18),working with several highend
Editing video apps (some as coder or betatester) or working with thousands of
editors I never got a file that changes the field order in middle of stream.
Probably it exists but it is no so usual as you believe.
Medialooks, Mainconcept, Elecard and all other Decoder/Encoder Directshow
filters used in the best Commercial video software are working as I'm reporting
considering that flag as crucial.
I' will try to read again the MSDN pages related to interlacing flags because
also with my curriculum there is always something to learn.
I'd like to try only one transform directshow filter is getting the interlacing
info from frames: I will apreciate if you can list me one.
About Telecine we have worked with it : it works/sorts/mixes the fields in
order to mantain smooth playback without to present bad fields order artifacts
changing the frame rate but the field dominance of resulting media is
necessarily the same for the entire stream duration.
I cant hide my frustration to see a so interesting filter with some features
very powerful like colorspace options that are much better than other not
free/commercial filters to drop on "hint" like dwinterlaceflag remaining
confined to play files on some desktop media player. Some guys could have
noticed that for this task there is already VLC or Media Player Classic.
Only If you will change idea, you will be able really to open your filter to
the closed standadized world, so your coding efforts will result still more
interesting for still more people.
Best Regards
Roberto
Original comment by roberto....@ivs.it
on 12 Feb 2012 at 12:01
Original issue reported on code.google.com by
roberto....@ivs.it
on 11 Feb 2012 at 12:15Attachments: