Log in

View Full Version : DGMVCSource


Pages : [1] 2 3 4 5 6 7 8 9 10 11

Guest
2nd January 2014, 17:20
This is something that could be fun to work on. But does Intel Media SDK require Haswell with QuickSync and all that? I have only i7 980X Gulftown at this time.

If I made it I would release under suitable re-usable license, not like DGDecNV.

Seems now it requires also Win7 which makes thing difficult for me at this time. Maybe it's time for me to get into the current century. :)

EDIT: The current DGMVCSource version will always be linked here:

http://neuron2.net/mine.html

r0lZ
2nd January 2014, 18:33
Thanks for your help. I don't know the exact requirements, but Win7 is probably one, yes. Are you still under XP only?
I don't think the Intel decoder requires special hardware. It can run with hardware optimisation on specific Intel hardware, but it should run without problem on any CPU.

Guest
2nd January 2014, 19:04
Are you still under XP only?
Sadly, yes. I was planning to upgrade OS at my next hardware upgrade. May be time to accelerate that. It's not so easy to upgrade existing systems, as I'm sure you know.

Nico8583
2nd January 2014, 19:14
Thanks a lot neuron2 to consider our demand :)
I accept your help but I have never made Visual Studio 2010 project or Avisynth project, so I'm a beginner :D

Nico8583
2nd January 2014, 19:19
Sadly, yes. I was planning to upgrade OS at my next hardware upgrade. May be time to accelerate that. It's not so easy to upgrade existing systems, as I'm sure you know.
Perhaps could you make a VM with VMWare Player ? :confused:
It's what I do when I need :)

frencher
3rd January 2014, 00:39
Very good idea Nico8583 ;)
Same Thanks slavanap, neuron2 and all to try to help us !

Guest
6th January 2014, 03:05
Started shopping for my new system. :sly:

It will enable me to consider this project and also QuickSync support for DG tools.

r0lZ
6th January 2014, 11:06
Started shopping for my new system. :sly:

It will enable me to consider this project and also QuickSync support for DG tools.Excellent news, Neuron2! I wish you all the best with your new system. :-)

Nico8583
6th January 2014, 11:18
Excellent news, Neuron2! I wish you all the best with your new system. :-)

Very good, thanks a lot !

Guest
6th January 2014, 16:13
Order placed; delivery on Thursday. :p

frencher
6th January 2014, 18:14
Very nice news :D

Nico8583
6th January 2014, 18:33
Order placed; delivery on Thursday. :p
So we can hope a plugin for sunday ? :D
It's a joke of course ;) I hope your new hardware will give you all satisfactions

Sparktank
6th January 2014, 22:35
QuickSync support for DG tools.

Order placed; delivery on Thursday. :p

:'( I'm going to love 2014.

:goodpost:

Guest
6th January 2014, 22:49
I will do my best not to disappoint you. ;)

That one (QuickSync for DGDecNV) will be licensed like DGDecNV, however, while an MVC source filter will be fully open. Don't hate me.

Wilbert
6th January 2014, 23:10
If I made it I would release under suitable re-usable license, not like DGDecNV.
Changed your mind? Pity.

Guest
7th January 2014, 00:27
The MVC source filter will be open. QuickSync for DGDecNV not. I hope it is clear and I edited my post to clarify.

Sharc
7th January 2014, 00:34
I will do my best not to disappoint you. ;)

That one (QuickSync for DGDecNV) will be licensed like DGDecNV, however, while an MVC source filter will be fully open. Don't hate me.

Really good news. Thank you in anticipation :)

r0lZ
7th January 2014, 02:52
Yes. Thanks again!

Guest
7th January 2014, 03:09
While I wait for delivery can anyone point me to, or place here, a concise and complete specification for what the source filter must do? I confess to having little experience in the area of MVC, although obviously I have a lot of experience creating source filters.

