summaryrefslogtreecommitdiffstats
path: root/binding/afm-mediaplayer-binding.c
AgeCommit message (Collapse)AuthorFilesLines
2019-08-26binding: mediaplayer: switch from pthread mutexes to GMutexMatt Ranostay1-21/+21
For allowing of the use of other glib functionality switch to GMutex wrapper over using pthread mutexes directly. Bug-AGL: SPEC-2774 Change-Id: I85fa6260e2e2c5b38bf4d94477b1ef1567d91ab6 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-08-26binding: mediaplayer: fix compiler warning from gst_util_set_object_arg callMatt Ranostay1-1/+2
First argument to the gst_util_set_object_arg call should be cast via G_OBJECT macro afm-mediaplayer-binding.c: In function ‘gstreamer_init’: afm-mediaplayer-binding.c:883:30: warning: passing argument 1 of ‘gst_util_set_object_arg’ from incompatible pointer type [-Wincompatible-pointer-types] gst_util_set_object_arg(data.audio_sink, "stream-properties", "p,media.role=Multimedia"); Bug-AGL: SPEC-2774 Change-Id: I5c93e7e6621f2db229a2a154f0c9d09853c78981 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-07-12mediaplayer: gstreamer: use pwaudiosink instead of alsasinkhalibut_8.0.0halibut_7.99.3halibut/8.0.0halibut/7.99.38.0.07.99.3George Kiagiadakis1-8/+9
This native pipewire sink has better performance and allows 1) properly selecting the role of the app 2) proper handling of the situation where another app with higher priority has taken over the audio stream Bug-AGL: SPEC-2634 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: Ib40300ee6a74804c8491451267041d0554215d05
2019-06-10binding: remove support for 4A and use plain alsasinkGeorge Kiagiadakis1-44/+1
GStreamer alsasink will redirect the stream to pipewire. Bug-AGL: SPEC-2473 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: I696b338e99d28f97f1e0fe3c466e711d2171d1ad
2019-06-05binding: mediaplayer: fix refcount imbalanceMatt Ranostay1-0/+1
JSON response that was passed to onevent callback was being resent in an event without refcount being increased. Resulting assertion failure: json_object_put: Assertion `jso->_ref_count > 0' failed. Bug-AGL: SPEC-2488 Change-Id: I40cf36f0e7e96c5974bd6b6c49b5044bbe199b77 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-04-30binding: mediaplayer: fix segfault in volume commandhalibut_7.99.1halibut/7.99.17.99.1Matt Ranostay1-1/+9
When no volume field is passed it caused a null pointer dereference Bug-AGL: SPEC-2368 Change-Id: Ia11ae28b38455a597d1b31a044a711e21928b0cc Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-04-03binding: mediaplayer: correct g_object_unref on non-gobjectMatt Ranostay1-2/+1
Calling g_object_unref on gchar* is incorrect since it isn't an gobject, and thus g_free should be used instead. Change-Id: I5a982a4f083e2b7de340deaa26be99fb6caf63de Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-03-05binding: mediaplayer: add functionality to switch loop playback typesMatt Ranostay1-8/+42
Allow client to request between playlist and track looping Bug-AGL: SPEC-2181 Change-Id: I05097426e827a891e14811dad1763944d3f2fd89 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-19binding: mediaplayer: fix segfault without playlist and A2DP connectedhalibut_7.90.0halibut/7.90.0guppy_6.99.4guppy_6.99.3guppy/6.99.4guppy/6.99.37.90.06.99.46.99.3Matt Ranostay1-0/+4
A2DP connection and events with no local media playlist will result in segfaults. Change-Id: I8034d5ae88d2f81ffd74263800c32ded0645d4d8 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-19binding: mediaplayer: allow open/close of mediaplayer rolesMatt Ranostay1-41/+70
When streams are paused or stopped the mediaplayer role needs to be released to allow playback from other applications (i.e. radio) Change-Id: Idd324d0695bfaa35401f05a95380d56df848009e Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-17binding: mediaplayer: fix reporting to mediaplayer UIMatt Ranostay1-2/+19
1) local media wasn't stopping playback when a2dp transport was connected 2) when disconnecting a2dp the local media metadata wasn't being displayed 3) pausing wasn't sending an event to the UI subscriber Bug-AGL: SPEC-1630 Change-Id: I67eee3af44169c8138d03aff591200884f1dd6ae Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-14binding: mediaplayer: fix connect/disconnect of a2dp/avrcp profilesMatt Ranostay1-12/+21
Bug-AGL: SPEC-1630 Change-Id: I38fc2c131b3d56a4b5a0a87f3bcd0eb27af5bb66 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-23Fix an issue in 4a support due to change in APIv3guppy_6.99.2guppy_6.99.1guppy/6.99.2guppy/6.99.16.99.26.99.1Loïc Collignon1-12/+7
In APIv3 there is a change in the response json from a call to an API. This prevent multimedia to get the right device to play audio on. Bug: SPEC-1974 Change-Id: Iea60421e229a3f24633065b9b81ab4b5c574fcc4 Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
2018-11-16binding: mediaplayer: remove metadata verbMatt Ranostay1-15/+0
Since no client actually uses the metadata verb, but just the events this can be removed. Also the verb wouldn't show avrcp metadata. Bug-AGL: SPEC-1630 Change-Id: Iae7ba5a2e63107cb920566c83507bb2c7365a168 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-16binding: mediaplayer: add avrcp supportMatt Ranostay1-26/+108
Proxy avrcp metadata from bluetooth binding to mediaplayer service subscribers. Also allow transparent access to local and avrcp controls. Bug-AGL: SPEC-1630 Change-Id: I75cfd71ee62976a9312474b81469b8eb13a06015 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-16binding: mediaplayer: update local media metadata to match avrcpMatt Ranostay1-8/+13
To allow the mediaplayer application to not care if an media is local or a2dp stream the reported metadata events should be the same. Bug-AGL: SPEC-1630 Change-Id: I0fb00aa94d8b44e4babced0c87f3eeb6c3dd15e5 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-10-18binding: mediaplayer: upgrade to version 3 of afb frameworkMatt Ranostay1-21/+19
Change-Id: I8b3ff798f022da30cf6a05b54cfcfdca399dac5b Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-10-18binding: mediaplayer: quiet some compile warningsMatt Ranostay1-1/+3
Change-Id: I48d54c05bfb8f74f280ac914f13aa30ce79fad00 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-08-13Mediaplayer now works on 4a rolesguppy_6.90.0guppy/6.90.0flounder_5.99.6flounder_5.99.5flounder_5.99.4flounder_5.99.3flounder/5.99.6flounder/5.99.5flounder/5.99.4flounder/5.99.36.90.05.99.65.99.55.99.45.99.3Loïc Collignon1-10/+40
Fixes the issue that makes the mediaplayer not playing anything on 4a. Also added a lot a debugging messages to help to understand what is going on. Change-Id: I313da264ecb2bcc7075018c29595df3cdce52557 Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
2018-06-14afm-mediaplayer-binding.c: Fix coding styleflounder_5.99.2flounder_5.99.1flounder/5.99.2flounder/5.99.15.99.25.99.1Leon Anavi1-2/+4
Set the opening brace at the beginning of the next line for each function. Bug-AGL: SPEC-1515 Change-Id: I8277e52fd2093e0df5ab998e990bed3d5c2ab32c Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
2018-06-12binding: mediaplayer: fix race condition with initial album artMatt Ranostay1-5/+8
gst_init and audio sinks weren't always getting setup in time for a subscriber to get the initial album art. Solution is to move the setup out of the pthread callback and confirm they are ran before .init() returns Bug-AGL: SPEC-1496 Change-Id: I70779bcb1ca539146c98718f5b0edd781f9899b4 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-05-08binding: mediaplayer: fix duplicate entries being added to playlistMatt Ranostay1-1/+7
Check playlist for an entry with the current media_path and refuse to add to the list if it exists Bug-AGL: SPEC-1375 Change-Id: Idc5fb4b2570ed7ac9cf63aa3c37e44b8e35d6b34 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-04-09binding: mediaplayer: add image metadata to eventMatt Ranostay1-19/+49
Give new subscribers to metadata image data, and also give metadata image data in event when track changes. Bug-AGL: SPEC-1375 Change-Id: Ic32d1f3004948fe3bc38c958a136fd0cf9967e53 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-04-06binding: mediaplayer: give initial playlist to new subscribersMatt Ranostay1-0/+9
On initial subscription to playlist event request the playlist via event Bug-AGL: SPEC-1375 Change-Id: Id2d7565b384ce117873827392c1e5f2a3e123098 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-01-18binding: mediaplayer: add check GST_TAG_PREVIEW_IMAGE for album artMatt Ranostay1-3/+14
Add support for using GST_TAG_PREVIEW_IMAGE in case GST_TAG_IMAGE tags aren't available Bug-AGL: SPEC-1241 Change-Id: I3bb4edf8c9350deffa3cf407285a333042403ec9 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-01-11binding: mediaplayer: only get audio resultsMatt Ranostay1-2/+14
Since video playback doesn't work yet don't populate the playlist with video media entries. Bug-AGL: SPEC-1236 Change-Id: I3b161351d975442e512bdbf2215174be2301069d Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-12-21Add 4A supportRonan Le Martret1-0/+29
Add conditional compilation option to enable using the 4A high-level API to request Multimedia role access. Change-Id: I85c19e33a355f9133bdda837e9374776fc92efe9 Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh> Signed-off-by: Scott Murray <scott.murray@konsulko.com> (cherry picked from commit d03590991d2c7104e7cd4b2a18e710008b2759ab)
2017-11-28Fix a crash when playing empty listJosé Bollo1-3/+10
Change-Id: I4037ab08715bea231bb8e9d725ffba9718c7daca Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-11-13binding: mediaplayer: add tag size checkeel_4.99.3eel/4.99.34.99.3Matt Ranostay1-1/+2
Slight chance to have an infinite tag check for album art data, and this patchset avoids that possibility by checking the max index of tags. Bug-AGL: SPEC-1091 Change-Id: I63836ea6e9795c97cfd0c07231c556bbbb8d9528 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-11-06binding: mediaplayer: add support for initial metadata on startupMatt Ranostay1-8/+27
Use a fakesink to get initial album art metadata on startup of service Bug-AGL: SPEC-1052 Change-Id: If3563e65480ba1a159d60e04d8fe7e63d12301a4 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-25binding: mediaplayer: assume play after seek commandeel_4.99.2eel/4.99.24.99.2Matt Ranostay1-2/+3
Assume to enter playing state when next/previous track commands, and this allows loading of metadata via gstreamer Bug-AGL: SPEC-931 Change-Id: Id7eeb1e354d3c2e7ad63a166b8dbd64afb453332 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-25binding: mediaplayer: fixup double conversion for volumeMatt Ranostay1-3/+3
Fix compiler warning of incorrect 'long int' to double conversions that for volume settings Bug-AGL: SPEC-931 Change-Id: I6645506f5636adb589256f101763b5433fc66603 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-25binding: mediaplayer: signaling of selected track during updateMatt Ranostay1-10/+21
Notify subscribers of the current playing selection on a playlist update. This is used to keep the UI selection of media in a playlist correct. Bug-AGL: SPEC-931 Change-Id: I8888bb6c1882695ba8ffd4a8aed2914ad0441388 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-23binding: mediaplayer: add stop verb for playbackMatt Ranostay1-0/+3
Add stop verb mostly for resetting playback on media removal Bug-AGL: SPEC-931 Change-Id: Ic564d2329aab300bbff0bb8afcf47a65dc73103b Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-23binding: mediaplayer: ending of playlist needs to send an eventMatt Ranostay1-1/+18
When ending a playlist an event needs to be sent to notify the UI Bug-AGL: SPEC-931 Change-Id: Ib96ee49775a90d9ca969031443cb9e9e2ec4610e Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-23binding: mediaplayer: add looping of playlistMatt Ranostay1-1/+11
Allow playlist to be looped when it reachs the end of it. Bug-AGL: SPEC-931 Change-Id: I482c51d12234a5e70f76fbb981249a643b6b78fc Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-23binding: mediaplayer: fix index/volume selectionMatt Ranostay1-2/+2
First track or volume of 0% couldn't ever be selected due to a invalid logic condition Bug-AGL: SPEC-931 Change-Id: I6bc7d9026eac24eef66ab1ec13b1a8766da7d586 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-19binding: mediaplayer: previous command on first track rewinds to beginningMatt Ranostay1-25/+30
If on first track on playlist and get previous track commands just rewind to beginning of that track. Bug-AGL: SPEC-931 Change-Id: Ie3decb70bd0826ad5199bdc9641befcc52cfd40a Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-19binding: mediaplayer: add base64 album art reportingMatt Ranostay1-0/+62
Report the album art if any via the metadata verb in base64 data URI format. Bug-AGL: SPEC-931 Change-Id: Ifa9f5d799161a2b6a5a163e35b53a182f29fbd4b Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-17binding: mediaplayer: fix segfault possiblityMatt Ranostay1-1/+6
If there is no playlist the seek track commands will segfault Bug-AGL: SPEC-931 Change-Id: I877ca12f9adbb17bfd7959b21e3478b2d0260fc2 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-16binding: mediaplayer: add playing status reportMatt Ranostay1-1/+6
Report playing status back in the response of the control verb. Bug-AGL: SPEC-931 Change-Id: Iabaa162b01e1c29c1eb8b973b1a005ef433c2c92 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-16binding: mediaplayer: rename gstreamer event to metadataMatt Ranostay1-7/+7
Since gstreamer name doesn't make sense with the binding rename change it to metadata_event. Bug-AGL: SPEC-931 Change-Id: I94b8fc3de1aaae47ec8191ead06e4db994971025 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-13binding: mediaplayer: publish playlist updatesMatt Ranostay1-23/+61
Allow publishing playlist updates for access from mediaplayer applications. Bug-AGL: SPEC-931 Change-Id: I745ff4b84d0f7e7b88239a1e95288de64ac92da9 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-13binding: mediaplayer: save volume settingMatt Ranostay1-0/+2
Volume setting wasn't saved before this patchset fixes this Bug-AGL: SPEC-931 Change-Id: Ib810135bd9d0617bfb3ccc99de66f46e025f94fd Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2017-10-13binding: mediaplayer: rename binding from gstreamer to mediaplayerMatt Ranostay1-0/+620
Bug-AGL: SPEC-931 Change-Id: If6e4ebbb60213ff82f630cea3e06df49c0d808a0 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>