Changes between Version 5 and Version 6 of MEDIA_ENGINE_IMPL_MAIN_R2


Ignore:
Timestamp:
08/26/09 17:51:27 (16 years ago)
Author:
nenko
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MEDIA_ENGINE_IMPL_MAIN_R2

    v5 v6  
    1515 
    1616== Task requirements == 
    17 Media will be designed to work with the FFmpeg (http://ffmpeg.org/) and within timelines. 
    18  
    19 A C++ wrapper for capturing video will be created to work with FFmpeg for Linux, Windows and Mac OS X as well as for their 64bit versions. 
    20  
    21 A C++ wrapper for playing back audio will be created to work with SDL or PortAudio for all platforms. 
    22  
    23 A protocol has to be defined for communication between the FFmpeg wrappers and Sophie. 
     17 * Write a C++ program that uses ffmpeg to render a frame from a video and send it back to Sophie2 
     18 * Compite this program on every platform Sophie2 support 
     19 * Write a simple demo that plays a video 
    2420 
    2521== Task result == 
    26 Demo, usage wiki page for the C wrapper. 
     22Demo, usage wiki page for the C++ application. 
    2723 
    2824== Implementation idea == 
    2925Use FFmpeg.[[BR]] 
    30 Change the logic of media in author to manipulate the media timeline. 
     26Extende JavaBridge and NativeBridge defined in [wiki:GROUP_WRAPPERS_R0] 
    3127 
    3228== Related == 
    33 [wiki:TIMELINES_REDESIGN_R1] 
     29[wiki:GROUP_WRAPPERS_R0] 
    3430 
    3531== How to demo == 
    36  * Insert a video frame. 
    37  * Play it to see if it is ok. 
    38  * Insert audio frame. 
    39  * Play the video and audio frames. 
    40  * Start some audio playback in a system player. 
    41  * Check that sound is mixed correctly. 
     32 * Start the demo 
     33 * Show the tutorial page 
    4234 
    4335= Design = 
    44 The communication between the C++ program and the Java program (Sophie2, except the demos) will be sequence of integers. We chose integers over string because there are too many encodings for strings. Every integer sequence will be in the following format: [[BR]] 
    45 <size> <id> ... [[BR]] 
    46 <size> and <id> are mandatory and their meanings are : 
    47  * size - the length of the integer sequence 
    48  * id - command/sequence id 
    49  
    50 Example(start command, whose id is 0) : 2 0  
    51  
    52 The communication will be in the following way: 
    53  * the Java program sends a command through the standard input of the C++ process 
    54  * the C++ program creates a respones on the base of the command 
    55  * the C++ program returns the reposne through its standard output 
    56  * the Java program receives the respone and acts on the base of it 
    57  
    58 This means that the Java program will be blocked until it recieves mething from the standard input of the process so the Java wrapper will be in separate thread. Also the control of the C++ application will be in the Java part - it will run and stop it. 
    59  
    60 The flow of communication written above is common for all other wrapers and native applications. This code will reside in classes called Bridges. [[BR]] 
    61 There will be some common commands and responses: 
    62  * StartCommand 
    63  * StopCommand 
    64  * OkResponse 
    65  * ErrorResponse 
    66  
    67 Design of the C++ part: 
    68  
    69 Design of the Java part: 
    7036= Implementation = 
    7137^(Describe and link the implementation results here (from the wiki or the repository).)^