Author Topic: DreamMovie  (Read 51677 times)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: DreamMovie
« Reply #15 on: December 29, 2016, 09:34:14 am »
Mike--

For curtain effect, look at the Tron demo here:
http://www.objreader.com/index.php?topic=14.0
or at the "Accordion" here:
http://www.objreader.com/index.php?topic=16.0
this kind of animation would be very easy to add, once i have turned all the CreateWindowEx controls, into GDImage widget.
We could also have a marquee effect to display .srt subtitle while playing video.

Indeed, i would like to have all my media players into one single application.
"MovieBox", "BassBox", "BB64", "BassBox radio", and "Media settings".

About playing videos, many of the new players are based on the latest Mircosoft API, for example:
"Movie and TV", "Netflix", "Molotov".

And several are build upon VLClib, like "Popcorn Time"...

While VLClib works great, it requires a huge Framework.
When using the Microsoft API, there is nothing to install, because everything is already provided by the OS itself.

The main reason why i would like to switch to 64-bit, is because many of the new movies i have, couldn't be played with a 32-bit player, due to their very large size (above 4 Gb).

Did you read what i said about "Media Foundation" vs "Media Session" ?

« Last Edit: December 29, 2016, 10:09:39 am by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: DreamMovie
« Reply #16 on: December 29, 2016, 09:04:23 pm »
I have completed the audio metadata with
- MEDIA_ALBUM
- MEDIA_GENRE
- MEDIA_COVERART

and the result is

Patrice
(Always working with the latest Windows version available...)

Michael Lobko-Lobanovsky

  • Administrator
  • *****
  • Posts: 1481
Re: DreamMovie
« Reply #17 on: December 30, 2016, 01:20:53 am »
Is this what you'd call "Variété Française"?! That's what I'd call "Bollywood kitch"!!

This is what a French chanteuse véritable should sound like dans le genre variété:

https://www.youtube.com/watch?v=ObeDLFcceJ0&list=RD3XRNegs6FdA&index=22

or this:

https://www.youtube.com/watch?v=xxKzzLK4G3k

or this:

https://www.youtube.com/watch?v=EiiW6fHwS9g

Zaz isn't much of a singer; there are (surprisingly) almost no great French voices except perhaps a few you can count by fingers on one hand. But she's so 100% genuine sterling French that she is forgiven in advance for all the notes she's gonna sing flat or sharp now or in the future. :)

Variété is cabaret music, in the sense of Moulin Rouge and Lido. Indila is naked showbiz "pop" with a distinct outre-mer sound. She tries to imitate Shakira while Zaz is pure and original.
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: DreamMovie
« Reply #18 on: December 30, 2016, 09:39:25 am »
Quote
Variété is cabaret music, in the sense of Moulin Rouge and Lido. Indila is naked showbiz "pop" with a distinct outre-mer sound. She tries to imitate Shakira while Zaz is pure and original.
The purpose of the screenshot was {only} to show some of the extra TAG parameters, that could be displayed with the help of the AudioGenie.dll. 8)

...
Patrice
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: DreamMovie
« Reply #19 on: December 30, 2016, 02:58:11 pm »
Mike--

On Windows 10, do you know of a reliable way to retrieve the correct size of a video for MKV and MP4.

In order to get the correct size in the function below, i had first to install a 64-bit codec pack.  :-[

Code: [Select]
#include <Dshow.h>
HRESULT GetVideoSize(IN WCHAR* pszVideoFile) {
    long nW = 0, nH = 0;
    IGraphBuilder *pGraph = NULL;
    IBasicVideo *pVideo = NULL;

    HRESULT hr = CoCreateInstance(CLSID_FilgraphManager, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pGraph));
    if (SUCCEEDED(hr))  {
        hr = pGraph->RenderFile(pszVideoFile, NULL);
        if (SUCCEEDED(hr)) {
            pGraph->QueryInterface(IID_IBasicVideo, (LPVOID *)&pVideo);
            hr = pVideo->GetVideoSize(&nW, &nH);
            pVideo->Release();
        }
    }
zTrace(STRL(nW)); zTrace(STRL(nH));
    SafeRelease(&pGraph);
    return hr;
};

Added:
I made good progress, i shall post a new build by tomorrow with quite a lot of changes.
« Last Edit: December 30, 2016, 10:13:04 pm by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Michael Lobko-Lobanovsky

  • Administrator
  • *****
  • Posts: 1481
