finished asserts
This commit is contained in:
parent
ebf573ca21
commit
dff4f4c6a1
13 changed files with 1084 additions and 28 deletions
4
NOTE.md
4
NOTE.md
|
@ -3,14 +3,14 @@ A faire :
|
||||||
|
|
||||||
1. Principal :
|
1. Principal :
|
||||||
- Documenter (Docstring, README, ...)
|
- Documenter (Docstring, README, ...)
|
||||||
- test avec "assert" (cahier des charges)
|
|
||||||
- mode d'emploi (video + pdf) expliquant le fonctionnement
|
- mode d'emploi (video + pdf) expliquant le fonctionnement
|
||||||
|
|
||||||
2. Bonus :
|
2. Bonus :
|
||||||
- sauvegarder les paramètres dans un fichier
|
- sauvegarder les paramètres dans un fichier
|
||||||
|
|
||||||
3. Bug :
|
3. Bug :
|
||||||
- /
|
- Impossible de changer le volume sur linux
|
||||||
|
- Cliquer trop vite coupe le son
|
||||||
|
|
||||||
4. Vérification :
|
4. Vérification :
|
||||||
- Tester sur Linux
|
- Tester sur Linux
|
||||||
|
|
BIN
assets/image/result/.kdenlive/background.png
Normal file
BIN
assets/image/result/.kdenlive/background.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
BIN
assets/image/result/.kdenlive/chevron.png
Normal file
BIN
assets/image/result/.kdenlive/chevron.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.4 KiB |
410
assets/image/result/.kdenlive/defeat.kdenlive
Normal file
410
assets/image/result/.kdenlive/defeat.kdenlive
Normal file
|
@ -0,0 +1,410 @@
|
||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<mlt LC_NUMERIC="C" producer="main_bin" version="7.13.0" root="./">
|
||||||
|
<profile frame_rate_num="25" sample_aspect_num="1" display_aspect_den="9" colorspace="709" progressive="1" description="HD 1080p 25 fps" display_aspect_num="16" frame_rate_den="1" width="1920" height="1080" sample_aspect_den="1"/>
|
||||||
|
<producer id="producer1" in="00:00:00.000" out="00:00:04.960">
|
||||||
|
<property name="length">125</property>
|
||||||
|
<property name="eof">pause</property>
|
||||||
|
<property name="resource"/>
|
||||||
|
<property name="progressive">1</property>
|
||||||
|
<property name="aspect_ratio">1</property>
|
||||||
|
<property name="seekable">1</property>
|
||||||
|
<property name="mlt_service">kdenlivetitle</property>
|
||||||
|
<property name="kdenlive:duration">125</property>
|
||||||
|
<property name="kdenlive:clipname">Victoire</property>
|
||||||
|
<property name="xmldata"><kdenlivetitle duration="125" LC_NUMERIC="C" width="1920" height="1080" out="124">
|
||||||
|
<item type="QGraphicsTextItem" z-index="0">
|
||||||
|
<position x="598" y="434">
|
||||||
|
<transform>1,0,0,0,1,0,0,0,1</transform>
|
||||||
|
</position>
|
||||||
|
<content line-spacing="0" shadow="1;#64000000;10;5;6" font-underline="0" box-height="245" font-outline-color="0,0,0,255" font="Century Gothic" letter-spacing="0" font-pixel-size="200" font-italic="0" typewriter="0;1;1;0;0" alignment="4" font-weight="75" font-outline="3" box-width="729" font-color="255,255,255,255">Défaite</content>
|
||||||
|
</item>
|
||||||
|
<startviewport rect="0,0,1920,1080"/>
|
||||||
|
<endviewport rect="0,0,1920,1080"/>
|
||||||
|
<background color="0,0,0,0"/>
|
||||||
|
</kdenlivetitle>
|
||||||
|
</property>
|
||||||
|
<property name="kdenlive:folderid">-1</property>
|
||||||
|
<property name="kdenlive:clip_type">2</property>
|
||||||
|
<property name="kdenlive:id">3</property>
|
||||||
|
<property name="kdenlive:file_hash">5352d10ffc6fee2ef8bfc95db4eceedb</property>
|
||||||
|
<property name="force_reload">0</property>
|
||||||
|
<property name="meta.media.width">1920</property>
|
||||||
|
<property name="meta.media.height">1080</property>
|
||||||
|
</producer>
|
||||||
|
<producer id="producer0" in="00:00:00.000" out="00:00:04.960">
|
||||||
|
<property name="length">00:00:05.000</property>
|
||||||
|
<property name="eof">pause</property>
|
||||||
|
<property name="resource">background.png</property>
|
||||||
|
<property name="ttl">25</property>
|
||||||
|
<property name="aspect_ratio">1</property>
|
||||||
|
<property name="progressive">1</property>
|
||||||
|
<property name="seekable">1</property>
|
||||||
|
<property name="format">2</property>
|
||||||
|
<property name="meta.media.width">1920</property>
|
||||||
|
<property name="meta.media.height">1080</property>
|
||||||
|
<property name="mlt_service">qimage</property>
|
||||||
|
<property name="kdenlive:clipname"/>
|
||||||
|
<property name="kdenlive:duration">00:00:05.000</property>
|
||||||
|
<property name="kdenlive:folderid">-1</property>
|
||||||
|
<property name="kdenlive:clip_type">2</property>
|
||||||
|
<property name="kdenlive:id">4</property>
|
||||||
|
<property name="kdenlive:file_size">10670</property>
|
||||||
|
<property name="kdenlive:file_hash">7fbb59f3d68679fdd9322cd9f675b781</property>
|
||||||
|
</producer>
|
||||||
|
<producer id="producer2" in="00:00:00.000" out="00:00:04.960">
|
||||||
|
<property name="length">00:00:05.000</property>
|
||||||
|
<property name="eof">pause</property>
|
||||||
|
<property name="resource">chevron.png</property>
|
||||||
|
<property name="ttl">25</property>
|
||||||
|
<property name="aspect_ratio">1</property>
|
||||||
|
<property name="progressive">1</property>
|
||||||
|
<property name="seekable">1</property>
|
||||||
|
<property name="format">2</property>
|
||||||
|
<property name="meta.media.width">372</property>
|
||||||
|
<property name="meta.media.height">201</property>
|
||||||
|
<property name="mlt_service">qimage</property>
|
||||||
|
<property name="kdenlive:clipname"/>
|
||||||
|
<property name="kdenlive:duration">00:00:05.000</property>
|
||||||
|
<property name="kdenlive:proxy">-</property>
|
||||||
|
<property name="kdenlive:originalurl">chevron.png</property>
|
||||||
|
<property name="kdenlive:clip_type">2</property>
|
||||||
|
<property name="kdenlive:id">2</property>
|
||||||
|
<property name="kdenlive:file_size">6589</property>
|
||||||
|
<property name="kdenlive:file_hash">f85f1e5d5d8771dd5ae13a4f300a3160</property>
|
||||||
|
<property name="kdenlive:folderid">-1</property>
|
||||||
|
</producer>
|
||||||
|
<playlist id="main_bin">
|
||||||
|
<property name="kdenlive:docproperties.activeTrack">3</property>
|
||||||
|
<property name="kdenlive:docproperties.audioChannels">2</property>
|
||||||
|
<property name="kdenlive:docproperties.audioTarget">-1</property>
|
||||||
|
<property name="kdenlive:docproperties.compositing">1</property>
|
||||||
|
<property name="kdenlive:docproperties.dirtypreviewchunks">0-75</property>
|
||||||
|
<property name="kdenlive:docproperties.disablepreview">0</property>
|
||||||
|
<property name="kdenlive:docproperties.documentid">1678437287130</property>
|
||||||
|
<property name="kdenlive:docproperties.enableTimelineZone">1</property>
|
||||||
|
<property name="kdenlive:docproperties.enableexternalproxy">0</property>
|
||||||
|
<property name="kdenlive:docproperties.enableproxy">0</property>
|
||||||
|
<property name="kdenlive:docproperties.externalproxyparams"/>
|
||||||
|
<property name="kdenlive:docproperties.generateimageproxy">0</property>
|
||||||
|
<property name="kdenlive:docproperties.generateproxy">0</property>
|
||||||
|
<property name="kdenlive:docproperties.groups">[
|
||||||
|
]
|
||||||
|
</property>
|
||||||
|
<property name="kdenlive:docproperties.guidesCategories">[
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 1 ",
|
||||||
|
"index": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 2 ",
|
||||||
|
"index": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 3 ",
|
||||||
|
"index": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 4 ",
|
||||||
|
"index": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 5 ",
|
||||||
|
"index": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 6 ",
|
||||||
|
"index": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 7 ",
|
||||||
|
"index": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 8 ",
|
||||||
|
"index": 7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 9 ",
|
||||||
|
"index": 8
|
||||||
|
}
|
||||||
|
]
|
||||||
|
</property>
|
||||||
|
<property name="kdenlive:docproperties.kdenliveversion">22.12.0</property>
|
||||||
|
<property name="kdenlive:docproperties.position">62</property>
|
||||||
|
<property name="kdenlive:docproperties.previewchunks"/>
|
||||||
|
<property name="kdenlive:docproperties.previewextension">mkv</property>
|
||||||
|
<property name="kdenlive:docproperties.previewparameters">vcodec=h264_nvenc g=1 bf=0 preset=fast qmin=10 qmax=30</property>
|
||||||
|
<property name="kdenlive:docproperties.profile">atsc_1080p_25</property>
|
||||||
|
<property name="kdenlive:docproperties.proxyextension"/>
|
||||||
|
<property name="kdenlive:docproperties.proxyimageminsize">2000</property>
|
||||||
|
<property name="kdenlive:docproperties.proxyimagesize">800</property>
|
||||||
|
<property name="kdenlive:docproperties.proxyminsize">1000</property>
|
||||||
|
<property name="kdenlive:docproperties.proxyparams"/>
|
||||||
|
<property name="kdenlive:docproperties.proxyresize">640</property>
|
||||||
|
<property name="kdenlive:docproperties.rendercategory">Video with Alpha</property>
|
||||||
|
<property name="kdenlive:docproperties.rendercustomquality">25</property>
|
||||||
|
<property name="kdenlive:docproperties.renderendguide">-1</property>
|
||||||
|
<property name="kdenlive:docproperties.renderexportaudio">0</property>
|
||||||
|
<property name="kdenlive:docproperties.rendermode">0</property>
|
||||||
|
<property name="kdenlive:docproperties.renderplay">0</property>
|
||||||
|
<property name="kdenlive:docproperties.renderpreview">0</property>
|
||||||
|
<property name="kdenlive:docproperties.renderprofile">Alpha VP9</property>
|
||||||
|
<property name="kdenlive:docproperties.renderratio">1</property>
|
||||||
|
<property name="kdenlive:docproperties.renderrescale">0</property>
|
||||||
|
<property name="kdenlive:docproperties.renderrescaleheight">540</property>
|
||||||
|
<property name="kdenlive:docproperties.renderrescalewidth">960</property>
|
||||||
|
<property name="kdenlive:docproperties.renderspeed">1</property>
|
||||||
|
<property name="kdenlive:docproperties.renderstartguide">-1</property>
|
||||||
|
<property name="kdenlive:docproperties.rendertcoverlay">0</property>
|
||||||
|
<property name="kdenlive:docproperties.rendertctype">-1</property>
|
||||||
|
<property name="kdenlive:docproperties.rendertwopass">0</property>
|
||||||
|
<property name="kdenlive:docproperties.renderurl">defeat.webm</property>
|
||||||
|
<property name="kdenlive:docproperties.scrollPos">0</property>
|
||||||
|
<property name="kdenlive:docproperties.seekOffset">30000</property>
|
||||||
|
<property name="kdenlive:docproperties.version">1.04</property>
|
||||||
|
<property name="kdenlive:docproperties.verticalzoom">1</property>
|
||||||
|
<property name="kdenlive:docproperties.videoTarget">0</property>
|
||||||
|
<property name="kdenlive:docproperties.zonein">0</property>
|
||||||
|
<property name="kdenlive:docproperties.zoneout">105</property>
|
||||||
|
<property name="kdenlive:docproperties.zoom">4</property>
|
||||||
|
<property name="kdenlive:expandedFolders"/>
|
||||||
|
<property name="kdenlive:documentnotes"/>
|
||||||
|
<property name="xml_retain">1</property>
|
||||||
|
<entry producer="producer1" in="00:00:00.000" out="00:00:04.960"/>
|
||||||
|
<entry producer="producer0" in="00:00:00.000" out="00:00:04.960"/>
|
||||||
|
<entry producer="producer2" in="00:00:00.000" out="00:00:04.960"/>
|
||||||
|
</playlist>
|
||||||
|
<producer id="black_track" in="00:00:00.000" out="00:20:04.200">
|
||||||
|
<property name="length">2147483647</property>
|
||||||
|
<property name="eof">continue</property>
|
||||||
|
<property name="resource">black</property>
|
||||||
|
<property name="aspect_ratio">1</property>
|
||||||
|
<property name="mlt_service">color</property>
|
||||||
|
<property name="mlt_image_format">rgba</property>
|
||||||
|
<property name="set.test_audio">0</property>
|
||||||
|
</producer>
|
||||||
|
<playlist id="playlist0">
|
||||||
|
<entry producer="producer0" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:id">4</property>
|
||||||
|
<filter id="filter0">
|
||||||
|
<property name="rotate_center">1</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="rect">00:00:00.000=-960 -540 3840 2160 0.000000;00:00:00.760=-960 -540 3840 2160 0.350000;00:00:03.000=-960 -540 3840 2160 0.350000;00:00:04.160=-960 -540 3840 2160 0.000000</property>
|
||||||
|
<property name="rotation">00:00:00.000=0;00:00:00.760=0;00:00:03.000=0;00:00:04.160=0</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
</entry>
|
||||||
|
</playlist>
|
||||||
|
<playlist id="playlist1"/>
|
||||||
|
<tractor id="tractor0" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:trackheight">67</property>
|
||||||
|
<property name="kdenlive:timeline_active">1</property>
|
||||||
|
<track producer="playlist0"/>
|
||||||
|
<track producer="playlist1"/>
|
||||||
|
</tractor>
|
||||||
|
<playlist id="playlist2">
|
||||||
|
<entry producer="producer2" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:id">2</property>
|
||||||
|
<property name="kdenlive:activeeffect">0</property>
|
||||||
|
<filter id="filter1">
|
||||||
|
<property name="rotate_center">1</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="rect">00:00:00.000=672 -300 576 324 1.000000;00:00:00.280=672 600 576 324 1.000000;00:00:02.000=672 600 576 324 1.000000;00:00:02.240=672 1540 576 324 1.000000</property>
|
||||||
|
<property name="rotation">00:00:00.000=0;00:00:00.280=0;00:00:02.000=0;00:00:02.240=0</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
</entry>
|
||||||
|
</playlist>
|
||||||
|
<playlist id="playlist3"/>
|
||||||
|
<tractor id="tractor1" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:trackheight">67</property>
|
||||||
|
<property name="kdenlive:timeline_active">1</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
<property name="kdenlive:thumbs_format"/>
|
||||||
|
<property name="kdenlive:audio_rec"/>
|
||||||
|
<track hide="audio" producer="playlist2"/>
|
||||||
|
<track hide="audio" producer="playlist3"/>
|
||||||
|
</tractor>
|
||||||
|
<playlist id="playlist4">
|
||||||
|
<blank length="00:00:00.280"/>
|
||||||
|
<entry producer="producer2" in="00:00:00.000" out="00:00:03.880">
|
||||||
|
<property name="kdenlive:id">2</property>
|
||||||
|
<property name="kdenlive:activeeffect">0</property>
|
||||||
|
<filter id="filter2">
|
||||||
|
<property name="rotate_center">1</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="rect">00:00:00.000=672 -820 576 324 1.000000;00:00:00.280=672 380 576 324 1.000000;00:00:01.960=672 380 576 324 1.000000;00:00:02.200=672 1320 576 324 1.000000</property>
|
||||||
|
<property name="rotation">00:00:00.000=0;00:00:00.280=0;00:00:01.960=0;00:00:02.200=0</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
</entry>
|
||||||
|
</playlist>
|
||||||
|
<playlist id="playlist5"/>
|
||||||
|
<tractor id="tractor2" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:trackheight">67</property>
|
||||||
|
<property name="kdenlive:timeline_active">1</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
<property name="kdenlive:thumbs_format"/>
|
||||||
|
<property name="kdenlive:audio_rec"/>
|
||||||
|
<track hide="audio" producer="playlist4"/>
|
||||||
|
<track hide="audio" producer="playlist5"/>
|
||||||
|
</tractor>
|
||||||
|
<playlist id="playlist6">
|
||||||
|
<blank length="00:00:00.560"/>
|
||||||
|
<entry producer="producer2" in="00:00:00.000" out="00:00:03.600">
|
||||||
|
<property name="kdenlive:id">2</property>
|
||||||
|
<property name="kdenlive:activeeffect">0</property>
|
||||||
|
<filter id="filter3">
|
||||||
|
<property name="rotate_center">1</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="rect">00:00:00.000=672 -1040 576 324 1.000000;00:00:00.280=672 160 576 324 1.000000;00:00:01.920=672 160 576 324 1.000000;00:00:02.160=672 1100 576 323 1.000000</property>
|
||||||
|
<property name="rotation">00:00:00.000=0;00:00:00.280=0;00:00:01.920=0;00:00:02.160=0</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
</entry>
|
||||||
|
</playlist>
|
||||||
|
<playlist id="playlist7"/>
|
||||||
|
<tractor id="tractor3" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:trackheight">67</property>
|
||||||
|
<property name="kdenlive:timeline_active">1</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
<property name="kdenlive:thumbs_format"/>
|
||||||
|
<property name="kdenlive:audio_rec"/>
|
||||||
|
<track hide="audio" producer="playlist6"/>
|
||||||
|
<track hide="audio" producer="playlist7"/>
|
||||||
|
</tractor>
|
||||||
|
<playlist id="playlist8">
|
||||||
|
<blank length="00:00:00.800"/>
|
||||||
|
<entry producer="producer1" in="00:00:00.000" out="00:00:03.360">
|
||||||
|
<property name="kdenlive:id">3</property>
|
||||||
|
<filter id="filter6">
|
||||||
|
<property name="rotate_center">1</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="rect">00:00:00.000=950 535 19 10 1.000000;00:00:00.200=-480 -270 2880 1620 1.000000</property>
|
||||||
|
<property name="rotation">00:00:00.000=0;00:00:00.200=0</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
<filter id="filter7" in="00:00:02.360" out="00:00:03.360">
|
||||||
|
<property name="start">1</property>
|
||||||
|
<property name="level">1</property>
|
||||||
|
<property name="mlt_service">brightness</property>
|
||||||
|
<property name="kdenlive_id">fade_to_black</property>
|
||||||
|
<property name="alpha">00:00:00.000=1;00:00:01.000=0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
</entry>
|
||||||
|
</playlist>
|
||||||
|
<playlist id="playlist9"/>
|
||||||
|
<tractor id="tractor4" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:trackheight">67</property>
|
||||||
|
<property name="kdenlive:timeline_active">1</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
<property name="kdenlive:thumbs_format"/>
|
||||||
|
<property name="kdenlive:audio_rec"/>
|
||||||
|
<track hide="audio" producer="playlist8"/>
|
||||||
|
<track hide="audio" producer="playlist9"/>
|
||||||
|
</tractor>
|
||||||
|
<playlist id="timeline_preview"/>
|
||||||
|
<tractor id="tractor5" in="00:00:00.000" out="00:20:04.200">
|
||||||
|
<track producer="black_track"/>
|
||||||
|
<track producer="tractor0"/>
|
||||||
|
<track producer="tractor1"/>
|
||||||
|
<track producer="tractor2"/>
|
||||||
|
<track producer="tractor3"/>
|
||||||
|
<track producer="tractor4"/>
|
||||||
|
<track hide="both" producer="timeline_preview"/>
|
||||||
|
<transition id="transition0">
|
||||||
|
<property name="a_track">0</property>
|
||||||
|
<property name="b_track">1</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="rotate_center">0</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
<property name="always_active">1</property>
|
||||||
|
</transition>
|
||||||
|
<transition id="transition1">
|
||||||
|
<property name="a_track">0</property>
|
||||||
|
<property name="b_track">2</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="rotate_center">0</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
<property name="always_active">1</property>
|
||||||
|
</transition>
|
||||||
|
<transition id="transition2">
|
||||||
|
<property name="a_track">0</property>
|
||||||
|
<property name="b_track">3</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="rotate_center">0</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
<property name="always_active">1</property>
|
||||||
|
</transition>
|
||||||
|
<transition id="transition3">
|
||||||
|
<property name="a_track">0</property>
|
||||||
|
<property name="b_track">4</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="rotate_center">0</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
<property name="always_active">1</property>
|
||||||
|
</transition>
|
||||||
|
<transition id="transition4">
|
||||||
|
<property name="a_track">0</property>
|
||||||
|
<property name="b_track">5</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="rotate_center">0</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
<property name="always_active">1</property>
|
||||||
|
</transition>
|
||||||
|
<filter id="filter8">
|
||||||
|
<property name="window">75</property>
|
||||||
|
<property name="max_gain">20dB</property>
|
||||||
|
<property name="mlt_service">volume</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
<property name="disable">1</property>
|
||||||
|
</filter>
|
||||||
|
<filter id="filter9">
|
||||||
|
<property name="channel">-1</property>
|
||||||
|
<property name="mlt_service">panner</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
<property name="start">0.5</property>
|
||||||
|
<property name="disable">1</property>
|
||||||
|
</filter>
|
||||||
|
</tractor>
|
||||||
|
</mlt>
|
BIN
assets/image/result/.kdenlive/line.png
Normal file
BIN
assets/image/result/.kdenlive/line.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
453
assets/image/result/.kdenlive/victory.kdenlive
Normal file
453
assets/image/result/.kdenlive/victory.kdenlive
Normal file
|
@ -0,0 +1,453 @@
|
||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<mlt LC_NUMERIC="C" producer="main_bin" version="7.13.0" root="./">
|
||||||
|
<profile frame_rate_num="25" sample_aspect_num="1" display_aspect_den="9" colorspace="709" progressive="1" description="HD 1080p 25 fps" display_aspect_num="16" frame_rate_den="1" width="1920" height="1080" sample_aspect_den="1"/>
|
||||||
|
<producer id="producer0" in="00:00:00.000" out="00:00:04.960">
|
||||||
|
<property name="length">00:00:05.000</property>
|
||||||
|
<property name="eof">pause</property>
|
||||||
|
<property name="resource">line.png</property>
|
||||||
|
<property name="ttl">25</property>
|
||||||
|
<property name="aspect_ratio">1</property>
|
||||||
|
<property name="progressive">1</property>
|
||||||
|
<property name="seekable">1</property>
|
||||||
|
<property name="format">2</property>
|
||||||
|
<property name="meta.media.width">328</property>
|
||||||
|
<property name="meta.media.height">1080</property>
|
||||||
|
<property name="mlt_service">qimage</property>
|
||||||
|
<property name="kdenlive:clipname"/>
|
||||||
|
<property name="kdenlive:duration">00:00:05.000</property>
|
||||||
|
<property name="kdenlive:folderid">-1</property>
|
||||||
|
<property name="kdenlive:clip_type">2</property>
|
||||||
|
<property name="kdenlive:id">2</property>
|
||||||
|
<property name="kdenlive:file_size">13558</property>
|
||||||
|
<property name="kdenlive:file_hash">3a4f54a7b392eb93d62359265573c322</property>
|
||||||
|
</producer>
|
||||||
|
<producer id="producer1" in="00:00:00.000" out="00:00:04.960">
|
||||||
|
<property name="length">125</property>
|
||||||
|
<property name="eof">pause</property>
|
||||||
|
<property name="resource"/>
|
||||||
|
<property name="progressive">1</property>
|
||||||
|
<property name="aspect_ratio">1</property>
|
||||||
|
<property name="seekable">1</property>
|
||||||
|
<property name="mlt_service">kdenlivetitle</property>
|
||||||
|
<property name="kdenlive:duration">125</property>
|
||||||
|
<property name="kdenlive:clipname">Victoire</property>
|
||||||
|
<property name="xmldata"><kdenlivetitle duration="125" LC_NUMERIC="C" width="1920" height="1080" out="124">


