wxQtMovie 0.0.1

Hi Kevin,

>Read the readme for installation instructions. It should be pretty simple, almost as
>easy as "pythonw setup.py install" thanks to Robin's adding support for "external"
>component building. =) Also, I included a very basic demo that loads movies and
>lets you programmatically play/stop/pause them.
Unless I'm missing something,
wxSound in OSX cvs supports this also - and it works on windows too.

Ryan

Hi Ryan,

wxSound may be able to play movies, but as a "control" it is not particularly useful - it is not based off wxWindow and therefore can't be embedded properly into a wxFrame, wxNotebook, etc. Furthermore, wxSound is not designed to have a GUI at all, so obviously we can't size it, position it, show the movie controller, etc. nor can we pause it or set the play speed. (Which, as you can see if you look at Transana, is necessary functionality for David.) We could, as you point out in your other message, get the movie then create a GWorld, and clip it, size it, position it, etc. and add all the extra features, but I'd rather just use CreateMovieControl and let Carbon take care of all that for us, even if it is not compatible across platforms. Lastly, I would think that a wxSound object playing a video would most definitely qualify as a "hidden feature" that most people wouldn't realize existed. :wink:

So I definitely do think we need two classes for this. If anything, we should separate the guts of the movie loading and management code to a separate non-GUI class, but I don't see there to be a big need for that. We're talking about a couple dozen lines of redundant code at this point, considering Windows compatibility is not a big deal, IMHO. I don't think wxQtMovie has much more work to be useful on Mac, and I really think it'd be much quicker and more productive to tell developers to simply use WMP on Windows rather than go through all the work of manually managing GWorlds and the like to make it all work on Windows. ;-/

If someone were to wrap wxQtMovie and WMP (and ??? on Linux?) to provide a consistent interface for embedding a media player in wxWidgets, now that would be a nice bonus, but I don't have time for that at the moment.

Thanks,

Kevin

···

On Aug 30, 2004, at 7:04 AM, Ryan Norton wrote:

Hi Kevin,

>Read the readme for installation instructions. It should be pretty simple, almost as
>easy as "pythonw setup.py install" thanks to Robin's adding support for "external"
>component building. =) Also, I included a very basic demo that loads movies and
>lets you programmatically play/stop/pause them.
Unless I'm missing something,
wxSound in OSX cvs supports this also - and it works on windows too.

Ryan

---------------------------------------------------------------------
To unsubscribe, e-mail: wxPython-dev-unsubscribe@lists.wxwidgets.org
For additional commands, e-mail: wxPython-dev-help@lists.wxwidgets.org

I definitely would like to see a cross-platform control, even if that means Linux is not part of the initial target. Having the same API and events is the key. Since WMP can't play QuickTime movies and QuickTime can't play certain W?? formats on the Mac, there is a need to support both QT and WMP. I don't know how codecs are shared. I suppose this is a bit like the image handlers we have to use today. Given a particular file extension or file where the header will tell you info about the file you'll need to use a particular viewer. Then you'll expect to be able to at least play, pause, stop, rewind, jump to particular offset, etc.

Given the limitations of HtmlWindow, I have conditional code that on Windows will use the wrapped IE control instead, but the simplified API I use makes using either transparent. To support all of the API and events is a problem as you're probably finding if you want to use the wrapped IE control on Windows and Mozilla on the Mac and Linux...

ka

···

On Aug 30, 2004, at 9:41 AM, Kevin Ollivier wrote:

So I definitely do think we need two classes for this. If anything, we should separate the guts of the movie loading and management code to a separate non-GUI class, but I don't see there to be a big need for that. We're talking about a couple dozen lines of redundant code at this point, considering Windows compatibility is not a big deal, IMHO. I don't think wxQtMovie has much more work to be useful on Mac, and I really think it'd be much quicker and more productive to tell developers to simply use WMP on Windows rather than go through all the work of manually managing GWorlds and the like to make it all work on Windows. ;-/

Hi Kevin,

So I definitely do think we need two classes for this. If anything, we should separate the guts of the movie loading and management code to a separate non-GUI class, but I don't see there to be a big need for that. We're talking about a couple dozen lines of redundant code at this point, considering Windows compatibility is not a big deal, IMHO. I don't think wxQtMovie has much more work to be useful on Mac, and I really think it'd be much quicker and more productive to tell developers to simply use WMP on Windows rather than go through all the work of manually managing GWorlds and the like to make it all work on Windows. ;-/

I definitely would like to see a cross-platform control,

Yes, but a complete wxQtMovie for Windows would be a lot of work. On Windows, I need to get a lot more low-level with the event loop and with the drawing, moving, etc. routines, and that's not something I'm very anxious to start working on, to be honest. ;-/ (I'm having enough fun with Mozilla as it is!)

even if that means Linux is not part of the initial target. Having the same API and events is the key. Since WMP can't play QuickTime movies

Are you sure about this one? I thought WMP was able to play QuickTime files, though I doubt the support is quite as good as Qt itself.

and QuickTime can't play certain W?? formats on the Mac, there is a need to support both QT and WMP.

Yeah, but there's no way to embed WMP on the Mac anyways (that I know of), so to really get comprehensive support for playing various files on various platforms, we'll either need to create a separate control which lets us embed Netscape plugins (which apparently someone did some time back, though no one has ever shown any code!) or just spawn the movie in a separate window.

I don't know how codecs are shared. I suppose this is a bit like the image handlers we have to use today. Given a particular file extension or file where the header will tell you info about the file you'll need to use a particular viewer. Then you'll expect to be able to at least play, pause, stop, rewind, jump to particular offset, etc.

I don't think codecs are really shared among viewers. (This may be different with OSS video players, of course.) Actually, since several players can play several formats all with varying degrees of success, it seems to me it's a bit of a guessing game as to which would be the "best" player for a particular format/file. For WMV/AVI and MOV, it's obvious, but MPEG, DiVX, etc. gets really tricky...

Given the limitations of HtmlWindow, I have conditional code that on Windows will use the wrapped IE control instead, but the simplified API I use makes using either transparent. To support all of the API and events is a problem as you're probably finding if you want to use the wrapped IE control on Windows and Mozilla on the Mac and Linux...

On the browser side, we definitely plan on a wrapper API among the various native browsers out there. That will probably be one of the big things coming with 2.8 (3.0???), particularly once I've got wxMozilla and wxWebKit working a bit smoother on Mac.

Thanks,

Kevin

···

On Aug 30, 2004, at 9:58 AM, Kevin Altis wrote:

On Aug 30, 2004, at 9:41 AM, Kevin Ollivier wrote: