Commit Graph

136 Commits

Author SHA1 Message Date
Thomas Guillem b12c2a2cfd emotion/libvlc: replace libvlc_mp_is_ready with ev->started 2016-03-28 16:40:02 +09:00
Thomas Guillem a6bd5dda42 emotion/libvlc: use vlc vout display module
The vlc vout display module adds key and mouse event support. It improves
performances since a video filter is not needed anymore to scale the image, and
direct rendering with vlc avcodec module is now possible (less memcpy).
2016-03-28 16:40:02 +09:00
Thomas Guillem 50d9f63c2e emotion/libvlc: log: print vlc module and id 2016-03-28 16:40:02 +09:00
Thomas Guillem 7d3e96757d emotion/libvlc: fix C89 2016-03-28 16:40:02 +09:00
Thomas Guillem f5296e8afc emotion/libvlc: set libvlc args from "EMOTION_LIBVLC_ARGS" env 2016-03-28 16:40:02 +09:00
Thomas Guillem 941ccc4324 emotion/libvlc: fix video/audio/spu mute 2016-03-28 16:40:02 +09:00
Thomas Guillem f04903119c emotion/libvlc: set libvlc_log static 2016-03-28 16:40:02 +09:00
Carsten Haitzler 9626acdb4d emotion - fix gst back-end to report title and other meta changes
gst1 back-end didnt report changes in title or other metadata to the
frontend and thusapps never knew it was changing. this fixes that.

@fix
2015-12-21 14:40:41 +09:00
Thomas Guillem afe6f5c3a1 emotion: add libvlc module
Summary:
Everything is implemented except visualization, mouse events and some
EMOTION_EVENT. Video can output RGBA, YUY2, YV12 or I420.

About the video sink: this emotion module use libvlc callbacks:
libvlc_video_set_format_callbacks and libvlc_video_set_callbacks. It may be
temporary. Indeed, an other solution is to add an Evas module inside vlc. But
this vlc module would need to link with emotion in order to use
_emotion_frame_new and _emotion_frame_resize private functions. I didn't
succeed to output a frame without these private functions: see
15daff4d3f

