tictacsync 0.98a0__py3-none-any.whl → 0.99a0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of tictacsync might be problematic. Click here for more details.
- tictacsync/device_scanner.py +4 -0
- tictacsync/remrgmx.py +6 -10
- tictacsync/timeline.py +2 -3
- {tictacsync-0.98a0.dist-info → tictacsync-0.99a0.dist-info}/METADATA +2 -2
- {tictacsync-0.98a0.dist-info → tictacsync-0.99a0.dist-info}/RECORD +9 -9
- {tictacsync-0.98a0.dist-info → tictacsync-0.99a0.dist-info}/LICENSE +0 -0
- {tictacsync-0.98a0.dist-info → tictacsync-0.99a0.dist-info}/WHEEL +0 -0
- {tictacsync-0.98a0.dist-info → tictacsync-0.99a0.dist-info}/entry_points.txt +0 -0
- {tictacsync-0.98a0.dist-info → tictacsync-0.99a0.dist-info}/top_level.txt +0 -0
tictacsync/device_scanner.py
CHANGED
|
@@ -270,12 +270,16 @@ class Scanner:
|
|
|
270
270
|
|
|
271
271
|
"""
|
|
272
272
|
files = Path(self.top_directory).rglob('*.*')
|
|
273
|
+
def _last4letters(part):
|
|
274
|
+
return
|
|
275
|
+
|
|
273
276
|
paths = [
|
|
274
277
|
p
|
|
275
278
|
for p in files
|
|
276
279
|
if p.suffix[1:] in av_file_extensions
|
|
277
280
|
and SYNCEDFOLDER not in p.parts # SyncedMedia
|
|
278
281
|
and MCCDIR not in p.parts # SyncedMulticamClips
|
|
282
|
+
and '_ISO' not in [part[-4:] for part in p.parts] # exclude ISO wav files
|
|
279
283
|
]
|
|
280
284
|
logger.debug('found media files %s'%paths)
|
|
281
285
|
parents = [p.parent for p in paths]
|
tictacsync/remrgmx.py
CHANGED
|
@@ -32,9 +32,9 @@ def find_ISO_vids_pairs_in_dir(top):
|
|
|
32
32
|
if d[-4:] == '_ISO':
|
|
33
33
|
ISOs.append(Path(root)/d)
|
|
34
34
|
for f in files:
|
|
35
|
-
if is_video(f):
|
|
35
|
+
if is_video(f): # add being in SyncedMedia or SyncedMulticamClips folder
|
|
36
36
|
vids.append(Path(root)/f)
|
|
37
|
-
logger.debug('vids %s ISOs %s'%(vids, ISOs))
|
|
37
|
+
logger.debug('vids %s ISOs %s'%(pformat(vids), pformat(ISOs)))
|
|
38
38
|
matches = []
|
|
39
39
|
for pair in list(itertools.product(vids, ISOs)):
|
|
40
40
|
# print(pair)
|
|
@@ -54,14 +54,10 @@ def parse_and_check_arguments():
|
|
|
54
54
|
# if returns, gives:
|
|
55
55
|
# proxies_dir, originals_dir, audio_dir, both_audio_vid, scan_only
|
|
56
56
|
parser = argparse.ArgumentParser()
|
|
57
|
-
parser.add_argument('-
|
|
58
|
-
nargs
|
|
59
|
-
dest='
|
|
60
|
-
help='Where proxy clips are stored')
|
|
61
|
-
parser.add_argument('-o',
|
|
62
|
-
nargs=1,
|
|
63
|
-
dest='originals_dir',
|
|
64
|
-
help='Original (non-proxy) clips directory')
|
|
57
|
+
parser.add_argument('-v',
|
|
58
|
+
nargs=*,
|
|
59
|
+
dest='video_dirs',
|
|
60
|
+
help='Where proxy clips and/or originals are stored')
|
|
65
61
|
parser.add_argument('-a',
|
|
66
62
|
nargs=1,
|
|
67
63
|
dest='audio_dir',
|
tictacsync/timeline.py
CHANGED
|
@@ -38,7 +38,6 @@ def remove_write_permissions(path):
|
|
|
38
38
|
NO_GROUP_WRITING = ~stat.S_IWGRP
|
|
39
39
|
NO_OTHER_WRITING = ~stat.S_IWOTH
|
|
40
40
|
NO_WRITING = NO_USER_WRITING & NO_GROUP_WRITING & NO_OTHER_WRITING
|
|
41
|
-
|
|
42
41
|
current_permissions = stat.S_IMODE(os.lstat(path).st_mode)
|
|
43
42
|
os.chmod(path, current_permissions & NO_WRITING)
|
|
44
43
|
|
|
@@ -720,7 +719,7 @@ class AudioStitcherVideoMerger:
|
|
|
720
719
|
destination = ISOdir/('%s.wav'%name)
|
|
721
720
|
mono_tmpfl_trimpad = _fit_length(mono_tmpfl)
|
|
722
721
|
shutil.copy(_pathname(mono_tmpfl_trimpad), destination)
|
|
723
|
-
remove_write_permissions(destination)
|
|
722
|
+
# remove_write_permissions(destination)
|
|
724
723
|
logger.debug('destination:%s'%destination)
|
|
725
724
|
|
|
726
725
|
def _get_device_mix(self, device, multichan_tmpfl) -> tempfile.NamedTemporaryFile:
|
|
@@ -1500,7 +1499,7 @@ class Matcher:
|
|
|
1500
1499
|
dest = r.final_synced_file.replace(multicam_dir/cam/clip_name)
|
|
1501
1500
|
logger.debug('dest: %s'%dest)
|
|
1502
1501
|
origin_folder = r.final_synced_file.parent
|
|
1503
|
-
folder_now_empty = len(list(origin_folder.glob('
|
|
1502
|
+
folder_now_empty = len(list(origin_folder.glob('*'))) == 0
|
|
1504
1503
|
if folder_now_empty:
|
|
1505
1504
|
logger.debug('after moving %s, folder is now empty, removing it'%dest)
|
|
1506
1505
|
origin_folder.rmdir()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: tictacsync
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.99a0
|
|
4
4
|
Summary: command for syncing audio video recordings
|
|
5
5
|
Home-page: https://tictacsync.org/
|
|
6
6
|
Author: Raymond Lutz
|
|
@@ -68,7 +68,7 @@ Then pip install the syncing program:
|
|
|
68
68
|
This should install python dependencies _and_ the `tictacsync` command.
|
|
69
69
|
## Usage
|
|
70
70
|
|
|
71
|
-
Download multiple sample files [here](https://nuage.lutz.quebec/s/
|
|
71
|
+
Download multiple sample files [here](https://nuage.lutz.quebec/s/P3gbZR4GgGy8xQp/download/dailies1_1.zip) (625 MB, sorry) unzip and run:
|
|
72
72
|
|
|
73
73
|
> tictacsync dailies/loose
|
|
74
74
|
The program `tictacsync` will recursively scan the directory given as argument, find all audio that coincide with any video and merge them into a subfolder named `SyncedMedia`. When the argument is an unique media file (not a directory), no syncing will occur but the decoded starting time will be printed to stdout:
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
tictacsync/LTCcheck.py,sha256=IEfpB_ZajWuRTWtqji0H-B2g7GQvWmGVjfT0Icumv7o,15704
|
|
2
2
|
tictacsync/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
tictacsync/device_scanner.py,sha256=
|
|
3
|
+
tictacsync/device_scanner.py,sha256=A41PmzI6jr4zCKRm3BL5aBQkdJImpN3DH4QIicCZolA,35585
|
|
4
4
|
tictacsync/entry.py,sha256=KOhB8ivgme3GPpWShad2adS1lvIU9v0yMFY0CELwAmM,20673
|
|
5
5
|
tictacsync/multi2polywav.py,sha256=-nX5reZo6QNxFYdhsliHTs8bTfMjPzcONDT8vJbkZUA,7291
|
|
6
6
|
tictacsync/remergemix.py,sha256=bRyi1hyNcyM1rTkHh8DmSsIQjYpwPprxSyyVipnxz30,9909
|
|
7
|
-
tictacsync/remrgmx.py,sha256=
|
|
7
|
+
tictacsync/remrgmx.py,sha256=FxaAo5qqynpj6O56ekQGD31YP6X2g-kEdwVpHSCoh4Q,4265
|
|
8
8
|
tictacsync/synciso.py,sha256=XmUcdUF9rl4VdCm7XW4PeYWYWM0vgAY9dC2hapoul9g,4821
|
|
9
|
-
tictacsync/timeline.py,sha256=
|
|
9
|
+
tictacsync/timeline.py,sha256=DW_24cddLIxmcAEywy_sU46lBc7bJLhpVSVi7TlWV4E,72531
|
|
10
10
|
tictacsync/yaltc.py,sha256=xbMucI19UJKrEvIzyfpOsi3piSWzqM1gKgooeT9DV8g,53167
|
|
11
|
-
tictacsync-0.
|
|
12
|
-
tictacsync-0.
|
|
13
|
-
tictacsync-0.
|
|
14
|
-
tictacsync-0.
|
|
15
|
-
tictacsync-0.
|
|
16
|
-
tictacsync-0.
|
|
11
|
+
tictacsync-0.99a0.dist-info/LICENSE,sha256=ZAOPXLh1zlQAnhHUd7oLslKM01YZ5UiAu3STYjwIxck,1068
|
|
12
|
+
tictacsync-0.99a0.dist-info/METADATA,sha256=XRzYPb479yzUd7SgUf5YagcDHeQqREeTUTOZnZyXWCE,5696
|
|
13
|
+
tictacsync-0.99a0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
14
|
+
tictacsync-0.99a0.dist-info/entry_points.txt,sha256=g3tdFFrVRcrKpuyKOCLUVBMgYfV65q9kpLZUOD_XCKg,139
|
|
15
|
+
tictacsync-0.99a0.dist-info/top_level.txt,sha256=eaCWG-BsYTRR-gLTJbK4RfcaXajr0gjQ6wG97MkGRrg,11
|
|
16
|
+
tictacsync-0.99a0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|