Multimedia plugins now have a unique JSON metadata 'Keys' property.
authorYoann Lopes <yoann.lopes@digia.com>
Thu, 20 Jun 2013 15:40:11 +0000 (17:40 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 21 Jun 2013 10:07:00 +0000 (12:07 +0200)
commite25db62a59e86a62990de43f554af3baecdd47ff
treeb3356c64c0d168a33a151e43da27caa3f25389d2
parent16a775d47a69913ce4f0306531c97469066ea896
Multimedia plugins now have a unique JSON metadata 'Keys' property.

They previously had the multimedia services they provided as keys. This
was a problem when several plugins were available on the same platform,
providing the same multimedia service, but with different features or
capabilities. Since they had the same key, only the first plugin in the
directory was loaded.

Nevertheless, it was actually working until commit 732dcfe7 in qtbase,
as all plugins were loaded even when sharing the same key.

The services a multimedia plugin provides are now declared in the
'Services' property. To preserve compatibility with third-party plugins,
if that new property doesn't exist it falls back to the 'Keys' property.

Task-number: QTBUG-31868
Task-number: QTBUG-31476
Change-Id: Ic3ba32eeef21b69b922bd3d4feb111101559d132
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
21 files changed:
src/multimedia/qmediapluginloader.cpp
src/plugins/android/mediaplayer/mediaplayer.json
src/plugins/audiocapture/audiocapture.json
src/plugins/avfoundation/camera/avfcamera.json
src/plugins/avfoundation/mediaplayer/avfmediaplayer.json
src/plugins/blackberry/blackberry_mediaservice.json
src/plugins/directshow/directshow.json
src/plugins/directshow/directshow_camera.json
src/plugins/gstreamer/audiodecoder/audiodecoder.json
src/plugins/gstreamer/camerabin/camerabin.json
src/plugins/gstreamer/gstreamer.json
src/plugins/gstreamer/mediacapture/mediacapture.json
src/plugins/gstreamer/mediacapture/mediacapturecamera.json
src/plugins/gstreamer/mediaplayer/mediaplayer.json
src/plugins/qt7/qt7.json
src/plugins/v4l/v4l.json
src/plugins/wmf/wmf.json
tests/auto/unit/qmediaserviceprovider/mockserviceplugin1/mockserviceplugin1.json
tests/auto/unit/qmediaserviceprovider/mockserviceplugin2/mockserviceplugin2.json
tests/auto/unit/qmediaserviceprovider/mockserviceplugin3/mockserviceplugin3.json
tests/auto/unit/qmediaserviceprovider/mockserviceplugin4/mockserviceplugin4.json