|
||||||
|
<item type="QGraphicsTextItem" z-index="0">


|
||||||
|
<position x="587" y="434">


|
||||||
|
<transform>1,0,0,0,1,0,0,0,1</transform>


|
||||||
|
</position>


|
||||||
|
<content line-spacing="0" shadow="1;#64000000;10;5;6" font-underline="0" box-height="245" font-outline-color="0,0,0,255" font="Century Gothic" letter-spacing="0" font-pixel-size="200" font-italic="0" typewriter="0;1;1;0;0" alignment="4" font-weight="75" font-outline="3" box-width="747" font-color="255,255,255,255">Victoire</content>


|
||||||
|
</item>


|
||||||
|
<startviewport rect="0,0,1920,1080"/>


|
||||||
|
<endviewport rect="0,0,1920,1080"/>


|
||||||
|
<background color="0,0,0,0"/>


|
||||||
|
</kdenlivetitle>


|
||||||
|
</property>
|
||||||
|
<property name="kdenlive:folderid">-1</property>
|
||||||
|
<property name="kdenlive:clip_type">2</property>
|
||||||
|
<property name="kdenlive:id">3</property>
|
||||||
|
<property name="kdenlive:file_hash">5352d10ffc6fee2ef8bfc95db4eceedb</property>
|
||||||
|
<property name="force_reload">0</property>
|
||||||
|
<property name="meta.media.width">1920</property>
|
||||||
|
<property name="meta.media.height">1080</property>
|
||||||
|
</producer>
|
||||||
|
<producer id="producer2" in="00:00:00.000" out="00:00:04.960">
|
||||||
|
<property name="length">00:00:05.000</property>
|
||||||
|
<property name="eof">pause</property>
|
||||||
|
<property name="resource">background.png</property>
|
||||||
|
<property name="ttl">25</property>
|
||||||
|
<property name="aspect_ratio">1</property>
|
||||||
|
<property name="progressive">1</property>
|
||||||
|
<property name="seekable">1</property>
|
||||||
|
<property name="format">2</property>
|
||||||
|
<property name="meta.media.width">1920</property>
|
||||||
|
<property name="meta.media.height">1080</property>
|
||||||
|
<property name="mlt_service">qimage</property>
|
||||||
|
<property name="kdenlive:clipname"/>
|
||||||
|
<property name="kdenlive:duration">00:00:05.000</property>
|
||||||
|
<property name="kdenlive:folderid">-1</property>
|
||||||
|
<property name="kdenlive:clip_type">2</property>
|
||||||
|
<property name="kdenlive:id">4</property>
|
||||||
|
<property name="kdenlive:file_size">10670</property>
|
||||||
|
<property name="kdenlive:file_hash">7fbb59f3d68679fdd9322cd9f675b781</property>
|
||||||
|
</producer>
|
||||||
|
<playlist id="main_bin">
|
||||||
|
<property name="kdenlive:docproperties.activeTrack">3</property>
|
||||||
|
<property name="kdenlive:docproperties.audioChannels">2</property>
|
||||||
|
<property name="kdenlive:docproperties.audioTarget">-1</property>
|
||||||
|
<property name="kdenlive:docproperties.compositing">1</property>
|
||||||
|
<property name="kdenlive:docproperties.dirtypreviewchunks">0-75</property>
|
||||||
|
<property name="kdenlive:docproperties.disablepreview">0</property>
|
||||||
|
<property name="kdenlive:docproperties.documentid">1678437287130</property>
|
||||||
|
<property name="kdenlive:docproperties.enableTimelineZone">1</property>
|
||||||
|
<property name="kdenlive:docproperties.enableexternalproxy">0</property>
|
||||||
|
<property name="kdenlive:docproperties.enableproxy">0</property>
|
||||||
|
<property name="kdenlive:docproperties.externalproxyparams"/>
|
||||||
|
<property name="kdenlive:docproperties.generateimageproxy">0</property>
|
||||||
|
<property name="kdenlive:docproperties.generateproxy">0</property>
|
||||||
|
<property name="kdenlive:docproperties.groups">[
|
||||||
|
{
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"data": "3:10",
|
||||||
|
"leaf": "clip",
|
||||||
|
"type": "Leaf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"data": "2:5",
|
||||||
|
"leaf": "clip",
|
||||||
|
"type": "Leaf"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"data": "1:0",
|
||||||
|
"leaf": "clip",
|
||||||
|
"type": "Leaf"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"type": "Normal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
</property>
|
||||||
|
<property name="kdenlive:docproperties.guidesCategories">[
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 1 ",
|
||||||
|
"index": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 2 ",
|
||||||
|
"index": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 3 ",
|
||||||
|
"index": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 4 ",
|
||||||
|
"index": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 5 ",
|
||||||
|
"index": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 6 ",
|
||||||
|
"index": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 7 ",
|
||||||
|
"index": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 8 ",
|
||||||
|
"index": 7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"comment": "Catégorie 9 ",
|
||||||
|
"index": 8
|
||||||
|
}
|
||||||
|
]
|
||||||
|
</property>
|
||||||
|
<property name="kdenlive:docproperties.kdenliveversion">22.12.0</property>
|
||||||
|
<property name="kdenlive:docproperties.position">0</property>
|
||||||
|
<property name="kdenlive:docproperties.previewchunks"/>
|
||||||
|
<property name="kdenlive:docproperties.previewextension">mkv</property>
|
||||||
|
<property name="kdenlive:docproperties.previewparameters">vcodec=h264_nvenc g=1 bf=0 preset=fast qmin=10 qmax=30</property>
|
||||||
|
<property name="kdenlive:docproperties.profile">atsc_1080p_25</property>
|
||||||
|
<property name="kdenlive:docproperties.proxyextension"/>
|
||||||
|
<property name="kdenlive:docproperties.proxyimageminsize">2000</property>
|
||||||
|
<property name="kdenlive:docproperties.proxyimagesize">800</property>
|
||||||
|
<property name="kdenlive:docproperties.proxyminsize">1000</property>
|
||||||
|
<property name="kdenlive:docproperties.proxyparams"/>
|
||||||
|
<property name="kdenlive:docproperties.proxyresize">640</property>
|
||||||
|
<property name="kdenlive:docproperties.rendercategory">Video with Alpha</property>
|
||||||
|
<property name="kdenlive:docproperties.rendercustomquality">25</property>
|
||||||
|
<property name="kdenlive:docproperties.renderendguide">-1</property>
|
||||||
|
<property name="kdenlive:docproperties.renderexportaudio">0</property>
|
||||||
|
<property name="kdenlive:docproperties.rendermode">0</property>
|
||||||
|
<property name="kdenlive:docproperties.renderplay">0</property>
|
||||||
|
<property name="kdenlive:docproperties.renderpreview">0</property>
|
||||||
|
<property name="kdenlive:docproperties.renderprofile">Alpha VP9</property>
|
||||||
|
<property name="kdenlive:docproperties.renderratio">1</property>
|
||||||
|
<property name="kdenlive:docproperties.renderrescale">0</property>
|
||||||
|
<property name="kdenlive:docproperties.renderrescaleheight">540</property>
|
||||||
|
<property name="kdenlive:docproperties.renderrescalewidth">960</property>
|
||||||
|
<property name="kdenlive:docproperties.renderspeed">1</property>
|
||||||
|
<property name="kdenlive:docproperties.renderstartguide">-1</property>
|
||||||
|
<property name="kdenlive:docproperties.rendertcoverlay">0</property>
|
||||||
|
<property name="kdenlive:docproperties.rendertctype">-1</property>
|
||||||
|
<property name="kdenlive:docproperties.rendertwopass">0</property>
|
||||||
|
<property name="kdenlive:docproperties.renderurl">C:/Users/RC606/Videos/victory.webm</property>
|
||||||
|
<property name="kdenlive:docproperties.scrollPos">0</property>
|
||||||
|
<property name="kdenlive:docproperties.seekOffset">30000</property>
|
||||||
|
<property name="kdenlive:docproperties.version">1.04</property>
|
||||||
|
<property name="kdenlive:docproperties.verticalzoom">1</property>
|
||||||
|
<property name="kdenlive:docproperties.videoTarget">-1</property>
|
||||||
|
<property name="kdenlive:docproperties.zonein">0</property>
|
||||||
|
<property name="kdenlive:docproperties.zoneout">105</property>
|
||||||
|
<property name="kdenlive:docproperties.zoom">4</property>
|
||||||
|
<property name="kdenlive:expandedFolders"/>
|
||||||
|
<property name="kdenlive:documentnotes"/>
|
||||||
|
<property name="xml_retain">1</property>
|
||||||
|
<entry producer="producer0" in="00:00:00.000" out="00:00:04.960"/>
|
||||||
|
<entry producer="producer1" in="00:00:00.000" out="00:00:04.960"/>
|
||||||
|
<entry producer="producer2" in="00:00:00.000" out="00:00:04.960"/>
|
||||||
|
</playlist>
|
||||||
|
<producer id="black_track" in="00:00:00.000" out="00:20:04.200">
|
||||||
|
<property name="length">2147483647</property>
|
||||||
|
<property name="eof">continue</property>
|
||||||
|
<property name="resource">black</property>
|
||||||
|
<property name="aspect_ratio">1</property>
|
||||||
|
<property name="mlt_service">color</property>
|
||||||
|
<property name="mlt_image_format">rgba</property>
|
||||||
|
<property name="set.test_audio">0</property>
|
||||||
|
</producer>
|
||||||
|
<playlist id="playlist0">
|
||||||
|
<entry producer="producer2" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:id">4</property>
|
||||||
|
<filter id="filter0">
|
||||||
|
<property name="rotate_center">1</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="rect">00:00:00.000=-960 -540 3840 2160 0.000000;00:00:00.760=-960 -540 3840 2160 0.350000;00:00:03.000=-960 -540 3840 2160 0.350000;00:00:04.160=-960 -540 3840 2160 0.000000</property>
|
||||||
|
<property name="rotation">00:00:00.000=0;00:00:00.760=0;00:00:03.000=0;00:00:04.160=0</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
</entry>
|
||||||
|
</playlist>
|
||||||
|
<playlist id="playlist1"/>
|
||||||
|
<tractor id="tractor0" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:trackheight">67</property>
|
||||||
|
<property name="kdenlive:timeline_active">1</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
<property name="kdenlive:thumbs_format"/>
|
||||||
|
<property name="kdenlive:audio_rec"/>
|
||||||
|
<track hide="audio" producer="playlist0"/>
|
||||||
|
<track hide="audio" producer="playlist1"/>
|
||||||
|
</tractor>
|
||||||
|
<playlist id="playlist2">
|
||||||
|
<entry producer="producer0" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:id">2</property>
|
||||||
|
<filter id="filter1">
|
||||||
|
<property name="rotate_center">1</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="rect">00:00:00.000=1200 0 1920 1080 1.000000;00:00:00.280=-250 0 1920 1080 1.000000;00:00:00.840=-250 0 1920 1080 1.000000;00:00:01.000=-4600 -2160 9600 5400 1.000000;00:00:02.000=-4600 -2160 9600 5400 1.000000;00:00:02.280=-6680 -2157 9600 5400 1.000000</property>
|
||||||
|
<property name="rotation">00:00:00.000=0;00:00:00.280=0;00:00:00.840=0;00:00:01.000=0;00:00:02.000=0;00:00:02.280=0</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
<filter id="filter2">
|
||||||
|
<property name="version">0.9</property>
|
||||||
|
<property name="mlt_service">frei0r.softglow</property>
|
||||||
|
<property name="kdenlive_id">frei0r.softglow</property>
|
||||||
|
<property name="blur">00:00:00.000=0;00:00:00.840=0;00:00:01.000=0.654891</property>
|
||||||
|
<property name="brightness">00:00:00.000=0;00:00:00.840=0;00:00:01.000=1</property>
|
||||||
|
<property name="sharpness">00:00:00.000=0;00:00:00.840=0;00:00:01.000=1</property>
|
||||||
|
<property name="blurblend">0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
</entry>
|
||||||
|
</playlist>
|
||||||
|
<playlist id="playlist3"/>
|
||||||
|
<tractor id="tractor1" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:trackheight">67</property>
|
||||||
|
<property name="kdenlive:timeline_active">1</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
<property name="kdenlive:thumbs_format"/>
|
||||||
|
<property name="kdenlive:audio_rec"/>
|
||||||
|
<track hide="audio" producer="playlist2"/>
|
||||||
|
<track hide="audio" producer="playlist3"/>
|
||||||
|
</tractor>
|
||||||
|
<playlist id="playlist4">
|
||||||
|
<blank length="00:00:00.200"/>
|
||||||
|
<entry producer="producer0" in="00:00:00.000" out="00:00:03.960">
|
||||||
|
<property name="kdenlive:id">2</property>
|
||||||
|
<filter id="filter3">
|
||||||
|
<property name="rotate_center">1</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="rect">00:00:00.000=1450 0 1920 1080 1.000000;00:00:00.400=0 0 1920 1080 1.000000;00:00:00.640=0 0 1920 1080 1.000000;00:00:00.800=-3840 -2160 9600 5400 1.000000;00:00:02.080=-3840 -2160 9600 5400 1.000000;00:00:02.360=-5940 -2160 9600 5400 1.000000</property>
|
||||||
|
<property name="rotation">00:00:00.000=0;00:00:00.400=0;00:00:00.640=0;00:00:00.800=0;00:00:02.080=0;00:00:02.360=0</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
<filter id="filter4">
|
||||||
|
<property name="version">0.9</property>
|
||||||
|
<property name="mlt_service">frei0r.softglow</property>
|
||||||
|
<property name="kdenlive_id">frei0r.softglow</property>
|
||||||
|
<property name="blur">00:00:00.000=0;00:00:00.640=0;00:00:00.800=0.65</property>
|
||||||
|
<property name="brightness">00:00:00.000=0;00:00:00.640=0;00:00:00.800=1</property>
|
||||||
|
<property name="sharpness">00:00:00.000=0;00:00:00.640=0;00:00:00.800=1</property>
|
||||||
|
<property name="blurblend">0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
</entry>
|
||||||
|
</playlist>
|
||||||
|
<playlist id="playlist5"/>
|
||||||
|
<tractor id="tractor2" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:trackheight">67</property>
|
||||||
|
<property name="kdenlive:timeline_active">1</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
<property name="kdenlive:thumbs_format"/>
|
||||||
|
<property name="kdenlive:audio_rec"/>
|
||||||
|
<track hide="audio" producer="playlist4"/>
|
||||||
|
<track hide="audio" producer="playlist5"/>
|
||||||
|
</tractor>
|
||||||
|
<playlist id="playlist6">
|
||||||
|
<blank length="00:00:00.400"/>
|
||||||
|
<entry producer="producer0" in="00:00:00.000" out="00:00:03.760">
|
||||||
|
<property name="kdenlive:id">2</property>
|
||||||
|
<filter id="filter5">
|
||||||
|
<property name="rotate_center">1</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="rect">00:00:00.000=1600 0 1920 1080 1.000000;00:00:00.400=250 0 1920 1080 1.000000;00:00:00.440=250 0 1920 1080 1.000000;00:00:00.600=-3100 -2160 9600 5400 1.000000;00:00:02.160=-3100 -2160 9600 5400 1.000000;00:00:02.440=-5200 -2160 9600 5400 0.984127</property>
|
||||||
|
<property name="rotation">00:00:00.000=0;00:00:00.400=0;00:00:00.440=0;00:00:00.600=0;00:00:02.160=0;00:00:02.440=0</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
<filter id="filter6">
|
||||||
|
<property name="version">0.9</property>
|
||||||
|
<property name="mlt_service">frei0r.softglow</property>
|
||||||
|
<property name="kdenlive_id">frei0r.softglow</property>
|
||||||
|
<property name="blur">00:00:00.000=0;00:00:00.440=0;00:00:00.600=0.651748</property>
|
||||||
|
<property name="brightness">00:00:00.000=0;00:00:00.440=0;00:00:00.600=1</property>
|
||||||
|
<property name="sharpness">00:00:00.000=0;00:00:00.440=0;00:00:00.600=1</property>
|
||||||
|
<property name="blurblend">0</property>
|
||||||
|
<property name="kdenlive:collapsed">1</property>
|
||||||
|
</filter>
|
||||||
|
</entry>
|
||||||
|
</playlist>
|
||||||
|
<playlist id="playlist7"/>
|
||||||
|
<tractor id="tractor3" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:trackheight">67</property>
|
||||||
|
<property name="kdenlive:timeline_active">1</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
<property name="kdenlive:thumbs_format"/>
|
||||||
|
<property name="kdenlive:audio_rec"/>
|
||||||
|
<track hide="audio" producer="playlist6"/>
|
||||||
|
<track hide="audio" producer="playlist7"/>
|
||||||
|
</tractor>
|
||||||
|
<playlist id="playlist8">
|
||||||
|
<blank length="00:00:00.800"/>
|
||||||
|
<entry producer="producer1" in="00:00:00.000" out="00:00:03.360">
|
||||||
|
<property name="kdenlive:id">3</property>
|
||||||
|
<filter id="filter7">
|
||||||
|
<property name="rotate_center">1</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="kdenlive_id">qtblend</property>
|
||||||
|
<property name="rect">00:00:00.000=950 535 19 10 1.000000;00:00:00.200=-480 -270 2880 1620 1.000000</property>
|
||||||
|
<property name="rotation">00:00:00.000=0;00:00:00.200=0</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
<filter id="filter8" in="00:00:02.360" out="00:00:03.360">
|
||||||
|
<property name="start">1</property>
|
||||||
|
<property name="level">1</property>
|
||||||
|
<property name="mlt_service">brightness</property>
|
||||||
|
<property name="kdenlive_id">fade_to_black</property>
|
||||||
|
<property name="alpha">00:00:00.000=1;00:00:01.000=0</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
</filter>
|
||||||
|
</entry>
|
||||||
|
</playlist>
|
||||||
|
<playlist id="playlist9"/>
|
||||||
|
<tractor id="tractor4" in="00:00:00.000" out="00:00:04.160">
|
||||||
|
<property name="kdenlive:trackheight">67</property>
|
||||||
|
<property name="kdenlive:timeline_active">1</property>
|
||||||
|
<property name="kdenlive:collapsed">0</property>
|
||||||
|
<property name="kdenlive:thumbs_format"/>
|
||||||
|
<property name="kdenlive:audio_rec"/>
|
||||||
|
<track hide="audio" producer="playlist8"/>
|
||||||
|
<track hide="audio" producer="playlist9"/>
|
||||||
|
</tractor>
|
||||||
|
<playlist id="timeline_preview"/>
|
||||||
|
<tractor id="tractor5" in="00:00:00.000" out="00:20:04.200">
|
||||||
|
<track producer="black_track"/>
|
||||||
|
<track producer="tractor0"/>
|
||||||
|
<track producer="tractor1"/>
|
||||||
|
<track producer="tractor2"/>
|
||||||
|
<track producer="tractor3"/>
|
||||||
|
<track producer="tractor4"/>
|
||||||
|
<track hide="both" producer="timeline_preview"/>
|
||||||
|
<transition id="transition0">
|
||||||
|
<property name="a_track">0</property>
|
||||||
|
<property name="b_track">1</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="rotate_center">0</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="always_active">1</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
</transition>
|
||||||
|
<transition id="transition1">
|
||||||
|
<property name="a_track">0</property>
|
||||||
|
<property name="b_track">2</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="rotate_center">0</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="always_active">1</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
</transition>
|
||||||
|
<transition id="transition2">
|
||||||
|
<property name="a_track">0</property>
|
||||||
|
<property name="b_track">3</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="rotate_center">0</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="always_active">1</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
</transition>
|
||||||
|
<transition id="transition3">
|
||||||
|
<property name="a_track">0</property>
|
||||||
|
<property name="b_track">4</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="rotate_center">0</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="always_active">1</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
</transition>
|
||||||
|
<transition id="transition4">
|
||||||
|
<property name="a_track">0</property>
|
||||||
|
<property name="b_track">5</property>
|
||||||
|
<property name="compositing">0</property>
|
||||||
|
<property name="distort">0</property>
|
||||||
|
<property name="rotate_center">0</property>
|
||||||
|
<property name="mlt_service">qtblend</property>
|
||||||
|
<property name="always_active">1</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
</transition>
|
||||||
|
<filter id="filter9">
|
||||||
|
<property name="window">75</property>
|
||||||
|
<property name="max_gain">20dB</property>
|
||||||
|
<property name="mlt_service">volume</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
<property name="disable">1</property>
|
||||||
|
</filter>
|
||||||
|
<filter id="filter10">
|
||||||
|
<property name="channel">-1</property>
|
||||||
|
<property name="mlt_service">panner</property>
|
||||||
|
<property name="internal_added">237</property>
|
||||||
|
<property name="start">0.5</property>
|
||||||
|
<property name="disable">1</property>
|
||||||
|
</filter>
|
||||||
|
</tractor>
|
||||||
|
</mlt>
|
|
@ -1,11 +1,79 @@
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
from source.core import Board, Boat
|
||||||
|
from source.core.enums import Orientation, BombState
|
||||||
|
from source.core.error import InvalidBoatPosition, InvalidBombPosition, PositionAlreadyShot
|
||||||
|
|
||||||
|
|
||||||
class TestCore(unittest.TestCase):
|
class TestCore(unittest.TestCase):
|
||||||
# TODO
|
|
||||||
|
|
||||||
def test_something(self):
|
def test_boats(self):
|
||||||
self.assertEqual(True, False) # add assertion here
|
board = Board(width=5, height=5)
|
||||||
|
board.add_boat(Boat(5, Orientation.HORIZONTAL), (0, 0))
|
||||||
|
|
||||||
|
self.assertTrue((board.boats == np.array([
|
||||||
|
[1, 1, 1, 1, 1],
|
||||||
|
[0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0],
|
||||||
|
])).all())
|
||||||
|
|
||||||
|
board.add_boat(Boat(4, Orientation.VERTICAL), (1, 1))
|
||||||
|
|
||||||
|
self.assertTrue((board.boats == np.array([
|
||||||
|
[1, 1, 1, 1, 1],
|
||||||
|
[0, 2, 0, 0, 0],
|
||||||
|
[0, 2, 0, 0, 0],
|
||||||
|
[0, 2, 0, 0, 0],
|
||||||
|
[0, 2, 0, 0, 0],
|
||||||
|
])).all())
|
||||||
|
|
||||||
|
self.assertRaises(
|
||||||
|
InvalidBoatPosition,
|
||||||
|
board.add_boat,
|
||||||
|
Boat(3, Orientation.HORIZONTAL),
|
||||||
|
(1, 1)
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertRaises(
|
||||||
|
InvalidBoatPosition,
|
||||||
|
board.add_boat,
|
||||||
|
Boat(3, Orientation.HORIZONTAL),
|
||||||
|
(4, 1)
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_bombs(self):
|
||||||
|
board = Board(width=5, height=5)
|
||||||
|
board.add_boat(Boat(5, Orientation.HORIZONTAL), (0, 0))
|
||||||
|
board.add_boat(Boat(4, Orientation.VERTICAL), (1, 1))
|
||||||
|
|
||||||
|
self.assertEqual(board.bomb((0, 0)), BombState.TOUCHED)
|
||||||
|
self.assertEqual(board.bomb((1, 0)), BombState.TOUCHED)
|
||||||
|
self.assertEqual(board.bomb((2, 0)), BombState.TOUCHED)
|
||||||
|
self.assertEqual(board.bomb((3, 0)), BombState.TOUCHED)
|
||||||
|
self.assertEqual(board.bomb((4, 0)), BombState.SUNKEN)
|
||||||
|
|
||||||
|
self.assertEqual(board.bomb((0, 1)), BombState.NOTHING)
|
||||||
|
|
||||||
|
self.assertRaises(
|
||||||
|
InvalidBombPosition,
|
||||||
|
board.bomb,
|
||||||
|
(10, 10)
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertRaises(
|
||||||
|
PositionAlreadyShot,
|
||||||
|
board.bomb,
|
||||||
|
(0, 0)
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertEqual(board.bomb((1, 1)), BombState.TOUCHED)
|
||||||
|
self.assertEqual(board.bomb((1, 2)), BombState.TOUCHED)
|
||||||
|
self.assertEqual(board.bomb((1, 3)), BombState.TOUCHED)
|
||||||
|
self.assertEqual(board.bomb((1, 4)), BombState.WON)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -5,11 +5,17 @@ import random
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from source.network.packet import PacketChat
|
import numpy as np
|
||||||
|
|
||||||
|
from source.core.enums import BombState
|
||||||
|
from source.network.packet import PacketChat, PacketUsername, PacketQuit, PacketAskSave, PacketBoatPlaced, \
|
||||||
|
PacketLoadOldSave, PacketResponseSave, PacketHaveSaveBeenFound, PacketBombPlaced, PacketBombState, PacketSettings, \
|
||||||
|
PacketBoatsData
|
||||||
|
from source.network.packet.abc import Packet
|
||||||
|
|
||||||
|
|
||||||
class TestNetwork(unittest.TestCase):
|
class TestNetwork(unittest.TestCase):
|
||||||
PORT: int = 54231
|
PORT: int = 54200
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
@ -36,17 +42,140 @@ class TestNetwork(unittest.TestCase):
|
||||||
self.co_client.close()
|
self.co_client.close()
|
||||||
self.so_server.close()
|
self.so_server.close()
|
||||||
|
|
||||||
def test_packet_chat(self):
|
# tous les tests de packet sont réunis dans la même fonction pour éviter de réouvrir des sockets sur le mêmes
|
||||||
|
# ports encore et encore
|
||||||
|
def test_packet(self):
|
||||||
|
# PacketChat
|
||||||
for _ in range(100):
|
for _ in range(100):
|
||||||
message = "".join(random.choice(string.printable) for _ in range(random.randint(1, 100)))
|
packet_sent = PacketChat(
|
||||||
|
message="".join(random.choice(string.printable) for _ in range(random.randint(1, 100)))
|
||||||
|
)
|
||||||
|
packet_sent.send_data_connection(self.co_server)
|
||||||
|
packet_recv = PacketChat.from_connection(self.co_client)
|
||||||
|
|
||||||
PacketChat(message).send_data_connection(self.co_server)
|
self.assertEqual(packet_sent, packet_recv)
|
||||||
packet_chat = PacketChat.from_connection(self.co_client)
|
|
||||||
|
|
||||||
self.assertEqual(message, packet_chat.message)
|
# PacketUsername
|
||||||
|
for _ in range(100):
|
||||||
|
packet_sent = PacketUsername(
|
||||||
|
username="".join(random.choice(string.printable) for _ in range(random.randint(1, 16)))
|
||||||
|
)
|
||||||
|
packet_sent.send_data_connection(self.co_server)
|
||||||
|
packet_recv = PacketUsername.from_connection(self.co_client)
|
||||||
|
|
||||||
# TODO: autre type de packets
|
self.assertEqual(packet_sent, packet_recv)
|
||||||
# TODO: type de packet générique
|
|
||||||
|
# PacketQuit
|
||||||
|
for _ in range(100):
|
||||||
|
PacketQuit().send_data_connection(self.co_server)
|
||||||
|
PacketQuit.from_connection(self.co_client)
|
||||||
|
|
||||||
|
# PacketAskSave
|
||||||
|
for _ in range(100):
|
||||||
|
PacketAskSave().send_data_connection(self.co_server)
|
||||||
|
PacketAskSave.from_connection(self.co_client)
|
||||||
|
|
||||||
|
# PacketBoatPlaced
|
||||||
|
for _ in range(100):
|
||||||
|
PacketBoatPlaced().send_data_connection(self.co_server)
|
||||||
|
PacketBoatPlaced.from_connection(self.co_client)
|
||||||
|
|
||||||
|
# PacketLoadOldSave
|
||||||
|
for _ in range(100):
|
||||||
|
packet_sent = PacketLoadOldSave(
|
||||||
|
value=bool(random.randint(0, 1))
|
||||||
|
)
|
||||||
|
packet_sent.send_data_connection(self.co_server)
|
||||||
|
packet_recv = PacketLoadOldSave.from_connection(self.co_client)
|
||||||
|
|
||||||
|
self.assertEqual(packet_sent, packet_recv)
|
||||||
|
|
||||||
|
# PacketResponseSave
|
||||||
|
for _ in range(100):
|
||||||
|
packet_sent = PacketResponseSave(
|
||||||
|
value=bool(random.randint(0, 1))
|
||||||
|
)
|
||||||
|
packet_sent.send_data_connection(self.co_server)
|
||||||
|
packet_recv = PacketResponseSave.from_connection(self.co_client)
|
||||||
|
|
||||||
|
self.assertEqual(packet_sent, packet_recv)
|
||||||
|
|
||||||
|
# PacketHaveSaveBeenFound
|
||||||
|
for _ in range(100):
|
||||||
|
packet_sent = PacketHaveSaveBeenFound(
|
||||||
|
value=bool(random.randint(0, 1))
|
||||||
|
)
|
||||||
|
packet_sent.send_data_connection(self.co_server)
|
||||||
|
packet_recv = PacketHaveSaveBeenFound.from_connection(self.co_client)
|
||||||
|
|
||||||
|
self.assertEqual(packet_sent, packet_recv)
|
||||||
|
|
||||||
|
# PacketBombPlaced
|
||||||
|
for _ in range(100):
|
||||||
|
packet_sent = PacketBombPlaced(
|
||||||
|
(random.randint(0, 64), random.randint(0, 64))
|
||||||
|
)
|
||||||
|
packet_sent.send_data_connection(self.co_server)
|
||||||
|
packet_recv = PacketBombPlaced.from_connection(self.co_client)
|
||||||
|
|
||||||
|
self.assertEqual(packet_sent, packet_recv)
|
||||||
|
|
||||||
|
# PacketBombState
|
||||||
|
for _ in range(100):
|
||||||
|
packet_sent = PacketBombState(
|
||||||
|
position=(random.randint(0, 64), random.randint(0, 64)),
|
||||||
|
bomb_state=random.choice(list(BombState)),
|
||||||
|
)
|
||||||
|
packet_sent.send_data_connection(self.co_server)
|
||||||
|
packet_recv = PacketBombState.from_connection(self.co_client)
|
||||||
|
|
||||||
|
self.assertEqual(packet_sent, packet_recv)
|
||||||
|
|
||||||
|
# PacketSettings
|
||||||
|
for _ in range(100):
|
||||||
|
packet_sent = PacketSettings(
|
||||||
|
grid_width=random.randint(0, 64),
|
||||||
|
grid_height=random.randint(0, 64),
|
||||||
|
host_start=bool(random.randint(0, 1)),
|
||||||
|
boats_length=[random.randint(1, 16) for _ in range(random.randint(1, 32))]
|
||||||
|
)
|
||||||
|
packet_sent.send_data_connection(self.co_server)
|
||||||
|
packet_recv = PacketSettings.from_connection(self.co_client)
|
||||||
|
|
||||||
|
self.assertEqual(packet_sent, packet_recv)
|
||||||
|
|
||||||
|
# PacketBoatsData
|
||||||
|
for _ in range(100):
|
||||||
|
packet_sent = PacketBoatsData(
|
||||||
|
boats=(
|
||||||
|
np.random.rand(
|
||||||
|
random.randint(2, 32),
|
||||||
|
random.randint(2, 32),
|
||||||
|
) * random.randint(1, 65535)
|
||||||
|
).astype(dtype=np.ushort)
|
||||||
|
)
|
||||||
|
packet_sent.send_data_connection(self.co_server)
|
||||||
|
packet_recv = PacketBoatsData.from_connection(self.co_client)
|
||||||
|
|
||||||
|
self.assertTrue((packet_sent.boats == packet_recv.boats).all()) # NOQA
|
||||||
|
|
||||||
|
# Packet Générique
|
||||||
|
for _ in range(100):
|
||||||
|
# prend un packet signal aléatoire (sont plus simples a initialisé)
|
||||||
|
packet_sent_type = random.choice([PacketQuit, PacketAskSave, PacketBoatPlaced, PacketUsername, PacketChat])
|
||||||
|
|
||||||
|
if packet_sent_type in [PacketUsername, PacketChat]:
|
||||||
|
packet_sent = packet_sent_type(
|
||||||
|
"".join(random.choice(string.printable) for _ in range(random.randint(1, 16)))
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
packet_sent = packet_sent_type()
|
||||||
|
|
||||||
|
packet_sent.send_connection(self.co_server)
|
||||||
|
packet_recv_type = Packet.type_from_connection(self.co_client)
|
||||||
|
packet_recv = packet_recv_type.from_connection(self.co_client)
|
||||||
|
|
||||||
|
self.assertEqual(packet_recv, packet_sent)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -162,16 +162,3 @@ class Board:
|
||||||
boats=self.boats.copy(),
|
boats=self.boats.copy(),
|
||||||
bombs=self.bombs.copy(),
|
bombs=self.bombs.copy(),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
board = Board(5, 10)
|
|
||||||
board.add_boat(Boat(3, Orientation.VERTICAL), (4, 0))
|
|
||||||
board.add_boat(Boat(4, Orientation.HORIZONTAL), (1, 4))
|
|
||||||
print(board.bomb((4, 1)))
|
|
||||||
print(board.bomb((4, 2)))
|
|
||||||
print(board.bomb((4, 3)))
|
|
||||||
print(board.bomb((4, 4)))
|
|
||||||
print(board)
|
|
||||||
|
|
||||||
print(board.to_json())
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
|
from dataclasses import dataclass
|
||||||
|
|
||||||
from source.network.packet.abc import SignalPacket
|
from source.network.packet.abc import SignalPacket
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
class PacketAskSave(SignalPacket):
|
class PacketAskSave(SignalPacket):
|
||||||
"""
|
"""
|
||||||
A packet that is sent when the player wish to save the game.
|
A packet that is sent when the player wish to save the game.
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
|
from dataclasses import dataclass
|
||||||
|
|
||||||
from source.network.packet.abc import SignalPacket
|
from source.network.packet.abc import SignalPacket
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
class PacketBoatPlaced(SignalPacket):
|
class PacketBoatPlaced(SignalPacket):
|
||||||
"""
|
"""
|
||||||
A packet that signal that all the boat of the player have been placed
|
A packet that signal that all the boat of the player have been placed
|
||||||
|
|
|
@ -10,7 +10,7 @@ from source.network.packet.abc import Packet
|
||||||
@dataclass
|
@dataclass
|
||||||
class PacketBoatsData(Packet):
|
class PacketBoatsData(Packet):
|
||||||
|
|
||||||
boats: np.ndarray = field()
|
boats: np.array = field()
|
||||||
|
|
||||||
packet_format: str = ">II"
|
packet_format: str = ">II"
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
|
from dataclasses import dataclass
|
||||||
|
|
||||||
from source.network.packet.abc import SignalPacket
|
from source.network.packet.abc import SignalPacket
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
class PacketQuit(SignalPacket):
|
class PacketQuit(SignalPacket):
|
||||||
"""
|
"""
|
||||||
A packet that is sent when the player wish to quit a game.
|
A packet that is sent when the player wish to quit a game.
|
||||||
|
|
Loading…
Reference in a new issue