freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

gstreamer應(yīng)用程序開(kāi)發(fā)手冊(cè)-文庫(kù)吧資料

2025-07-05 07:49本頁(yè)面
  

【正文】 中間狀態(tài)。l GST_STATE_PLAYING: PLAYING 狀態(tài)除了當(dāng)前運(yùn)行時(shí)鐘外,其它與 PAUSED 狀態(tài)一模一樣。自動(dòng)加載器(Autopluggers)可以對(duì)已經(jīng)加載進(jìn)管道的插件進(jìn)行這種狀態(tài)轉(zhuǎn)換。同樣,視頻接收元件能夠播放數(shù)據(jù)的第 一幀。舉例來(lái)說(shuō),視頻或音頻輸出元件會(huì)等待數(shù)據(jù)的到來(lái),并將它們壓入隊(duì)列??傊?, PAUSED 狀態(tài)除了不能運(yùn)行時(shí)鐘外,其它與 PLAYING 狀態(tài)一模一樣。因此該狀態(tài)下元件可以修改流的位置信息,讀取或者處理流數(shù)據(jù),以及一旦狀態(tài)變?yōu)?PLAYING,流可以重放數(shù)據(jù)流。如果數(shù)據(jù)流先前被打開(kāi)過(guò),它應(yīng)該被關(guān)閉,并且其位置信息、特性信息應(yīng)該被重新置為初始狀態(tài)。例如打開(kāi)設(shè)備、分配緩存等。l GST_STATE_READY: 準(zhǔn)備狀態(tài)。這四種狀態(tài)為:l GST_STATE_NULL: 默認(rèn)狀態(tài)。所以你需要改變?cè)臓顟B(tài),使得它能夠做某些事情。如果你想要連接處于不同層次中的元件或襯墊,你將使用到精靈襯墊(關(guān)于精靈襯墊更多的信息將在后續(xù)章節(jié)中講到) 。注意:在鏈接不同的元件之前,你需要確保這些元件都被加在同一個(gè)箱柜中,因?yàn)閷⒁粋€(gè)元件加載到一個(gè)箱柜中會(huì)破壞該元件已存在的一些鏈接關(guān)系。你可以使用不同的gst_pad_link_* ()函數(shù)來(lái)得到單個(gè)襯墊的引用并將它們鏈接起來(lái)。 /* link */ if (!gst_element_link_many (source, filter, sink, NULL)) { g_warning (Failed to link elements!)。 sink = gst_element_factory_make (fakesink, sink)。 /* create elements */ source = gst_element_factory_make (fakesrc, source)。argv)。 /* init */ gst_init (amp。include gst/intmain (int argc, char *argv[]){ GstElement *pipeline。我們將在該手冊(cè)的后部分用一個(gè)簡(jiǎn)單的圖來(lái)構(gòu)建這個(gè) Ogg/Vorbis 播放器。第二個(gè)元件就是Ogg/Vorbis 音頻解碼器。把上述過(guò)程想象成一個(gè)簡(jiǎn)單的 Ogg/Vorbis 音頻解碼器。元件鏈中源元件(element1)的輸出將會(huì)是類(lèi)過(guò)濾元件 (element2)的輸入。圖55 用3個(gè)鏈接的元件形象化了媒體管道。數(shù)據(jù)將在這些元件間流過(guò)。Pads and capabilities)中學(xué)習(xí)到 GstPad 與 GstCaps 時(shí),會(huì)對(duì)上面的特性有個(gè)更清晰的了解。目前 所有基于 GStreamer 的多媒體播放器以及自動(dòng)加載器(autoplugger)都是以上述方式工作。. 找出元件所包含的襯墊工廠元件最有用處的功能可能是它包含了對(duì)元件所能產(chǎn)生的襯墊的一個(gè)詳細(xì)描述,以及這些襯墊的功能(以行外話講: 就是指這些襯墊所支持的媒體類(lèi)型),而得到 這些信息是不需要將所有的插件(plugins)都裝載到內(nèi)存中。 return 0。%s39。 return 1。audiotestsrc39。 if (!factory) { g_print (You don39。argv)。 /* init GStreamer */ gst_init (amp。同樣還存在 Codec/Demuxer和Codec/Muxer,甚至更多的類(lèi)別。例如類(lèi)別可以是 Codec/Decoder/Video(視頻解碼器)、Source/Video(視頻發(fā)生器)、Sink/Video(視頻輸出器)。 件工廠得到元件的信息像gstinspect 這樣的工具可以給出一個(gè)元件的概要: 插件(plugin)的作者、描述性的元件名稱(chēng)(或者簡(jiǎn)稱(chēng))、元件的等級(jí)(rank)以及元件的類(lèi)別(category)。Editor) 。這意味著工廠元件可以應(yīng)用于一些自動(dòng)元件實(shí)例, 像自動(dòng)插件(autopluggers)。GstElementFactory總之,信號(hào)和特性是元件與應(yīng)用程序交互的最基本的方式。Glib 對(duì)象系統(tǒng)介紹.GstElement對(duì)象同樣提供了許多的 GObject 信號(hào)方法來(lái)實(shí)現(xiàn)一個(gè)靈活的回調(diào)機(jī)制。以及關(guān)于GObject特性更詳細(xì)的信息,我們推薦你去閱讀它也提供了諸如函數(shù)簡(jiǎn)短介紹,參數(shù)的類(lèi)型及其支持的范圍等信息。} 大多數(shù)的插件(plugins)都提供了一些額外的方法,這些方法給程序員提供了更多的關(guān)于該元件的注冊(cè)信息或配置信息。 gst_object_unref (GST_OBJECT (element))。.\n, name)。 g_print (The name of the element is 39。 /* get name */ g_object_get (G_OBJECT (element), name, amp。argv)。 /* init GStreamer */ gst_init (amp。include gst/intmain (int argc, char *argv[]){ GstElement *element。你也可以通過(guò)下面的方法來(lái)得到一個(gè)對(duì)象的名字屬性。這個(gè)名字屬性將在函數(shù)gst_element_factory_make ()或者函數(shù)gst_element_factory_create ()中使用到。同樣 GParamSpecs 也被支持。使用元件作為GObject 對(duì)象GstElement的屬性大多通過(guò)標(biāo)準(zhǔn)的 GObject 對(duì)象實(shí)現(xiàn)的。} 注[1] 這個(gè)例子中的代碼可以直接提取出來(lái),并在GStreamer的examples/manual目錄下可以找到。 } gst_object_unref (GST_OBJECT (element))。 if (!element) { g_print (Failed to create element, even though its factory exists!\n)。 return 1。fakesrc39。 /* create element, method 2 */ factory = gst_element_factory_find (fakesrc)。argc, amp。 GstElement * element。將會(huì)使用元件工廠并根據(jù)給定的名字來(lái)創(chuàng)建一個(gè)元件。函數(shù)gst_element_factory_find ()就 是做了這樣的事。對(duì)象由工廠對(duì)象創(chuàng)建而來(lái)。是2個(gè)函數(shù)的速記。 return 0。 return 1。fakesrc39。 /* create element */ element = gst_element_factory_make (fakesrc, source)。argc, amp。include gst/intmain (int argc, char *argv[]){ GstElement *element。程序會(huì)檢查元件是否創(chuàng)建成功。下面的例子[1]任何一個(gè)元件在創(chuàng)建時(shí),其引用記數(shù)為1。gst_object_unref ()來(lái)對(duì)它進(jìn)行解引用。你可以通過(guò)傳遞 NULL 來(lái)得到一個(gè)默認(rèn)的具有唯一性的名字。創(chuàng)建完之后, 你可以用新的元件名在箱柜(bin)中查詢(xún)得到這個(gè)元件。形象化的接收元件. 創(chuàng)建一個(gè)GstElement對(duì)象創(chuàng)建一個(gè)元件的最簡(jiǎn)單的方法是通過(guò)函數(shù)gst_element_factory_make ()。圖圖 54接收元件是媒體管道的末端,它接收數(shù)據(jù)但不產(chǎn)生任何數(shù)據(jù)。當(dāng)一個(gè)新的襯墊被創(chuàng) 建時(shí),分流器通常會(huì)產(chǎn)生一個(gè)信號(hào)。因?yàn)镺gg流包含了視頻和音頻。它有多個(gè)輸出襯墊(source pad)。 圖53形象化的擁有多個(gè)輸出的過(guò)濾元件圖這個(gè)特殊的元件同時(shí)擁有源端和接收端。 圖52形象化的過(guò)濾元件圖像一個(gè)視頻分流器可能有一個(gè)接收襯墊以及多個(gè)(1N)源襯墊,每個(gè)接收襯墊對(duì)應(yīng)一種元數(shù)據(jù)流 (elementary stream)。音量元件(filter)、視頻轉(zhuǎn)換器 (convertor)、Ogg分流器或者 Vorbis 解碼器都是這種類(lèi)型的元件。. 過(guò)濾器(filters)、轉(zhuǎn)換器(convertors)、分流器(demuxers)、整流器(muxers)以及編解碼器(codecs)過(guò)濾器(Filters)以及類(lèi)過(guò)濾元件(Filterlike elements)都同時(shí)擁有輸入和輸出襯墊。圖 源元件不接收數(shù)據(jù),僅產(chǎn)生數(shù)據(jù)。形象化的源元件。在下一章 (Pads and capabilities),你將學(xué)習(xí)到更多關(guān)于對(duì)元件進(jìn)行數(shù)據(jù)輸入輸出的知識(shí),以及如何在你的程序中實(shí)現(xiàn)數(shù)據(jù)的輸入輸出。你從元件的一端輸入數(shù)據(jù),元件對(duì)數(shù)據(jù)進(jìn)行一些處理,然后數(shù)據(jù)從元件的另一段輸出。任何一個(gè)解碼器編碼器、分離器、視頻/音頻輸出部件實(shí)際上都是一個(gè) GstElement對(duì)象。元件是構(gòu)建一個(gè)媒體管道的基本塊。GstElement將表與由gst_init_get_option_group函數(shù)返回的選項(xiàng)組一同傳給GLib初始化函數(shù)。GOption return 0。 return 1。err)) { g_print (Failed to initialize: %s\n, errmessage)。argc, amp。 g_option_context_add_group (ctx, gst_init_get_option_group ())。 ctx = g_option_context_new ( Your application)。, 0, G_OPTION_ARG_STRING, amp。silent, do not output status information, NULL }, { output, 39。s39。 GError *err = NULL。 gchar *savefile = NULL。例子如下:注[1] 這個(gè)例子中的代碼可以直接提取出來(lái),并在GStreamer的examples/manual目錄下可以找到。當(dāng)命令行參數(shù)不需要被GStreamer解析的時(shí)候,你可以在調(diào)用函數(shù)gst_init時(shí)使用2個(gè)NULL參數(shù)。}你可以使用GST_VERSION_MAJOR, GST_VERSION_MINOR以及GST_VERSION_MICRO 三個(gè)宏得到你的GStreamer版本信息,或者使用函數(shù)gst_version得到當(dāng)前你所調(diào)用的程序庫(kù)的版本信息。 printf (This program is linked against GStreamer %d.%d.%d %s\n, major, minor, micro, nano_str)。 else if (nano == 2) nano_str = (Prerelease)。nano)。minor, amp。 gst_version (amp。argc, amp。 guint major, minor, micro, nano。[1]. 簡(jiǎn)易初始化在GStreamer庫(kù)被使用前,主應(yīng)用程序中應(yīng)該先調(diào)用函數(shù)gst_init,這個(gè)函數(shù)將會(huì)對(duì)GStreamer庫(kù)做一些必要的初始化工作,同時(shí) 也能夠?qū)Streamer的命令行參數(shù)進(jìn)行解析。除此之外,不要忘記初始化GStreamer庫(kù)。編譯運(yùn)行 .你的第一個(gè)應(yīng)用程序.緩沖區(qū).精靈襯墊9.功能應(yīng)用于元數(shù)據(jù).特性與 值.襯墊的功能.動(dòng) 態(tài)襯墊.襯墊(Pads)及其功能.如何使用一個(gè)總線.自定義箱柜7.什么是箱柜.元件狀態(tài)6.找 出元件所包含的襯墊.深入了解元件工廠.GstElement對(duì)象.接收元件.源元件.元件(Elements).簡(jiǎn)易初始化 .初始化如果你立馬想構(gòu)建一個(gè)應(yīng)用程序,你可能會(huì)使用一些高層(higherlevel)的API,它們會(huì)在這手冊(cè)的后部分被提到。然后你 會(huì)學(xué)習(xí)到如何構(gòu)建一個(gè)簡(jiǎn)單的基于命令行的應(yīng)用程序。我們給這些對(duì)象以一種形象化的描述,相信這樣會(huì)對(duì)我們?cè)诤筮厡W(xué)習(xí)到如何構(gòu)建一條管道時(shí)大有幫助。數(shù)據(jù)在這里代表的是緩沖區(qū)(buffers) (GstBuffer對(duì)象描述了數(shù)據(jù)的緩沖區(qū)(buffers)的信息)和事件(events) (GstEvent對(duì)象描述了數(shù)據(jù)的事件(events)信息)。source 襯墊(Pads),元件(element)接受數(shù)據(jù)是通過(guò)一個(gè)或者多個(gè)sink 襯墊(Pads)來(lái)完成的。對(duì)于大部分情況,所有的數(shù)據(jù)流都是在鏈接好的元素之間流動(dòng)。但我們很難將投影機(jī)與功放(amplifier)連接起來(lái),因?yàn)樗麄冎g處理的是不同的 插口。 我們需要連接DVD機(jī)到功放(amplifier),因?yàn)閮蓚€(gè)設(shè)備都有音頻插口。 例如一個(gè)家庭影院系統(tǒng)。下面的這個(gè)比喻可能對(duì)你理解襯墊(Pads)有所幫助。數(shù)據(jù)類(lèi)型的設(shè)定使用了一個(gè)叫做caps negotiation的方法。 襯墊(Pads)有處理特殊數(shù)據(jù)的能力:一個(gè)襯墊(Pads)能夠限制數(shù)據(jù)流類(lèi)型的通過(guò)。. 襯墊(Pads)襯墊(Pads)在GStreamer中被用于多個(gè)元件的鏈接,從而讓數(shù)據(jù)流能在這樣的鏈接中流動(dòng)。當(dāng)你設(shè)定管道的暫?;蛘卟シ艩顟B(tài)的時(shí)候,數(shù)據(jù)流將開(kāi)始流動(dòng),并且媒體數(shù)據(jù)處理也開(kāi)始處理。箱柜(Bins)可以發(fā)送總線消息(bus messages)給它的 子集元件(element)(這些消息包括:錯(cuò)誤消息(error messages),標(biāo)簽
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1