I finally cracked it. The gstreamer pipeline gets created early, during
construction of the avmedia/source/gstreamer's Player object, yet the
window to play in is only created later, when createPlayerWindow() is
called. To use that window and thus embed video into the document, we have
to set that window's handle to the GstVideoOverlay using
gst_video_overlay_set_window_handle(), but by then it's too late. Either
the pipeline creation would have to be deferred until createPlayerWindow(),
when we know the window to use, or we would have to switch windows
with gst_video_overlay_set_window_handle() a live pipeline. I've done the
latter and it works well. I don't know how it ever worked before, maybe in
gstreamer 0.1 the "prepare-window-handle" event is generated during
createPlayerWindow() but in 1.0 it isn't.

My changes have been committed to SVN trunk in revision 1825700.

Torokhov, Jose, Peter: thank you for all your support. Please test and
report any problems.

Damjan

On Thu, Mar 1, 2018 at 9:25 AM, Damjan Jovanovic <dam...@apache.org> wrote:

> Unfortunately it looks like the problem is harder than just getting it to
> build. Even after fixing some more APIs and getting it to play, a separate
> player window is created. To get the player window to embed like it should,
> we need to set the X window id on the GstVideoOverlay using
> gst_video_overlay_set_window_handle() when a "prepare-window-handle"
> event is delivered for which 
> gst_is_video_overlay_prepare_window_handle_message()
> returns true. But for some mysterious reason 
> gst_is_video_overlay_prepare_window_handle_message()
> never returns true. Forcefully setting the X window id on all events does
> get it to embed, badly, with lots of warnings, and the window gets
> distorted when scrolling and doesn't respond to mouse clicks 🙈.
>
> Damjan
>
>
> On Thu, Mar 1, 2018 at 4:53 AM, Damjan Jovanovic <dam...@apache.org>
> wrote:
>
>> Thank you. The video plays, but in a separate window instead of being
>> embedded in the document. I'll continue trying.
>>
>> Distributing the library separately from the rest of AOO would be
>> difficult. Binary compatibility between Ubuntu and Gentoo, bitness, trunk
>> vs 4.1.5. New UNO components also have to be registered in AOO somehow; I
>> only know how to do it with .component files at compile time.
>>
>> It will likely only end up in SVN trunk, possibly version 4.2.0.
>>
>>
>> On Thu, Mar 1, 2018 at 2:01 AM, Torokhov Sergey <torokhov-...@yandex.ru>
>> wrote:
>>
>>> Hello,
>>>
>>> I created simple presentation file with title and video frame
>>> ("Agent 237:operation barbershop" from Blender Animation Studio).
>>>
>>> https://yadi.sk/d/shOKuCcS3StDk
>>>
>>> The archive contains 327.odp and 327.webm files that must be placed in
>>> the same directory before presentation file .odp is opening.
>>>
>>> The video is playing automatically after pressing F5 key (fullscreen
>>> presentation mode). Or after pressing "Play" button on the bar that
>>> usually appears at the bottom then video-frame of presentation is
>>> selected.
>>> I't work for me in current Apache OpenOffice 4.1.5 and
>>> gstreamer-plugins:0.10.
>>>
>>> As I use Gentoo I installed "gst-plugins-meta:0.10" with next options:
>>>
>>> USE="ffmpeg quicktime http wavpack dv dvb vcd musepack vpx oss libass
>>> lame theora v4l" emerge gst-plugins-meta:0.10
>>>
>>> Also I installed "gst-plugins-ivorbis:0.10" and
>>> "gst-plugins-pango:0.10".
>>>
>>>
>>> Could you also share rebuilded library for testing? Is it compatible
>>> with current AOO 4.1.5 build?
>>>
>>> Thank yo in advance.
>>>
>>> --
>>> Sergey
>>>
>>>
>>>
>>> On Wed, 28 Feb 2018 19:56:42 +0200
>>> Damjan Jovanovic <dam...@apache.org> wrote:
>>>
>>> > I've successfully patched our gstreamer plugin to build with
>>> > gstreamer-1.0, but how do I test it? Does someone have a sample
>>> > document that uses gstreamer?
>>> >
>>> > The patch is attached for anyone interested. Parts may still be
>>> > wrong, eg. filter names. Changes between GStreamer 0.1 and 1.0 are
>>> > documented here:
>>> > https://gstreamer.freedesktop.org/documentation/application-
>>> development/appendix/porting-1-0.html
>>> > https://cgit.freedesktop.org/gstreamer/gstreamer/plain/docs/
>>> random/porting-to-1.0.txt
>>> >
>>> >
>>> >
>>> > On Wed, Feb 28, 2018 at 10:22 AM, Damjan Jovanovic <dam...@apache.org>
>>> > wrote:
>>> >
>>> > > Hi
>>> > >
>>> > > I've begun having a look.
>>> > >
>>> > > We currently test for gstreamer in configure.ac but don't use the
>>> > > result, re-running pkg-config in a main/avmedia's makefile.
>>> > >
>>> > > Changing the version number to 1.0 breaks the build due a missing
>>> > > header file. Removing that "#include" gets it a little further, but
>>> > > it breaks due to changed gstreamer API functions. There is also
>>> > > lots of warnings about deprecated GDK functions. I'll continue
>>> > > trying later.
>>> > >
>>> > > We should really get rid of gstreamer 0.1 ASAP one way or the
>>> > > other: given how it's been unmaintained since 2013, it may well
>>> > > have security vulnerabilities. We can't ship it to users since its
>>> > > license is incompatible, but having users install it separately
>>> > > still invites trouble.
>>> > >
>>> > > Damjan
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
>>> For additional commands, e-mail: dev-h...@openoffice.apache.org
>>>
>>>
>>
>

Reply via email to