Re: DreamMovie
« Reply #20 on: January 01, 2017, 12:36:22 pm »
Season's greets, Patrice! :)

My Windows 10 standard Windows Media Player runs MPEG4 and MKV videos out of the box, and so should yours.

There's not a single 3rd party codec installed on my Windows 10 machine, which means that the both video formats have their respective codecs supplied as part of WMP's standard equipment.

You seem to be using DirectShow to retrieve your data. But according to the MF bible, it is a legacy technique. From the Win 10 perspective, any codec that you're downloading today from elsewhere is a legacy codec. Conversely, using DirectShow implies you must have a legacy codec to communicate with, hence the necessity to install one (or multiple) extra(s).

OTOH IMFTransform is a modern technique, and it is the recommended interface to be used to poll modern codecs that WMP is equipped with.
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: DreamMovie
« Reply #21 on: January 01, 2017, 03:55:44 pm »
Mike--

I had to resort on DirectShow just to retrieve the correct size, so far i didn't find anything in the Media Foundation IMFPMediaPlayer that would do it. Anyway DirectShow is still there, and may be i will give it a try in 64-bit mode, because the 32-bit nVidia driver do not work well in composited mode, while 64-bit is perfrect.

Are you ready for the new build ?

>>Season's greets, Patrice!
Yes, and almost one year older in february ::)

...
« Last Edit: January 01, 2017, 03:58:33 pm by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Michael Lobko-Lobanovsky

  • Administrator
  • *****
  • Posts: 1481
Re: DreamMovie
« Reply #22 on: January 01, 2017, 07:47:20 pm »
... and almost one year older in february ::)

Myself, I'm going to get a year older chronologically this March 3rd, pretty close to your date. :) Keep your chin up! It isn't becoming to be sad at this age, my friend. Praise the Lord because I'm sure you used to know a lot of people who couldn't make it even this far. :)

Quote
Are you ready?

LOL Seems I'm always ready to get, but not always, to give. ;D

Go ahead as ready, Patrice!
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: DreamMovie
« Reply #23 on: January 01, 2017, 08:50:18 pm »
Small change

Code: [Select]
void ShowVideo() {
    if (gP.mediatype == MEDIA_VIDEO) {

        GetVideoSize(gP.bin.lastmedia);
        SetWindowText(gP.hMain, MEDIAcaption(gP.bin.lastmedia));
        ResizeVideoWindow();

        if (!IsWindowVisible(gP.hVideo)) {
            ShowWindow(gP.hVideo, SW_SHOW);
        }
        HWND hCtrl = GetDlgItem(gP.hMain, IDC_VIDEO_ZOOM);
        EnableWindow(hCtrl, TRUE);
        ShowWindow(hCtrl, TRUE);
        if (gP.videoW > 0) {
            WCHAR szText[32];
            HRESULT hr = StringCchPrintf(szText, ARRAYSIZE(szText), L"Video size %dx%d", gP.videoW, gP.videoH);
            if (SUCCEEDED(hr)) { SendMessage(GetDlgItem(gP.hMain, IDC_VIDEO_SIZE), WM_SETTEXT, 0, (LPARAM) szText); }
        }
    } else {
        SetWindowText(gP.hMain, EXEcaption());
    }
    CloseSpinner();
}

} else {
    SetWindowText(gP.hMain, EXEcaption());

was missing...
« Last Edit: January 01, 2017, 08:52:14 pm by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Michael Lobko-Lobanovsky

  • Administrator
  • *****
  • Posts: 1481
Re: DreamMovie
« Reply #24 on: January 02, 2017, 01:34:05 pm »
Hi Patrice,

Here comes my usual report:

1. MKV falls out of the Media Files mask and requires All Files to be selected to gain access to. Otherwise Open File is fine except for item 5 below.

2. URLs are fine everywhere and in all modes.

3. DirectShow is fine with MP4 and MKV under my Win 10 even though there are no legacy codecs installed there.

4. You can't reproduce the D&D problem because you're evidently having your UAC disabled. All my Windows OSes have their UAC and DEP controls set at their "factory" defaults, and D&D is inoperative everywhere if ZMF64 is launched As Admin. This is however a known MS Windows "feature": a program running at a normal priority privilege level (Explorer together with its desktop facility) cannot send messages (D&D included) to an elevated priority privilege application (ZMF64 launched As Admin). Please google for something like "can't drag and drop as admin" to read up more on this phenomenon.

5. DirectShow doesn't work for Matroska MKVs under both of my Win 7's even though I have full 32- and 64-bit CCCP codec packs installed there, and all other 32- and 64-bit video players play back these files just fine. (see the attached screenshot)

6. When I close the error message box as per item 5 above, the spinner stays running on my screen forever making any further use of this instance of ZMF64 ineffective.


So far I wasn't able to spot any visible Easter eggs in this version except:
-- there's no visualizer plugin any more;
-- the intro ("interlude") uses your custom animated PNG format.

Was I supposed to spot anything else? :)
« Last Edit: January 02, 2017, 01:45:48 pm by Michael Lobko-Lobanovsky »
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: DreamMovie
« Reply #25 on: January 02, 2017, 04:51:13 pm »
Mike--