r0lZ
7th January 2014, 03:51
I have tried to describe what the current MVCSource plugin does here (http://forum.doom9.org/showthread.php?p=1659623#post1659623).

To summarize, the decoder should ideally be able to take the two demuxed video streams as input (AVC and MVC), and output a single interleaved stream with one frame from one stream followed by one frame from the other stream, and so on. The order of the images (AVC in odd and MVC in even frames or vice versa) must be controlled by a parameter. (Alternative outputs such as side by side or top & bottom combined frames can be considered if you wish, but since avisynth has the possibilities to build them from the interleaved stream, it's not necessary.)

As far as I know, the Intel example CLI command requires a single "combined" AVC+MVC video stream as input. I don't now if the library has the same limitation, but I suppose not, since the current MVCSource plugin can accept the 2 streams. (It can also accept a combined AVC+MVC single stream, but, unless it's easy to do, I don't think it's an useful feature.)

The current plugin can also decode and output the AVC stream only (but it is easy to decode it with other Source commands), or the MVC stream only (more useful, but not really necessary). It can also enable the hardware acceleration feature of the Intel library, but I suppose that that part can be added later, and I'm not sure it is really useful, as I don't know if the required hardware is frequent.

There is currently no audio support in MVCSource, and I don't think we need it.

Of course, it would be nice if the plugin could also accept a MPLS (or SSIF) file as input, but that requires probably some kind of demuxer, and I suppose it's a difficult and long work.

Another feature that is currently missing and that could be a very great improvement is some kind of seek support. Currently, all frames must be decoded sequentially. Not a big deal.

Guest
7th January 2014, 04:08
Thank you, r0lZ, that is very helpful. And the job doesn't sound too difficult.

Of course, it would be nice if the plugin could also accept a MPLS (or SSIF) file as input, but that requires probably some kind of demuxer, and I suppose it's a difficult and long work. Not at all, I already have written an MPLS parser. However, can you please tell me what an SSIF file is? Thank you.

r0lZ
7th January 2014, 04:36
In 2D blu-ray discs, the MPLS references one or several M2TS files. For compatibility reasons, the same thing is true for 3D BDs. But a 3D player "knows" that it must replace the M2TS file(s) (from the BDMV/STREAM directory) with the file(s) with the same base name(s) but with the extension .ssif, from the BDMV/STREAM/SSIF directory. Only the 3D movies have one (or several) SSIF files in that directory. So, for example, 00001.mpls can reference, say, 00010.m2ts, and a 2D-only player will read that M2TS, but a 3D player will read 00010.ssif instead.

The 3D files are in fact made of 2 MPLS files for each "part". (In my previous example, the 2 mpls files can be 00010.m2ts and 00011.m2ts.) The first M2TS contains the AVC video stream and the audio and subtitle streams, exactly like on a 2D BD. The second M2TS contain usually only the MVC stream (but it can also contain subtitle streams, for a reason that I have never understood), and of course, it cannot be decoded by a 2D player, or without the AVC stream from the other file. That second M2TS file is ignored by the 2D players, and is not used when the 3D movie is watched in 2D on a 3D player.

The SSIF file contains the two M2TS files interleaved at the file system level. In other words, the data on disc contained in the SSIF file is the data of the two M2TS file, arranged in such a way that it is possible to read the two files without having to seek continually to different places on the disc. The SSIF file is therefore used when the 3D player must play the movie in 3D, and provides a fast access to the 2 M2TS files.

I don't know how your MPLS parser works, but of course, to decode a 3D movie, it must be able to read the corresponding SSIF file instead of the M2TS, to retrieve also the MVC stream. Or, if you prefer, it should read the two M2TS files at the same time, but I don't know if the second M2TS file is explicitly referenced in the MPLS. Anyway, if it is referenced, it's not in the normal way, as it must not be visible to the 2D-only players.

Sorry if I can't be more technical and explain exactly the differences in the MPLS file format. I have only written a GUI using other tools, and the decoding part is not my speciality. :rolleyes:

Guest
7th January 2014, 05:05
Thanks, it's starting to come together coherently in my aging brain.

Nico8583
7th January 2014, 08:31
Thanks r0lZ for all your explanation :)

Here are some informations about Intel Media SDK (from Intel website or Intel forum) :
- Download Intel Media SDK (http://software.intel.com/en-us/vcsource/tools/media-sdk)
- Download Intel Media SDK tutorial (http://software.intel.com/en-us/articles/intel-media-sdk-tutorial)

Informations about mvc_dec_filter.dll (a DirectShow sample MVC decoder include in Intel Media SDK and open source) :
You should be able to use regular File Source Async Filter to read an MP4 MVC file, then connect it to Intel Media SDK MP4 splitter Filter and further to MVC Decoder Filter.

For rendering you need to use a custom EVR rendering approach as illustrated in the "custom_evr_presenter" sample.

Keep in mind that the Media SDK DirectShow samples are just sample code and may not fit all use cases. You may have to adapt the code to your needs. The binary splitters and muxers provided with the SDK are not fully capable so you may want to explore commercial or community supported split/mux components instead.

Informations about color space and output :
Media SDK decoder only supports output to NV12 format (exception is the JPEG decoder which also supports direct RGB32 output). You can use Media SDK VPP to convert from NV12 to RGB32. If you need other color space format then you will have to use external color space conversion routine.

The Media SDK package includes several DirectShow source code samples.

Media SDK (Windows) samples are supplied with solution/project files for Microsoft Visual Studio.

Thanks !

Guest
7th January 2014, 08:45
Nice, thank you.

I already have fast code to convert NV12 that I can take from DGDecNV. IIRC, it's described in the development log at my website.

Wilbert
7th January 2014, 19:16
The MVC source filter will be open. QuickSync for DGDecNV not. I hope it is clear and I edited my post to clarify.
I misread your post, sorry. Btw, just curious. What is QuickSync?

Guest
7th January 2014, 19:41
"Intel Quick Sync Video is Intel's hardware video encoding and decoding technology, which is integrated into some Intel CPUs."

http://en.wikipedia.org/wiki/Intel_Quick_Sync_Video

It would obviate the need for a supported nVidia graphics adapter for DG tools.

Guest
9th January 2014, 19:55
Bringing up my new machine now...

Oy, Windows 8! Gnyah. Gonna take me a little while to make it usable, create recovery disks, then update to 8.1, and then finally get going on development.

Any recommendations for Windows 7-like shell, etc.? I grant myself this little OT as it will facilitate our goal here. :D

EDIT: For the curious, this is the first PC I have not built myself. It is an ASUS M51AC-US004S. Not bad for $870. The only sucky thing is the keyboard letters are in light gray -- almost invisible! It's OK I have a spare illuminated keyboard in the closet.

r0lZ
9th January 2014, 20:13
I use Classic Shell (http://www.classicshell.net/) to bring the start menu back in Win8, and to boot directly in desktop mode. It is very good and stable, and highly customizable. It has also other features that I have not enabled.
Thanks to Classic Shell, I have almost totally forgiven the start screen and the M$ apps. They are useless anyway.

Guest
9th January 2014, 20:36
:thanks:

Did you update to 8.1?

Nico8583
9th January 2014, 22:05
With Windows 8 or 8.1, you must think to use Windows key on your keyboard and shortcuts, like Windows + X to access a menu with main functionnalities, Windows + R to run a command, etc...

Like r0lZ, I use a little soft to add start menu, it's Start8. There are several others softs like that ;)

Windows 8.1 add a very "useless" button, with it you can switch between Modern UI and desktop, and you boot directly to desktop :)

r0lZ
9th January 2014, 22:37
:thanks:

Did you update to 8.1?
No, not yet. But I think 8.1 is slightly better than 8.0.

Asmodian
10th January 2014, 01:26
Windows 8.1 add a very "useless" button, with it you can switch between Modern UI and desktop, and you boot directly to desktop :)

I actually like that new "start" button from Win 8.1. It has a nice list of options if you right-click it. :)

