*参照元 [#j397dbff]
#backlinks

*説明 [#i05f1a75]
-パス: [[gstomx-0.10.1/omx/gstomx_util.c]]

-FIXME: これは何?
--ロード済みの OpenMAX ライブラリの情報を返す。
もし一度もロードされていなければライブラリをロードする。


**引数 [#adac9bbb]
-const gchar * name
--OpenMAX ライブラリの名前。
--[[gstomx-0.10.1/gchar]]


**返り値 [#e239b8a0]
-GOmxImp *
--OpenMAX ライブラリの情報。
--[[gstomx-0.10.1/GOmxImp]]


**参考 [#sf0b83e2]


*実装 [#uc5a7e61]
 static inline GOmxImp *
 request_imp (const gchar * name)
 {
   GOmxImp *imp = NULL;
 
   g_mutex_lock (imp_mutex);
   imp = g_hash_table_lookup (implementations, name);
-既に指定された OpenMAX ライブラリをロード済みなら、
キャッシュされた情報を返す。
--[[gstomx-0.10.1/g_mutex_lock()]]
--[[gstomx-0.10.1/g_hach_table_lookup()]]

   if (!imp) {
     imp = imp_new (name);
     if (imp)
       g_hash_table_insert (implementations, g_strdup (name), imp);
   }
   g_mutex_unlock (imp_mutex);
 
-
--[[gstomx-0.10.1/g_mutex_lock()]]
-
--[[gstomx-0.10.1/g_hach_table_lookup()]]
-
   if (!imp)
     return NULL;
 
-まだロードしていなければ OpenMAX ライブラリをロードし、
キャッシュに追加する。
--[[gstomx-0.10.1/imp_new()]]
-
--[[gstomx-0.10.1/g_hash_table_insert()]]
-
--[[gstomx-0.10.1/g_mutex_unlock()]]

   if (!imp)
     return NULL;
 
   g_mutex_lock (imp->mutex);
   if (imp->client_count == 0) {
     OMX_ERRORTYPE omx_error;
     omx_error = imp->sym_table.init ();
-初めて使うコンポーネントの場合、コンポーネントの OMX_Init() を呼ぶ
-初めて使うライブラリの場合、ライブラリの OMX_Init() を呼ぶ
--[[gstomx-0.10.1/OMX_Init()]]

     if (omx_error) {
       g_mutex_unlock (imp->mutex);
       return NULL;
     }
   }
   imp->client_count++;
   g_mutex_unlock (imp->mutex);
 
   return imp;
 }


*コメント [#fb1957e1]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS