| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
This is an API change.
This property had been unused for a couple of months. Basically the use
of shaders depends on runtime detection.
For those who still do not want to use the colorspacing shaders, you can
use a capsfilter before the clutter sink to request RGB. See
tests/test-rgb-upload.c for an example of doing just that.
|
|
|
|
|
| |
* Be sure to include licensing information
* Update the Copyright assignment when needed
|
|
|
|
|
| |
This would otherwise result in crashes when the actor lives longer than
the sink.
|
| |
|
|
|
|
| |
Query the number of texture units one can use in a shader using COGL.
|
|
|
|
|
|
|
|
|
|
|
| |
We should not need this as the direction towards the video-sink would
like to go is to detect the GL capabilities at run time. It's a good
occasion to get rid of the direct glUniform1iARB() calls and use
cogl_program_uniform_1i() instead.
Another change has sneaked in this commit: GL_MAX_TEXTURE_UNITS_ARB was
changed to GL_MAX_TEXTURE_UNITS as both GL and GL ES should have this
define.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The headers with the ARB fp1.0 shaders are generated by the Cg compiler.
However, it's quite common not to have that compiler (and automated
build systems are quite unlikely able to have it) so we ship these
generated headers in tarballs and commit them to the git repository.
Now we want to be able to do out of tree builds with and without the Cg
compiler. Including both $top_builddir/clutter-gst/shaders and
$top_srcdir/clutter-gst/shaders (in that order) fix all the cases.
This also fix make distcheck.
|
|
|
|
|
| |
This function was never intended to be a public symbol, mark it static
as it should have been done since its introduction.
|
|
|
|
|
|
| |
Mimic Clutter with stricter warnings and the use of David Schleef's
AS_COMPILER_FLAG macro.
Fix a small shadow variable warning introducted by these flags.
|
|
|
|
| |
CLEANFILES is already defined, append the needed files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of manually binding the higher layer textures when rendering a
YUV image it now just sets the material layers. This is necessary now
that Clutter stores the texture filter settings in the material rather
than the Cogl texture. This meant that nothing was changing the GL
filter settings from GL_LINEAR_MIPMAP so the texture lookups would
fail.
It should also avoid potential bugs if anything else in the scene is
using multi-texturing because it won't conflict with Cogl's cache of
which texture units are enabled.
The test for the multi-texturing API has been removed and instead it
just checks that the number of layers is at least 3. The API is
available since OpenGL 1.2 and Clutter requires at it to run so it is
not necessary to check.
|
|
|
|
|
| |
The way this is done no longer works with clutter master. Also updated
creation of timeline in example to newer API.
|
|
|
|
|
|
|
|
|
| |
The cogl_texture_new* functions do not have the max_waste argument
anymore; texture slicing can be disabled by using the:
COGL_TEXTURE_NO_SLICING
CoglTextureFlag.
|
|
|
|
|
| |
No more COGL{int,uint,enum}, CGL_LINEAR replaced by COGL_TEXTURE_FILTER_LINEAR
and CGL_FRAGMENT_SHADER by COGL_SHADER_TYPE_FRAGMENT.
|
|
|
|
|
|
|
|
| |
The assembly shader arrays are supposed to be NULL-terminated arrays of
pointers. My system was very kind and never crashed but this can't be
expected in the wild where evil segfaults reign.
Yes, this is embarassing.
|
|
|
|
|
|
|
|
|
|
| |
In some circumstances, one may want to build the library without having
a python interpreter around (eg. fresh git checkouts in windows) or
simply does not want to add python as a dependency to build clutter-gst
(eg in an automated build environment).
Let's just add the headers generated by pso2h.py in the repository and
tweak the Makefile targets according to python detection.
|
|
|
|
|
|
| |
This is pretty straightforward as I420 and YV12 are very close. I chose
to have a separate fragment program (instead of say swapping the texture
units and use the I420 fp). It debatable though.
|
|
|
|
|
| |
cogl_texture_new_from_date takes a CoglTextureFlags, let's just use this
enum.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Things are a bit convoluted:
* we want to keep GLSL shaders (eg OpenGL ES 2.0 does not have
the GL_ARB_fragment_program extension)
* we want to default to assembly fragment programs as they will support
as broader range of hardware
Now, those fragment programs are written in Cg, compiled with the Cg
compiler and its arbfp1 profile and then turned into a header file
thanks to a small python script. Sounds fun isn't it?
As people may not want to install the Cg compiler, let's commit the
actual fragment program. The configure script will detect if you have
cgc and add targets to build the pso file accordingly.
|
|
|
|
|
| |
Now, we can easily add two renders for the same video format on the
basis first found, used.
|
|
|
|
|
|
|
| |
Caps are now built at runtime, after having discovered what the
underlying openGL features.
use_shaders was used in get_caps() to switch between RGB and YUV caps.
We now just advertise what we are able to do.
|
| |
|
| |
|
|
|
|
|
| |
Just to be coherent (and let's not use anything related to a Microsoft
format in a clutter sink).
|
|
|
|
|
|
|
|
|
|
| |
This structure is meant to abstract the work we have to do to actually
paint a frame. This way we can provide several backends to render the
same frame format (eg. between GLSL shaders or ARB fp1.0 fragment
programs) or build the caps of the GStreamer sink at run time after
having probed the GL implementation.
I420 and YV12 have been converted to work with this new abstraction.
|
| |
|
|
|
|
|
|
|
| |
This does not change the API as properties' names are canonicalized.
From GOject's manual: parameter names need to start with a letter
(a-z or A-Z). Subsequent characters can be letters, numbers or a '-'.
All other characters are replaced by a '-' during construction.
|
|
|
|
|
|
|
|
|
| |
Removes a race condition where an idle handler could still be called
after the video sink instance had been destoroyed.
As a side effect, we don't queue buffers anymore but discard the
incoming buffer if one is already queued for drawing.
Fixes: #1439, #1336
|
|
|
|
|
| |
We already have a YV12 shader, I420 is just about swapping the two
chroma planes.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The :duration property is now stored using a double in order to
provide fractions of a second. The semantics haven't changed: just
the amount of precision.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ClutterMedia interface has been changed to fix bug 1404 and
bug 1403. As of commit 5a4f9c50 on clutter-core, the implementations
of ClutterMedia must only override the GObject properties defined
by the interface.
This commit also updates the examples to the API changes in
Clutter core, especially the ClutterText actor superceding the
ClutterLabel used in the audio and video-player examples. The
video-player example has also been changed to use the new Implicit
Animations API.
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.ac:
* Makefile.am:
* clutter-gst/Makefile.am: Bump to 0.9 and require Clutter
from trunk.
* clutter-gst/clutter-gst-video-sink.c:
* clutter-gst/clutter-gst-util.c: Include <clutter/clutter.h>
and not sub-headers, now that we can't.
|
|
|
|
|
|
| |
* The ClutterMedia interface defines volume control to be get/set
using a value ranging from 0.0 - 1.0. This commit fixes a broken
behaviour of 0.0 - 10.0
|
|
|
|
|
| |
* clutter-gst/Makefile.am: Do not install the private
clutter-gst-shaders.h header.
|
|
|
|
|
|
|
|
| |
* clutter-gst/clutter-gst-video-sink.c
(clutter_gst_video_sink_init), (clutter_gst_yv12_paint),
(clutter_gst_yv12_post_paint):
Use cogl_get_proc_address to retrieve glActiveTexture function.
Fixes building on platforms with old OpenGL headers.
|
|
|
|
|
| |
(clutter_gst_video_sink_idle_func):
s/CoglHandle */CoglHandle/ typos
|
|
|
|
|
| |
(clutter_gst_video_sink_init), (clutter_gst_video_sink_idle_func):
Use cogl_get_proc_address to get the glUniform1iARB function pointer
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* NEWS:
* README:
Update for release
* Makefile.am:
* clutter-gst.pc.in:
* clutter-gst/Makefile.am:
* configure.ac:
Update version to 0.8
* clutter-gst/clutter-gst-video-sink.c:
(clutter_gst_video_sink_set_property):
Notify on change of use_shaders property
|
|
|
|
|
| |
(clutter_gst_video_sink_set_caps):
Don't forget to reset bgr flag when using the AYUV shader
|
|
|
|
|
| |
(clutter_gst_video_sink_idle_func):
Don't forget to wrap YV12 shader bits with CLUTTER_COGL_HAS_GL
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove unneeded bits
* clutter-gst/clutter-gst-video-sink.c
(clutter_gst_video_sink_base_init), (clutter_gst_video_sink_paint),
(clutter_gst_yv12_paint), (clutter_gst_yv12_post_paint),
(clutter_gst_video_sink_set_shader),
(clutter_gst_video_sink_idle_func),
(clutter_gst_video_sink_render), (clutter_gst_video_sink_get_caps),
(clutter_gst_video_sink_set_caps),
(clutter_gst_video_sink_dispose),
(clutter_gst_video_sink_set_property),
(clutter_gst_video_sink_get_property),
(clutter_gst_video_sink_class_init):
Improve shader support, add multi-texturing YV12 acceleration, add
use_shader property (default FALSE), improve shaders, add support for
24-bit RGB/BGR textures
* configure.ac:
Update for clutter 0.8
* examples/video-player.c (main):
Enable shader use
|
|
|
|
|
|
|
|
|
|
|
| |
* clutter-gst/clutter-gst-shaders.h:
Add some shader setup defines, taken from clutter test-shaders
* clutter-gst/clutter-gst-video-sink.c
(clutter_gst_video_sink_base_init),
(clutter_gst_video_sink_idle_func),
(clutter_gst_video_sink_set_caps):
Add shaders to decode YUV and YV12 data. YV12 is disabled by default
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug 978 - Inclusion of <gdk-pixbuf/gdk-pixbuf.h> in
clutter-gst-video-texture.h
* Makefile.am:
* clutter-gst/Makefile.am: Substitute 0.6 with 0.7.
* clutter-gst/clutter-gst-video-texture.h: Remove inclusion
of gdk-pixbuf.h: Clutter-GST does not depend on GdkPixbuf. (978,
Haakon Sporsheim)
* examples/video-player.c:
(input_cb): Use clutter_actor_get_transformed_position().
(main): Remove unused GdkPixbuf variable.
|
|
|
|
|
| |
* clutter-gst/clutter-gst-video-texture.c:
Use new 'disable-slicing' prop on video texture.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.ac: Depend on clutter-0.7.
* clutter-gst/clutter-gst-video-texture.c:
(clutter_gst_video_texture_new): Use :disable-slicing instead
of the :tiled property.
* examples/video-player.c:
(control_tl_cb), (show_controls),
(input_cb), (main): Update for upstream API changes.
|
|
|
|
|
| |
* clutter-gst/clutter-gst-audio.[ch]:
Add clutter_gst_audio_get_playbin ()
|