I too believe 8.1 to be a welcome if minor upgrade from 8.0.

Guest
10th January 2014, 01:45
Thanks guys. I've installed Classic Shell as it lets me pretend I still have WinXP. :D

I won't bother with Win 8.1.

What do I need to build Intel Media SDK? I have MS Visual Studio 2005 Pro. Will that suffice?

Asmodian
10th January 2014, 03:20
Once on 8.0 I don't understand why you wouldn't want 8.1?

Auto login to desktop is worth it by itself.

Sorry, I guess this is a bit off topic. :o

Guest
10th January 2014, 03:35
Once on 8.0 I don't understand why you wouldn't want 8.1?

Auto login to desktop is worth it by itself.

Sorry, I guess this is a bit off topic. :o It's OK, I didn't see anything. ;)

And on another matter I already get boot to desktop from Classic Shell. I may upgrade at some point but I am itching to get the project going, as Nico8583 has set a Sunday deadline. :)

Nico8583
10th January 2014, 08:33
It's OK, I didn't see anything. ;)

And on another matter I already get boot to desktop from Classic Shell. I may upgrade at some point but I am itching to get the project going, as Nico8583 has set a Sunday deadline. :)
Tic tac tic tac, time goes by :D

When I have tried to compile, I have used Visual Studio 2010 but I think 2005 and 2008 works also because when you open a Intel Media SDK project to VS 2010, it asks you to convert it because project files where created in an older version of VS. It needs Windows SDK 7.0 or above also, and that's all if I don't forget anything :)

Guest
10th January 2014, 15:50
Thank you Microsoft. Not! My expensive VC++ 2005 will not install on Windows 8.

Trying 2013 Express.

Guest
10th January 2014, 18:53
2013 Express is a no go as it is missing ATL.

Looks like I have to back off to 2010 and windows SDK 7.1. Hope it will all work on Windows 8.

If somebody that has done this I would really appreciate your help. Thanks.

Guest
10th January 2014, 18:55
I have tested sample_decode.exe with a small clip, and it works well Can you please describe your environment, i.e., VS version, platform SDK, OS, etc. I am running into nightmares trying to get a working environment. Thank you.

Guest
10th January 2014, 19:00
Maybe junk Win8 and install Win7 so I can use my VS 2005 Pro?

noee
10th January 2014, 19:06
NOt sure if this helps, but if you can find the ATL folder from another devenv, copy it to 2013 Express, it may work. WOrked for me with the last LAV compiles with 2013 Express.

Guest
10th January 2014, 19:12
NOt sure if this helps, but if you can find the ATL folder from another devenv, copy it to 2013 Express, it may work. WOrked for me with the last LAV compiles with 2013 Express. Well, I have one from VC 6 :). I can try it, but are you sure it is only the header files that are needed, because that is all that is in there?

r0lZ
10th January 2014, 19:25
Can you please describe your environment, i.e., VS version, platform SDK, OS, etc. I am running into nightmares trying to get a working environment. Thank you.I have only tested the pre-compiled exe included in the SDK as example. I haven't compiled it myself. Sorry, I can't help.

Guest
10th January 2014, 19:29
VC6++ ATL headers don't work. Guess I'm not surprised.

Hmm, thinking...

noee
10th January 2014, 19:32
Yeah, well, I used 2010 version, so I guess I got lucky....

Guest
10th January 2014, 19:42
2010 Express?

Guest
10th January 2014, 19:46
Ha ha. I found a way to install 2005. :D

frencher
10th January 2014, 20:40
Maybe junk Win8 and install Win7 so I can use my VS 2005 Pro?

Yeah version pro = x64 :)

Ha ha. I found a way to install 2005. :D

Yeahhhhhhhhhhh increase compatibility :p

Guest
10th January 2014, 20:51
Just hoping I can dispense with all that ATL crap. We'll see.