List of /* FIXME */:

 - Visualization not implemented since there is no API (for now) in libvlc.

 - Mouse events not implemented since there is no API (for now) in libvlc.

 - Some EMOTION_EVENT are not handled.

 - SIGSEGV in evas_gl_common_texture_nv12_update with
   EVAS_COLORSPACE_YCBCR420NV12601_PL colorspace.

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-09-21 23:19:20 +02:00
Carsten Haitzler 2b8d54c357 emotion gstreamer1 module - support 709 color matrix properly now
now that 709 colorsp[ace works in evas, use it properly in gst1 module
if possible
2015-05-27 23:34:08 +09:00
Cedric BAIL a9911f5fd8 emotion: trying to fix gstreamer backend build on Windows. 2015-04-28 11:37:11 +02:00
Carsten Haitzler 425de99145 emotion gst1 module - remove printf
this debugging printf seems to have been left around - remove it so we
don't get unexpected noise in gst playback
2015-04-20 18:34:58 +09:00
Carsten Haitzler 6458ca32bc emotion - gst1 module - handle long standing bad map/unmap of gst buf
this fixes a pending XXX where we didnt keep the buffer mapped as long
as the evas image object pointed to the video pixel data. this fixes
this along with less over-zealous refinf to make things more obvious
(now last_buffer actualyl really matters and if it was mapped and
refed).

@fix
2015-04-20 18:34:58 +09:00
Carsten Haitzler bba02377e6 emotion gst backend - make note of some bugs! need fixing - cant now 2014-10-01 08:23:26 +09:00
Carsten Haitzler 807a136305 emotion - gst 0.10 - fix build after volume change/fix 2014-09-03 16:57:01 +09:00
Carsten Haitzler 6ed29b4425 emotion - audio volume - leave as-is on file open/init
this fixes gst and gst1 modules to leave volume be on start. generic
can't really query easily, so just set to 0.8 by default, and xine is
already just fine. do this because back-ends seems to have a habit of
setting master volume, not per-app volume.

@fix
2014-09-01 17:09:09 +09:00
Carsten Haitzler 52b5250713 emotion gst1 - stop complaining about null uri 2014-08-23 19:20:16 +09:00
Carsten Haitzler 12d42e85a4 emotion - gst1 backend - add subtitle file support
this enables subtitle file support in the emotion gstreamer1 backend.
this matches the vlc generic one. xine still doesn't.
2014-08-23 18:26:29 +09:00
Stefan Schmidt 80733c5171 modules/emotion_generic: Remove unnecessary NULL checks for event data
We are already using the pointer before we check it here. We also don't
check it in the other callbacks so align the handling in this file.

CID: 1039635, 1039636, 1039637, 1039638, 1039639
2014-08-08 11:28:56 +02:00
Davide Andreoli 9df1e2e678 Emotion generic: change the log domain name to be consistent with others domains. 2014-02-23 20:40:21 +01:00
Davide Andreoli a1ed4cf9d8 Emotion generic: remove the player restart hack.
The player restart (when reached the end) is a specific VLC issue,
it need to be managed inside the player, not here.
2014-02-22 11:29:16 +01:00
Cedric BAIL baf558a5c5 emotion: lower severity of a simple warning. 2014-02-21 15:08:26 +09:00
Davide Andreoli 902307ccaf Emotion Generic: receiving the size on opening is correct.
Also: more comments to simplify command debugging.
2014-02-20 23:01:06 +01:00
Davide Andreoli af34bc8599 Emotion generic: nothing to see here, just small formatting while reading the code. 2014-02-17 21:26:46 +01:00
Davide Andreoli 1a9952eca7 Emotion generic interface: FILE_SET_DONE do not have any param. 2014-02-16 14:14:23 +01:00
ChunEon Park 16ef56d396 efl/emotion - added missing headers for getuid() geteuid(). 2014-01-18 18:49:27 +09:00
Sebastian Dröge 1ba3426405 emotion gstreamer1: Call _emotion_frame_new() for audio-only streams without visualisations too
Without this applications are not notified of any progress.

https://phab.enlightenment.org/T767
2014-01-16 22:45:09 +01:00
Sebastian Dröge 25fa72e295 emotion gstreamer1: Set visualizations if the vis name is not NULL
and not the other way around.
2014-01-13 10:02:34 +01:00
Sebastian Dröge a39f9ca579 emotion gstreamer1: Also handle DATE_TIME tag 2014-01-13 10:01:07 +01:00
Sebastian Dröge 3c53aea9a4 emotion gstreamer1: Fix wrong FIXME comment 2014-01-13 10:01:07 +01:00
Sebastian Dröge 86d552a7f7 emotion gstreamer1: Don't forget to allocate metadata struct 2014-01-13 10:01:07 +01:00
Sebastian Dröge 1c6cb51cdc emotion gstreamer1: Implement seekability check via seeking query 2014-01-13 10:01:07 +01:00
Sebastian Dröge 463ef7b964 emotion gstreamer1: Add support for selecting subtitle channels 2014-01-13 10:01:07 +01:00
Sebastian Dröge 8d034ca3b7 emotion gstreamer1: Volumes > 1.0 are valid too 2014-01-13 10:01:07 +01:00
Sebastian Dröge 79d5172f0a emotion gstreamer1: Add support for buffering and clock-lost handling 2014-01-13 10:01:07 +01:00
Sebastian Dröge 18f733fa23 emotion gstreamer1: Major cleanup of internal and GStreamer state handling 2014-01-13 09:50:10 +01:00
Sebastian Dröge a5f6a9274c emotion gstreamer1: Don't set pipeline to PAUSED during seeking
This is not required and is handled transparently inside GStreamer
already.
2014-01-13 09:50:10 +01:00
Sebastian Dröge c2f4967699 emotion gstreamer1: Use GST_PLAY_FLAG_VIS instead of the corresponding integer 2014-01-13 09:50:10 +01:00
Sebastian Dröge 5798e98571 emotion gstreamer1: Don't use the NATIVE_AUDIO/VIDEO flags
There are too many video formats we don't handle, so we should let GStreamer
handle the conversion if necessary.
2014-01-13 09:50:10 +01:00
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