Commit Graph

97 Commits

Author SHA1 Message Date
Sebastian Dröge 01389b1d00 emotion gstreamer1: Use refcounting instead of in/out variable counting 2014-01-13 09:50:10 +01:00
Sebastian Dröge 85b17ff7c1 emotion gstreamer1: Simplify pipeline creation
Also remove the webcam support, this could've never worked and
needs to be handled differently.
2014-01-13 09:50:10 +01:00
Sebastian Dröge 072e0bbafd emotion gstreamer1: Some code re-flow in the GStreamer bus handler 2014-01-13 09:50:10 +01:00
Sebastian Dröge 2ff8aafd66 emotion gstreamer1: Use GStreamer's path/URI handling functions instead of writing our own 2014-01-13 09:50:10 +01:00
Sebastian Dröge 0de582b24f emotion gstreamer1: Rename functions and variables for clarity
Also remove some useless variables.
2014-01-13 09:50:10 +01:00
Carsten Haitzler e8c13118eb fix mingw build for setuid fix/checks 2014-01-08 22:06:41 +09:00
Carsten Haitzler b95ef3801f setuid safeness - ensure if an app that is setuid doesn't do bad things
this makes efl ignore certain env vars for thnigs and entirely removes
user modules (that no one ever used) etc. etc. to ensure that *IF* an
app is setuid, there isn't a priv escalation path that is easy.
2014-01-08 19:46:23 +09:00
Cedric Bail e362924c0e emotion: it has already been assumed that 'send' was not NULL before. 2014-01-05 12:07:42 +09:00
Sebastian Dröge 9637c2b835 Major cleanup of the Emotion GStreamer 1.x video sink
Next step: state handling in the GStreamer backend

Reviewers: cedric

CC: cedric

Differential Revision: https://phab.enlightenment.org/D431

Signed-off-by: Cedric Bail <cedric.bail@free.fr>
2014-01-04 11:46:27 +09:00
Stefan Schmidt a440c8da27 emotion: Fix missing include resulting in unknown type GstNavigationCommand
At least on the gstreamer1 version in Fedora 19 this include is needed. Glima
reported it as well and I think he also uses Fedora.

modules/emotion/gstreamer1/emotion_gstreamer.c:643:4: error: unknown type name
'GstNavigationCommand'

Even if other distros or gstreamer1 versions do not need this it should be safe
to add it here.
2014-01-02 13:54:39 +01:00
Carsten Haitzler d16f0ceaf6 emotion - generic - set play after setting mutes and play speed etc. 2013-12-28 11:28:51 +09:00
Sebastian Dröge 0db1818487 emotion: don't duplicate storage of audio/video stream metadata in GStreamer 1.x backend.
Reviewers: cedric

CC: cedric

Differential Revision: https://phab.enlightenment.org/D415

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-27 17:51:20 +09:00
Sebastian Dröge 1875e4725f emotion: remove (broken) X11 integration from the GStreamer 1.x backend.
This code was disabled and did not work properly. If this should be
re-added it will have to be rewritten anyway and currently it only
clutters the existing code.

Reviewers: cedric

CC: cedric

Differential Revision: https://phab.enlightenment.org/D414

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-27 09:56:20 +09:00
Daniel Juyung Seo 76d8532b54 efl: Unified eina critical manro to CRI.
Being annoyed by different types of eina critical macros - CRI, CRIT,
 CRITICAL -, I concluded to unify them to one. Discussed on IRC and
 finally, CRI was chosen to meet the consistency with other macros -
 ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.
2013-12-26 12:27:13 +09:00
Sebastian Dröge 9c752106f7 emotion: initial port of emotion to GStreamer 1.0
Some commits to port emotion to GStreamer 1.0 and implement some missing features,
clean up code a bit and fix some bugs on the way.

This works as good as the 0.10 code for me now with the emotion examples,
just the Samsung hardware specific code is commented out. This should be
ported by someone who has such hardware, and also in a clean way now that
GStreamer since 1.0 has features to handle all this properly.

There's still a lot of potential to clean things up and fix many bugs, and also
to implement zerocopy rendering. But those are for later if there's actual
interest in this at all.

Commits:

- Update configure checks and ecore example to GStreamer 1.0
- Initial port of emotion to GStreamer 1.0
- Samsung specific code commented out, should be ported by someone
with the hardware.
- Return GST_FLOW_FLUSHING when the sink is unlocked
- Remove unused GSignal from the sink
- Use GstVideoInfo to store the format details inside the sink
- Add support for pixel-aspect-ratio
- Store video format information in GstVideoInfo for the different video streams
- Use GstAudioInfo to store the audio format information
- Remove some unused defines
- Header cleanup
- Implement initial support for GstNavigation interface
- Implement setting of audio/video channel