Thank you very much for the report.

>>MKV falls out of the Media Files mask and requires All Files to be selected to gain access to.
Yes, MKV was missing as well as these:
;*.mpeg;*.mpg;*.mov;*.qt;*.mkv;*.flv

>>DirectShow doesn't work for Matroska MKVs under both of my Win 7's even though I have full 32- and 64-bit CCCP codec packs installed there
I remember i had it working with DirectShow on Windows 7, with the PowerBASIC 32-bit MovieBox version.

>>When I close the error message box as per item 5 above, the spinner stays running on my screen forever making any further use of this instance of ZMF64 ineffective.
Shall be fixed in the next build.

>> there's no visualizer plugin any more
I never had OpenGL visual plugin in any of my Video player, but this is on my todo list for this new {universal} player.
But that means i shall have to switch back to DirectAudio (Bass.dll) when playing audio files, and by the way bringing .OGG support back too.

Added:
By the way the D&D problem when running in administrator is not a problem specific to this application, GOOGLE is very prolix on this, but no real solution.
Thus there is nothing i can do to change the Microsoft UAC rules ;)

...
« Last Edit: January 02, 2017, 06:19:28 pm by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
D&D and elevated UAC privilege
« Reply #26 on: January 03, 2017, 09:44:10 am »
Mike--

Please try with the ChangeWindowMessageFilterEx API, to see if it could help to solve the UAC privilege problem with D&D


For most of my applications (including ObjReader) i need to allow these two
Code: [Select]
ChangeWindowMessageFilterEx (hwnd, WM_DROPFILES, MSGFLT_ALLOW, nullptr);
ChangeWindowMessageFilterEx (hwnd, WM_COPYDATA, MSGFLT_ALLOW, nullptr);

...
« Last Edit: January 03, 2017, 09:46:16 am by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Michael Lobko-Lobanovsky

  • Administrator
  • *****
  • Posts: 1481
Re: DreamMovie
« Reply #27 on: January 03, 2017, 08:57:57 pm »
Hehe, nice find, Patrice! :)

I'm currently reading up on it in MSDN -- just seen your message on Jose's forum... :)

But does your message mean that you still can't reproduce the D&D issue on your own PC? Or can you? Have you tried to readjust your UAC settings?
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1983
    • zapsolution
Re: DreamMovie
« Reply #28 on: January 03, 2017, 09:24:02 pm »
>>But does your message mean that you still can't reproduce the D&D issue on your own PC? Or can you? Have you tried to readjust your UAC settings?
I have added the code into the attached version for you to test.

However i have not checked it myself because i am not comfortable with UAC settings.

...
« Last Edit: January 03, 2017, 10:22:27 pm by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Michael Lobko-Lobanovsky

  • Administrator
  • *****
  • Posts: 1481
Re: DreamMovie
« Reply #29 on: January 03, 2017, 10:00:26 pm »
While I'm checking out your latest zip (you can delete it now), please follow the two pictures below: these are Windows 10 Professional factory settings for DEP (untitled1.png) and UAC (untitled2.png) services.


[UPD] Nah, your mods don't seem to help...  :(  My Spy++ (Visual Studio tool) shows that privileged gP.hMain still doesn't receive the WM_DROPFILES message it gets when launched with a usual double click.
« Last Edit: January 03, 2017, 11:15:38 pm by Michael Lobko-Lobanovsky »
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)