playback - Playing Video in SDL 2.0.4 (Theora) -
मैं उपयोग कर रहा हूँ: UBUNTU 14.04 + SDL 2.0.4 + कोड :: ब्लॉक 13.12 - ( C ++ मजबूत>) - libtheora.a (v.1.1.1) से लिंक
लक्ष्य: (डीकोड) खेलने में सक्षम होने के लिए एक एसडीएल 2 एप्लिकेशन में ओग थियोरा वीडियो।
मैं एफएफएमपीईजी लाइब्रेरी का इस्तेमाल कर सकता हूं। लेकिन लाइसेंस के मुद्दे हैं क्योंकि वे एमपीईजी ... आदि ... का उपयोग करते हैं, इसलिए मैंने "पेटेंट मुक्त" होने के बाद से ओग थियोरा पुस्तकालय का चयन किया है।
(
मैं एक बहुत सरल एसडीएल 2 + के लिए वेब में खोज रहा हूं। ओग थियोरा सी ++ में वीडियो गेम का उदाहरण, मेरे मामले में, केवल ऑडियो वीडियो को डीकोड करने की आवश्यकता नहीं है, और SDL2 को भेजना (संभवतः एक बनावट ...?) लेकिन मैं कुछ भी संबंधित नहीं पाया। मुझे केवल कुछ "गन्दा" कोड मिल गया, फिर भी, जो काम नहीं करता।
कोई भी कोड स्निपेट (कोई भी समाधान / कोई सुझाव / अन्य विचार) साझा कर सकता है? ...
< P> मेरे पास अब तक का कोड है ...(इस परीक्षण में, मैं "theoraplay.h" का उपयोग कर रहा हूं - इस समय) -
<कोड> // मेरी परियोजना लिंकेज: -lSDL2 -lSDL2_image -lSDL2_mixer -logg -lvorbis -lvorbisenc -lvorbisfile -ltheora -ltheoraenc -ltheoradec // SDL2: # शामिल करें & lt; एसडीएल। ज & gt; # शामिल करें & lt; SDL_image.h & gt; # शामिल करें & lt; SDL_mixer.h & gt; // OGG लाइब्रेरी: (मल्टीमीडिया आवरण) #include "ogg / ogg.h" // वॉर्बिस लाइब्रेरी: (ऑडियो) #include "वॉर्बिस / codec.h" #include "वॉर्बिस / vorbisenc.h" #include "वॉर्बिस / vorbisfile.h "// Theora लाइब्रेरी: (वीडियो) #include" Theora / theora.h "#include" Theora / theoraenc.h "#include" Theora / theoradec.h "//" ऑग Theora वीडियो के लिए आपके रूपरेखा " , से: https://icculus.org/theorplay // मैं इसे परीक्षण कर रहा हूँ ... # "theoraplay.h" // एसडीएल 2 - ऑब्जेक्ट्स शामिल करें: SDL_Surface * सतह; SDL_Texture * बनावट; एसडीएल_आकार आयत; // THEORAPLAY - ऑब्जेक्ट: THEORAPLAY_Decoder * decoder = NULL; // एक लिंक त्रुटि लौटाएगा ... क्यों? ... कॉन्स्ट थियरेपेल_विडियोफ्रेम * वीडियो = नल; // कोई समस्या नहीं (लिंक और रन ठीक है) थोरोपैले_ऑडियो पीकेट सेट करें * ऑडियो = नल; // कोई समस्या नहीं (लिंक और रन ठीक) int main (int args, char * argv []) {// (विंडो बनाने के लिए SDL2 कोड, रेंडरर, इवेंट, आदि, यहाँ जाता है ...) सतह = IMG_Load (" छवियों / example.png "); // एक छवि लोड करें बनावट = SDL_CreateTextureFromSurface (रेंडरर, अस्थायी); // एक बनावट में छवि को पास करें // "त्रुटि" - लॉग कहते हैं: अपरिभाषित संदर्भ के लिए "THEORAPLAY_startDecodeFile" ... विकोडक = THEORAPLAY_startDecodeFile ( "bunny.ogg", 20, THEORAPLAY_VIDFMT_YV12); // "बनी। ओग" - से ओग वीडियो: https://peach.blender.org/download // SDL2: यहां, थियोरा फ्रेम को एसडीएल 2 स्ट्रीमिंग बनावट में पास करने के लिए कोड जोड़ा जाएगा ... जबकि ( ) {// सब कुछ प्रस्तुत करना: SDL_RenderCopy (रेंडरर, बनावट, नल, और आयत); }; };
Comments
Post a Comment