Hi Fredrik, On Thu, 9 Dec 2010 12:02:21 am ext Fredrik HENRICSSON wrote: > Hi, > > The Gstreamer plugin in Qt Mobility contains a list of hard coded audio > encoders and another for video encoders. > Audio: > http://qt.gitorious.org/qt-mobility/qt-mobility/blobs/master/plugins/multimedia/gstreamer/mediacapture/qgstreameraudioencode.cpp#line58 > Video: > http://qt.gitorious.org/qt-mobility/qt-mobility/blobs/master/plugins/multimedia/gstreamer/mediacapture/qgstreamervideoencode.cpp#line54 > > What are the options for extending the lists with support for other encoders > and profiles, e.g. AAC, HEAACv1 & v2, H.263, base/main/high profiles etc? > I suppose the most obvious option is to patch the classes by adding the new > components in the same way they are added now. In case the gst components are > not available in the platform, the factory function will fail and the encoder > will not be exposed up to QMediaRecorder. But is there a more dynamic way of > doing it in the current design? If not, is the current design going to stay > or will the discovery of encoders be done differently? I suppose I should > take the last question to the qt-mobility mailing list, unless some of the > Mobility devs are listening in on this list as well.
This probably will be changed from hard coded settings to configuration files + dynamic discovery of additional installed codecs, but currently it's necessary to modify backend sources. The reason the configuration is hard coded - the backend does not just put the encoder element into pipeline but also performs some configuration to provide presets like api (quality parameter), which is hard to do for unknown element. When no codec is selected the backend should choose the "optimal" codec and settings for the current platform, application can also modify for example only the quality parameter and/or choose only the codec. If no codec is specified backend can also choose the best codec supported on the device, for example H264 encoder for lower resolutions or mpeg4 for high res video. This is hard to implement for dynamically discovered codecs. Just FYI, mediacapture part of gstreamer backend is used as a fallback when camerabin element and gstreamer photography are not available, but probably should be deprecated after camerabin gstreamer element becomes stable and widespread. Regards Dmytro. _______________________________________________ MeeGo-dev mailing list [email protected] http://lists.meego.com/listinfo/meego-dev
