1717 */
1818
1919package org .freedesktop .gstreamer ;
20+ import static org .freedesktop .gstreamer .lowlevel .GlibAPI .GLIB_API ;
21+ import static org .freedesktop .gstreamer .lowlevel .GstElementFactoryAPI .GSTELEMENTFACTORY_API ;
22+ import static org .freedesktop .gstreamer .lowlevel .GstPadTemplateAPI .GSTPADTEMPLATE_API ;
23+ import static org .freedesktop .gstreamer .lowlevel .GstPluginAPI .GSTPLUGIN_API ;
24+
2025import java .util .ArrayList ;
2126import java .util .HashMap ;
2227import java .util .List ;
2328import java .util .Map ;
2429import java .util .logging .Level ;
2530import java .util .logging .Logger ;
2631
27- import com .sun .jna .Pointer ;
28-
2932import org .freedesktop .gstreamer .lowlevel .GlibAPI .GList ;
3033import org .freedesktop .gstreamer .lowlevel .GstPadTemplateAPI .GstStaticPadTemplate ;
3134import org .freedesktop .gstreamer .lowlevel .GstTypes ;
3235import org .freedesktop .gstreamer .lowlevel .NativeObject ;
3336
34- import static org .freedesktop .gstreamer .lowlevel .GlibAPI .GLIB_API ;
35- import static org .freedesktop .gstreamer .lowlevel .GstElementFactoryAPI .GSTELEMENTFACTORY_API ;
36- import static org .freedesktop .gstreamer .lowlevel .GstPadTemplateAPI .GSTPADTEMPLATE_API ;
37- import static org .freedesktop .gstreamer .lowlevel .GstPluginAPI .GSTPLUGIN_API ;
37+ import com .sun .jna .Pointer ;
3838
3939/**
4040 * ElementFactory is used to create instances of elements.
@@ -67,7 +67,9 @@ public static void registerElement(Class<? extends Element> klass, String name)
6767 * desired type.
6868 */
6969 public static ElementFactory find (String name ) {
70- logger .entering ("ElementFactory" , "find" , name );
70+ if (logger .isLoggable (Level .FINER )) {
71+ logger .entering ("ElementFactory" , "find" , name );
72+ }
7173 ElementFactory factory = GSTELEMENTFACTORY_API .gst_element_factory_find (name );
7274 if (factory == null ) {
7375 throw new IllegalArgumentException ("No such Gstreamer factory: " + name );
@@ -82,8 +84,10 @@ public static ElementFactory find(String name) {
8284 * @param name The name to assign to the created Element
8385 * @return A new GstElemElement
8486 */
85- public static Element make (String factoryName , String name ) {
86- logger .entering ("ElementFactory" , "make" , new Object [] { factoryName , name });
87+ public static Element make (String factoryName , String name ) {
88+ if (logger .isLoggable (Level .FINER )) {
89+ logger .entering ("ElementFactory" , "make" , new Object [] { factoryName , name });
90+ }
8791 return elementFor (makeRawElement (factoryName , name ), factoryName );
8892 }
8993
@@ -208,7 +212,9 @@ public static List<ElementFactory> listGetElementFilter(ElementFactoryListType t
208212 }
209213
210214 public static Pointer makeRawElement (String factoryName , String name ) {
211- logger .entering ("ElementFactory" , "makeRawElement" , new Object [] { factoryName , name });
215+ if (logger .isLoggable (Level .FINER )) {
216+ logger .entering ("ElementFactory" , "makeRawElement" , new Object [] { factoryName , name });
217+ }
212218 Pointer elem = GSTELEMENTFACTORY_API .ptr_gst_element_factory_make (factoryName , name );
213219 logger .log (DEBUG , "Return from gst_element_factory_make=" + elem );
214220 if (elem == null ) {
@@ -235,8 +241,10 @@ private static Element elementFor(Pointer ptr, String factoryName) {
235241 * @param init internal initialization data.
236242 */
237243 public ElementFactory (Initializer init ) {
238- super (init );
239- logger .entering ("ElementFactory" , "<init>" , new Object [] { init });
244+ super (init );
245+ if (logger .isLoggable (Level .FINER )) {
246+ logger .entering ("ElementFactory" , "<init>" , new Object [] { init });
247+ }
240248 }
241249
242250 /**
@@ -246,51 +254,64 @@ public ElementFactory(Initializer init) {
246254 * @return A new {@link Element}
247255 */
248256 public Element create (String name ) {
249- logger .entering ("ElementFactory" , "create" , name );
257+ if (logger .isLoggable (Level .FINER )) {
258+ logger .entering ("ElementFactory" , "create" , name );
259+ }
250260 Pointer elem = GSTELEMENTFACTORY_API .ptr_gst_element_factory_create (this , name );
251261 logger .log (DEBUG , "gst_element_factory_create returned: " + elem );
252262 if (elem == null ) {
253263 throw new IllegalArgumentException ("Cannot create GstElement" );
254264 }
255265 return elementFor (elem , getName ());
256266 }
267+
257268 /**
258269 * Returns the name of the person who wrote the factory.
259- *
270+ *
260271 * @return The name of the author
261272 */
262273 public String getAuthor () {
263- logger .entering ("ElementFactory" , "getAuthor" );
264- return GSTELEMENTFACTORY_API .gst_element_factory_get_author (this );
274+ if (logger .isLoggable (Level .FINER )) {
275+ logger .entering ("ElementFactory" , "getAuthor" );
276+ }
277+ return GSTELEMENTFACTORY_API .gst_element_factory_get_metadata (this , "author" );
265278 }
279+
266280 /**
267281 * Returns a description of the factory.
268- *
282+ *
269283 * @return A brief description of the factory.
270284 */
271285 public String getDescription () {
272- logger .entering ("ElementFactory" , "getDescription" );
273- return GSTELEMENTFACTORY_API .gst_element_factory_get_description (this );
286+ if (logger .isLoggable (Level .FINER )) {
287+ logger .entering ("ElementFactory" , "getDescription" );
288+ }
289+ return GSTELEMENTFACTORY_API .gst_element_factory_get_metadata (this , "description" );
274290 }
291+
275292 /**
276293 * Returns the long, English name for the factory.
277- *
294+ *
278295 * @return The long, English name for the factory.
279296 */
280297 public String getLongName () {
281- logger .entering ("ElementFactory" , "getLongName" );
282- return GSTELEMENTFACTORY_API .gst_element_factory_get_longname (this );
298+ if (logger .isLoggable (Level .FINER )) {
299+ logger .entering ("ElementFactory" , "getLongName" );
300+ }
301+ return GSTELEMENTFACTORY_API .gst_element_factory_get_metadata (this , "long-name" );
283302 }
284-
303+
285304 /**
286305 * Returns a string describing the type of factory.
287306 * This is an unordered list separated with slashes ('/').
288- *
307+ *
289308 * @return The description of the type of factory.
290309 */
291310 public String getKlass () {
292- logger .entering ("ElementFactory" , "getKlass" );
293- return GSTELEMENTFACTORY_API .gst_element_factory_get_klass (this );
311+ if (logger .isLoggable (Level .FINER )) {
312+ logger .entering ("ElementFactory" , "getKlass" );
313+ }
314+ return GSTELEMENTFACTORY_API .gst_element_factory_get_metadata (this , "klass" );
294315 }
295316
296317 /**
@@ -299,7 +320,9 @@ public String getKlass() {
299320 * @return The list of {@link StaticPadTemplate}
300321 */
301322 public List <StaticPadTemplate > getStaticPadTemplates () {
302- logger .entering ("ElementFactory" , "getStaticPadTemplates" );
323+ if (logger .isLoggable (Level .FINER )) {
324+ logger .entering ("ElementFactory" , "getStaticPadTemplates" );
325+ }
303326 GList glist = GSTELEMENTFACTORY_API .gst_element_factory_get_static_pad_templates (this );
304327 logger .log (DEBUG , "GSTELEMENTFACTORY_API.gst_element_factory_get_static_pad_templates returned: " + glist );
305328 List <StaticPadTemplate > templates = new ArrayList <StaticPadTemplate >();
0 commit comments