Reviewers: cedric

CC: cedric

Differential Revision: https://phab.enlightenment.org/D387

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
2013-12-23 10:59:42 +09:00
Gustavo Sverzut Barbieri 91a2711225 emotion_generic: fix permissions, resource leaks and error handling.
- create permissions as 0700, this should be private to the running user.

 - do shm_unlink() on error, prevents resource leaks;

 - apply close() on error, prevents resource leaks;

 - handle strerror() properly.

 - shm name uses process id, object name and ecore's time, should be
   cleaner and avoid possible clashes

 - ecore_exe do not need to read from slave stdout/err, this removing
   the flags allows messages to come visible at terminal.
2013-12-21 17:08:35 -02:00
Gustavo Sverzut Barbieri 376ca3f09b fix doc typo, ernno usage and add missing close().
- fix typo, it's slave not slayer... :-D

 - errno: you can't use errno to report error from failed mmap() if
   you do another call that sets errno after that, in that case
   fprintf(). So have a single print so we can use the errno value of
   the proper call.

 - although the slave generic player is not that important if it leaks
   its single shmfd, let's be pedantic and close it. Manpage says it
   is safe to close filedescriptor after mmap() worked.
2013-12-21 15:02:52 -02:00
Carsten Haitzler 1dc9f1fece emotion - generic module - re-order code to make coverty happy
this fixes CID 1039884 which isn't a real problem as the callback del
never dereferences the data pointer - just uses it as a value, but
this is really to ensure that it doesn't come back if the code were to
change.
2013-12-11 19:54:15 +09:00
Carsten Haitzler 69e27abdc3 eina - and e3fl in general - stop using eina_error_get/set - useless really 2013-10-11 16:50:40 +09:00
Davide Andreoli 60a9d16676 emotion_generic: tabs-- 2013-09-01 18:43:13 +02:00
Carsten Haitzler 382f3d5d60 emotion: warnings-- for x overlay/xv. 2013-07-18 20:07:01 +09:00
Carsten Haitzler f9f0b717e6 emotion - fix shutdown to ensure all pending async calls are gone too. 2013-07-18 20:00:22 +09:00
Carsten Haitzler 2e74e41ed3 emotion gst: disable x window under/overlay suport for now. broken badly. 2013-07-17 18:37:03 +09:00
Chris Michael 6e49578cb7 Check for valid string before trying to write (potentially NULL) to
the pipe.

NB: Fixes Coverity CID1039398

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 14:38:54 +01:00
Chris Michael 1d9a19f1ee Check for valid 'send' before trying to call
emotion_gstreamer_buffer_free (which will dereference it).

NB: Fixes Coverity CID1039397

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 14:34:41 +01:00
Chris Michael c58347b0a5 Check for valid 'send' before trying to call
emotion_gstreamer_buffer_free (which will derefence it).

NB: Fixes Coverity CID1039396

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-08 14:33:15 +01:00
Stefan Schmidt ed08c1832c emotion: Another check for engine being NULL.
Missed this second occurance in 8deb75463b.
Now also fixed this potential null pointer dereference when the engine
list is empty.
2013-07-02 09:45:35 +01:00
Stefan Schmidt 8deb75463b emotion: Check engine for NULL before dereferencing.
It might be that our engine list is empty and thus our engine might still
be set to NULL. Better check and return if this is the case instead of
dereferencing NULL.
2013-06-25 14:42:09 +01:00
Sebastian Dransfeld 336f6ec328 efl: formatting 2013-06-20 13:28:18 +02:00
Sebastian Dransfeld 068f1ddc62 efl: formatting 2013-06-20 13:08:36 +02:00
Cedric Bail d92783d5f7 emotion: rename Emotion_Module.h to emotion_modules.h 2013-05-10 10:48:33 +09:00
Carsten Haitzler ab7bd544f8 emotion - free up engine and stuff on obj del, and let smartdata hang
about for eio stuff. hrmmmmf. cedric!!! :)
2013-03-11 16:54:59 +09:00
Cedric BAIL 1121103ecb emotion: improve portability of Emotion Generic by using EFL more. 2013-02-27 21:10:28 +09:00
Stefan Schmidt c24aaf9bd0 efl/emotion: Fix memory leak in gstreamer_ecore_x_check().
The suported atom gets allocated in the ecore_x call but we leave
the scope here without freeing the resource again. Free it when
going out of scope.

SVN revision: 83790
2013-02-08 15:49:56 +00:00
Carsten Haitzler 6bf7dd8775 also check priv->o before..
SVN revision: 83428
2013-01-29 10:45:31 +00:00
Carsten Haitzler c73bf6fd00 emotion - be gooder. (use DEL callback not fREE and .. check priv->o!
SVN revision: 83427
2013-01-29 10:44:44 +00:00
Gustavo Sverzut Barbieri 0099729e09 efl/emotion: fix compile warnings - PLEASE REVIEW.
fixed to be byte array instead of void pointer, did this based on the
code of convert... but what I found very strange is that math is "*
32"... really? Shouldn't it be "* 4"?



SVN revision: 82733
2013-01-13 23:19:34 +00:00
Gustavo Sverzut Barbieri 356d4f733c efl/emotion: rework module infra, better integration with 'generic'.
Change the module infra and allow one to register using the
description structure itself, saves some work.

Replace module_open and module_close with add() and del(), that are
more descriptive.

Move stuff to init/shutdown where it was a better fit.

Since add() now receives the first parameter being the owning
structure we can create one structure per generic player and they will
merge transparently with other modules, then we can use a simple
algorithm that considers the plugin priority. ALL DYNAMIC!

Future work could be done to load the plugin priority specified by
user from configuration file. But this is not in my plans right now.



SVN revision: 82602
2013-01-11 03:06:42 +00:00
Gustavo Sverzut Barbieri 2fb89cc58a efl/emotion: remove init/shutdown from module, it's a subfunction of open/close!
SVN revision: 82600
2013-01-11 00:37:31 +00:00
Gustavo Sverzut Barbieri fbfc442465 efl/emotion: as handle went away, make the API const.
SVN revision: 82599
2013-01-11 00:33:26 +00:00
Gustavo Sverzut Barbieri 619d6033f3 efl/emotion: remove handle from wrong place.
that handle should live elsewhere, it was a hack.



SVN revision: 82598
2013-01-11 00:31:56 +00:00
Gustavo Sverzut Barbieri 8a4248732a efl/emotion: move module stuff.
* do not abuse emotion_private.h by using that in modules
 * split emotion_module.c to allow more changes later.



SVN revision: 82592
2013-01-10 22:11:07 +00:00
Lucas De Marchi db395ef7eb efl: Remove check for unistd.h
* unistd.h: is very useful, very old and very standard.



SVN revision: 82577
2013-01-10 20:25:26 +00:00
Gustavo Sverzut Barbieri d6298cd790 efl/emotion: prepare gstreamer log for next commit.
SVN revision: 82508
2013-01-10 05:46:24 +00:00
Gustavo Sverzut Barbieri 93ac29f610 efl/emotion: fix usage of eina_prefix, add checkme file.
we were using "" for locale that made eina_prefix think that we did
not had a common prefix.

take the time and add a magic file "checkme" to be checked at runtime
to validate stuff.

also made the binaries be searched in MODULE_ARCH namespace.



SVN revision: 82507
2013-01-10 05:45:50 +00:00
Gustavo Sverzut Barbieri 83a8742d4e efl/emotion: unbreak xine
subtitles virtuals got in the middle and screwed everything.

also prepare the log infra for the next commit.



SVN revision: 82506
2013-01-10 05:28:37 +00:00
Gustavo Sverzut Barbieri dfb84c1657 efl: merge emotion.
this one was quite a huge work, but hopefully it's correct.

NOTES:
 * removed vlc generic module, it should go into a separate package.
 * gstreamer is enabled by default (see --disable-gstreamer)
 * xine is disabled by default (see --enable-gstreamer)
 * generic is always built statically if supported
 * gstreamer and xine can't be configured as static (just lacks command line options, build system supports it)
 * v4l2 is enabled by default on linux if eeze is built (see --disable-v4l2)
 * emotion_test moved to src/tests/emotion and depends on EFL_ENABLE_TESTS (--with-tests), but is still installed if enabled.

TODO (need your help!):
 * fix warnings with gstreamer and xine engine
 * call engine shutdown functions if building as static
 * remove direct usage of PACKAGE_*_DIR and use eina_prefix
 * add eina_prefix checkme file as evas and others
 * add support for $EFL_RUN_IN_TREE
 * create separate package for emotion_generic_modules
 * check docs hierarchy (doxygen is segv'in here)



SVN revision: 82501
2013-01-10 03:43:32 +00:00