<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>gmerlin: /home/mandrake/rpm/BUILD/gmerlin-0.4.1/include/gmerlin/edl.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.9 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="dir_9de5cad15617e449f29680677e022ed8.html">include</a> » <a class="el" href="dir_4a3f2046eda2c9424010fb7393a61021.html">gmerlin</a> </div> </div> <div class="contents"> <h1>edl.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*****************************************************************</span> <a name="l00002"></a>00002 <span class="comment"> * gmerlin - a general purpose multimedia framework and applications</span> <a name="l00003"></a>00003 <span class="comment"> *</span> <a name="l00004"></a>00004 <span class="comment"> * Copyright (c) 2001 - 2008 Members of the Gmerlin project</span> <a name="l00005"></a>00005 <span class="comment"> * gmerlin-general@lists.sourceforge.net</span> <a name="l00006"></a>00006 <span class="comment"> * http://gmerlin.sourceforge.net</span> <a name="l00007"></a>00007 <span class="comment"> *</span> <a name="l00008"></a>00008 <span class="comment"> * This program is free software: you can redistribute it and/or modify</span> <a name="l00009"></a>00009 <span class="comment"> * it under the terms of the GNU General Public License as published by</span> <a name="l00010"></a>00010 <span class="comment"> * the Free Software Foundation, either version 2 of the License, or</span> <a name="l00011"></a>00011 <span class="comment"> * (at your option) any later version.</span> <a name="l00012"></a>00012 <span class="comment"> *</span> <a name="l00013"></a>00013 <span class="comment"> * This program is distributed in the hope that it will be useful,</span> <a name="l00014"></a>00014 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span> <a name="l00015"></a>00015 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span> <a name="l00016"></a>00016 <span class="comment"> * GNU General Public License for more details.</span> <a name="l00017"></a>00017 <span class="comment"> *</span> <a name="l00018"></a>00018 <span class="comment"> * You should have received a copy of the GNU General Public License</span> <a name="l00019"></a>00019 <span class="comment"> * along with this program. If not, see <http://www.gnu.org/licenses/>.</span> <a name="l00020"></a>00020 <span class="comment"> * *****************************************************************/</span> <a name="l00021"></a>00021 <a name="l00022"></a>00022 <span class="preprocessor">#ifndef __BG_EDL_H_</span> <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#define __BG_EDL_H_</span> <a name="l00024"></a>00024 <span class="preprocessor"></span> <a name="l00025"></a>00025 <span class="preprocessor">#include <gmerlin/parameter.h></span> <a name="l00026"></a>00026 <span class="preprocessor">#include <gmerlin/streaminfo.h></span> <a name="l00027"></a>00027 <a name="l00057"></a><a class="code" href="group__edl.html#g6dc66d5b84ca17c4ca477a741daba46c">00057</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structbg__edl__s.html" title="EDL structure.">bg_edl_s</a> <a class="code" href="structbg__edl__s.html" title="EDL structure.">bg_edl_t</a>; <a name="l00058"></a>00058 <a name="l00059"></a>00059 <a name="l00063"></a><a class="code" href="structbg__edl__segment__t.html">00063</a> <span class="keyword">typedef</span> <span class="keyword">struct</span> <a name="l00064"></a>00064 { <a name="l00065"></a><a class="code" href="structbg__edl__segment__t.html#25aeab6190f3854a879f8c2d3644f484">00065</a> <span class="keywordtype">char</span> * <a class="code" href="structbg__edl__s.html#d1a0bb904ade98316ab8f7cc3bdc217e" title="Filename if all streams are from the same file.">url</a>; <a name="l00066"></a>00066 <a name="l00067"></a><a class="code" href="structbg__edl__segment__t.html#703d06a00cd99f4214600e97ec3dca33">00067</a> <span class="keywordtype">int</span> track; <a name="l00068"></a><a class="code" href="structbg__edl__segment__t.html#d13a3c8b4627132686468c11c27ac77f">00068</a> <span class="keywordtype">int</span> stream; <a name="l00069"></a><a class="code" href="structbg__edl__segment__t.html#2aeb4c272e01592b6da092491c289f4b">00069</a> <span class="keywordtype">int</span> timescale; <a name="l00070"></a>00070 <a name="l00071"></a><a class="code" href="structbg__edl__segment__t.html#13ebdef4ca5845897a79bba2cbaaa8fe">00071</a> int64_t src_time; <a name="l00072"></a>00072 <a name="l00073"></a>00073 <span class="comment">/* Time and duration within the destination in destination</span> <a name="l00074"></a>00074 <span class="comment"> timescale */</span> <a name="l00075"></a><a class="code" href="structbg__edl__segment__t.html#e3c8c8fa5fc7ae071f752a65772ecfba">00075</a> int64_t dst_time; <a name="l00076"></a><a class="code" href="structbg__edl__segment__t.html#6265d5e66bc5dc61bfba9e7cc57235b9">00076</a> int64_t dst_duration; <a name="l00077"></a>00077 <a name="l00078"></a>00078 <span class="comment">/* */</span> <a name="l00079"></a><a class="code" href="structbg__edl__segment__t.html#5986c6ffd144c341a3db454bcedee161">00079</a> int32_t speed_num; <a name="l00080"></a><a class="code" href="structbg__edl__segment__t.html#59ae1189f9f82e49078f076020779e1a">00080</a> int32_t speed_den; <a name="l00081"></a>00081 } <a class="code" href="structbg__edl__segment__t.html" title="One segment of a physical stream to appear in a logical stream.">bg_edl_segment_t</a>; <a name="l00082"></a>00082 <a name="l00086"></a><a class="code" href="structbg__edl__stream__t.html">00086</a> <span class="keyword">typedef</span> <span class="keyword">struct</span> <a name="l00087"></a>00087 { <a name="l00088"></a><a class="code" href="structbg__edl__stream__t.html#cb23dc9f1303ebfb50a845f14271be90">00088</a> <a class="code" href="structbg__edl__segment__t.html" title="One segment of a physical stream to appear in a logical stream.">bg_edl_segment_t</a> * segments; <a name="l00089"></a><a class="code" href="structbg__edl__stream__t.html#7387214199b64e1a6cbfc2ff37cda7d0">00089</a> <span class="keywordtype">int</span> num_segments; <a name="l00090"></a><a class="code" href="structbg__edl__stream__t.html#0063f97888b724c2d5084e5084cb7b44">00090</a> <span class="keywordtype">int</span> timescale; <a name="l00091"></a>00091 } <a class="code" href="structbg__edl__stream__t.html" title="A locical stream.">bg_edl_stream_t</a>; <a name="l00092"></a>00092 <a name="l00096"></a><a class="code" href="structbg__edl__track__t.html">00096</a> <span class="keyword">typedef</span> <span class="keyword">struct</span> <a name="l00097"></a>00097 { <a name="l00098"></a><a class="code" href="structbg__edl__track__t.html#a1b99e22bb3cce0109d81d5ee4b1ce26">00098</a> <span class="keywordtype">char</span> * name; <a name="l00099"></a>00099 <a name="l00100"></a><a class="code" href="structbg__edl__track__t.html#fced41ba8d833618415fcddf3db9607d">00100</a> <span class="keywordtype">int</span> num_audio_streams; <a name="l00101"></a><a class="code" href="structbg__edl__track__t.html#b95fb91cba5887d56bf308b9f037282d">00101</a> <a class="code" href="structbg__edl__stream__t.html" title="A locical stream.">bg_edl_stream_t</a> * audio_streams; <a name="l00102"></a>00102 <a name="l00103"></a><a class="code" href="structbg__edl__track__t.html#eb86b0dec892d8828f809b7842288816">00103</a> <span class="keywordtype">int</span> num_video_streams; <a name="l00104"></a><a class="code" href="structbg__edl__track__t.html#bc69ceb036b4a988e8697129c7931ddd">00104</a> <a class="code" href="structbg__edl__stream__t.html" title="A locical stream.">bg_edl_stream_t</a> * video_streams; <a name="l00105"></a>00105 <a name="l00106"></a><a class="code" href="structbg__edl__track__t.html#0052794862edbd6e615cf087a03d5c54">00106</a> <span class="keywordtype">int</span> num_subtitle_text_streams; <a name="l00107"></a><a class="code" href="structbg__edl__track__t.html#8386fc12f42c678909abb651a0ab407e">00107</a> <a class="code" href="structbg__edl__stream__t.html" title="A locical stream.">bg_edl_stream_t</a> * subtitle_text_streams; <a name="l00108"></a>00108 <a name="l00109"></a><a class="code" href="structbg__edl__track__t.html#d23286fddd191b13a68a7423efa00d1f">00109</a> <span class="keywordtype">int</span> num_subtitle_overlay_streams; <a name="l00110"></a><a class="code" href="structbg__edl__track__t.html#c59f25263c8fce1f5cb0c8d9987914be">00110</a> <a class="code" href="structbg__edl__stream__t.html" title="A locical stream.">bg_edl_stream_t</a> * subtitle_overlay_streams; <a name="l00111"></a>00111 <a name="l00112"></a>00112 } <a class="code" href="structbg__edl__track__t.html" title="A locical track.">bg_edl_track_t</a>; <a name="l00113"></a>00113 <a name="l00117"></a><a class="code" href="structbg__edl__s.html">00117</a> <span class="keyword">struct </span><a class="code" href="structbg__edl__s.html" title="EDL structure.">bg_edl_s</a> <a name="l00118"></a>00118 { <a name="l00119"></a><a class="code" href="structbg__edl__s.html#9e4f2cc9308cc763f5dffdd4cf4e904b">00119</a> <span class="keywordtype">int</span> <a class="code" href="structbg__edl__s.html#9e4f2cc9308cc763f5dffdd4cf4e904b" title="Number of logical tracks.">num_tracks</a>; <a name="l00120"></a><a class="code" href="structbg__edl__s.html#5cb1425b8956ecb97d9e1368d6c68e27">00120</a> <a class="code" href="structbg__edl__track__t.html" title="A locical track.">bg_edl_track_t</a> * <a class="code" href="structbg__edl__s.html#5cb1425b8956ecb97d9e1368d6c68e27" title="Logical tracks.">tracks</a>; <a name="l00121"></a><a class="code" href="structbg__edl__s.html#d1a0bb904ade98316ab8f7cc3bdc217e">00121</a> <span class="keywordtype">char</span> * <a class="code" href="structbg__edl__s.html#d1a0bb904ade98316ab8f7cc3bdc217e" title="Filename if all streams are from the same file.">url</a>; <a name="l00122"></a>00122 }; <a name="l00123"></a>00123 <a name="l00128"></a>00128 <a class="code" href="structbg__edl__s.html" title="EDL structure.">bg_edl_t</a> * <a class="code" href="group__edl.html#ge2650d8ae456dab62384e72576b01f27" title="Create an empty EDL.">bg_edl_create</a>(); <a name="l00129"></a>00129 <a name="l00135"></a>00135 <a class="code" href="structbg__edl__track__t.html" title="A locical track.">bg_edl_track_t</a> * <a class="code" href="group__edl.html#gcf4d5e01cc8d256995c30228f8f2b7b8" title="Append a track to the EDL.">bg_edl_add_track</a>(<a class="code" href="structbg__edl__s.html" title="EDL structure.">bg_edl_t</a> * e); <a name="l00136"></a>00136 <a name="l00142"></a>00142 <a class="code" href="structbg__edl__stream__t.html" title="A locical stream.">bg_edl_stream_t</a> * <a class="code" href="group__edl.html#g7606ee48defff4e4d785705d4d171d8a" title="Append an audio stream to an EDL track.">bg_edl_add_audio_stream</a>(<a class="code" href="structbg__edl__track__t.html" title="A locical track.">bg_edl_track_t</a> * t); <a name="l00143"></a>00143 <a name="l00149"></a>00149 <a class="code" href="structbg__edl__stream__t.html" title="A locical stream.">bg_edl_stream_t</a> * <a class="code" href="group__edl.html#g138e408c013cee9f66c20ad8a8023edf" title="Append a video stream to an EDL track.">bg_edl_add_video_stream</a>(<a class="code" href="structbg__edl__track__t.html" title="A locical track.">bg_edl_track_t</a> * t); <a name="l00150"></a>00150 <a name="l00156"></a>00156 <a class="code" href="structbg__edl__stream__t.html" title="A locical stream.">bg_edl_stream_t</a> * <a class="code" href="group__edl.html#g3671c531a8c3ef92ea147341a5df1006" title="Append a text subtitle stream to an EDL track.">bg_edl_add_subtitle_text_stream</a>(<a class="code" href="structbg__edl__track__t.html" title="A locical track.">bg_edl_track_t</a> * t); <a name="l00157"></a>00157 <a name="l00163"></a>00163 <a class="code" href="structbg__edl__stream__t.html" title="A locical stream.">bg_edl_stream_t</a> * <a class="code" href="group__edl.html#gb9b48f7a24b6407b1e84497df5efa0c2" title="Append an overlay subtitle stream to an EDL track.">bg_edl_add_subtitle_overlay_stream</a>(<a class="code" href="structbg__edl__track__t.html" title="A locical track.">bg_edl_track_t</a> * t); <a name="l00164"></a>00164 <a name="l00170"></a>00170 <a class="code" href="structbg__edl__segment__t.html" title="One segment of a physical stream to appear in a logical stream.">bg_edl_segment_t</a> * <a class="code" href="group__edl.html#gf0e038ae977627cf89ce77afcd883274" title="Append a segment to an EDL stream.">bg_edl_add_segment</a>(<a class="code" href="structbg__edl__stream__t.html" title="A locical stream.">bg_edl_stream_t</a> * s); <a name="l00171"></a>00171 <a name="l00177"></a>00177 <a class="code" href="structbg__edl__s.html" title="EDL structure.">bg_edl_t</a> * <a class="code" href="group__edl.html#gacdacf006599a37ea0cf2a70354c95fb" title="Copy an entire EDL.">bg_edl_copy</a>(<span class="keyword">const</span> <a class="code" href="structbg__edl__s.html" title="EDL structure.">bg_edl_t</a> * e); <a name="l00178"></a>00178 <a name="l00183"></a>00183 <span class="keywordtype">void</span> <a class="code" href="group__edl.html#g753057c6b4538199cfc9b88fc59ab010" title="Destroy an EDL and free all memory.">bg_edl_destroy</a>(<a class="code" href="structbg__edl__s.html" title="EDL structure.">bg_edl_t</a> * e); <a name="l00184"></a>00184 <a name="l00191"></a>00191 <span class="keywordtype">void</span> <a class="code" href="group__edl.html#g83d62c6aa46ad9b8caf06ada9d407fe3" title="Dump an EDL to stderr.">bg_edl_dump</a>(<span class="keyword">const</span> <a class="code" href="structbg__edl__s.html" title="EDL structure.">bg_edl_t</a> * e); <a name="l00192"></a>00192 <a name="l00200"></a>00200 <span class="keywordtype">void</span> <a class="code" href="group__edl.html#gf161b06141f2340805b4d43fbc4651f6" title="Save an EDL to an xml file.">bg_edl_save</a>(<span class="keyword">const</span> <a class="code" href="structbg__edl__s.html" title="EDL structure.">bg_edl_t</a> * e, <span class="keyword">const</span> <span class="keywordtype">char</span> * filename); <a name="l00201"></a>00201 <a name="l00207"></a>00207 <a class="code" href="structbg__edl__s.html" title="EDL structure.">bg_edl_t</a> * <a class="code" href="group__edl.html#g617615bbd944dec4522b89b0929b8701" title="Load an EDL from an xml file.">bg_edl_load</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * filename); <a name="l00208"></a>00208 <a name="l00226"></a>00226 <span class="keywordtype">void</span> <a class="code" href="group__edl.html#gb694189899b657b4d6ebd399c78e7bc0" title="Append a bg_track_info_t to the EDL.">bg_edl_append_track_info</a>(<a class="code" href="structbg__edl__s.html" title="EDL structure.">bg_edl_t</a> * e, <a name="l00227"></a>00227 <span class="keyword">const</span> <a class="code" href="structbg__track__info__t.html" title="Track info.">bg_track_info_t</a> * info, <span class="keyword">const</span> <span class="keywordtype">char</span> * url, <a name="l00228"></a>00228 <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> num_tracks, <span class="keyword">const</span> <span class="keywordtype">char</span> * name); <a name="l00229"></a>00229 <a name="l00235"></a>00235 <span class="preprocessor">#endif // __BG_EDL_H_</span> </pre></div></div> <hr size="1"><address style="text-align: right;"><small>Generated on Sat Aug 22 01:28:04 2009 for gmerlin by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> </body> </html>