Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file modified _build/InnoSetup/assets/SmallWizardImage.bmp
100755 → 100644
Empty file.
Empty file modified _build/InnoSetup/assets/WizModernImage.bmp
100755 → 100644
Empty file.
Empty file modified _build/InnoSetup/assets/WizModernImage.psd
100755 → 100644
Empty file.
Empty file modified _packaging/snap/snapcraft.yaml
100755 → 100644
Empty file.
Empty file modified vidcutter/images/_originals/clip-index-header.psd
100755 → 100644
Empty file.
Empty file modified vidcutter/images/_originals/dialog-backdrop-02.psd
100755 → 100644
Empty file.
Empty file modified vidcutter/images/_originals/dialog-backdrop.psd
100755 → 100644
Empty file.
Empty file modified vidcutter/images/_originals/player-buttons.psd
100755 → 100644
Empty file.
Empty file modified vidcutter/images/_originals/startup-backdrop.psd
100755 → 100644
Empty file.
Empty file modified vidcutter/images/_originals/vidcutter-dmg.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/arrow-left-on.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/arrow-left.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/arrow-right-on.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/arrow-right.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/dark/info-active.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/dark/info-hover.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/dark/info.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/dialog-backdrop.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/filmstrip-thumbs.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/handle-nothumbs.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/handle.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/light/info-active.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/light/info-hover.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/light/info.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/light/toolbar-end.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/light/toolbar-open.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/light/toolbar-pause.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/light/toolbar-play.png
100755 → 100644
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified vidcutter/images/light/toolbar-save.png
100755 → 100644
Empty file modified vidcutter/images/light/toolbar-start.png
100755 → 100644
Empty file modified vidcutter/images/startup-backdrop.jpg
100755 → 100644
23 changes: 12 additions & 11 deletions vidcutter/libs/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#######################################################################

from enum import Enum
from typing import Dict, List

from PyQt5.QtCore import QSize

Expand All @@ -40,41 +41,41 @@ def filter_settings() -> Munch:
)

@property
def thumbnails(self) -> dict:
def thumbnails(self) -> Dict[str, QSize]:
return {'INDEX': QSize(100, 70), 'TIMELINE': QSize(105, 60)}

@property
def video_codecs(self) -> list:
def video_codecs(self) -> List[str]:
return ['flv', 'h263', 'libvpx', 'libx264', 'libx265', 'libxvid', 'mpeg2video', 'mpeg4', 'msmpeg4', 'wmv2']

@property
def audio_codecs(self) -> list:
def audio_codecs(self) -> List[str]:
return ['aac', 'ac3', 'libfaac', 'libmp3lame', 'libvo_aacenc', 'libvorbis', 'mp2', 'wmav2']

@property
def formats(self) -> list:
def formats(self) -> List[str]:
return [
'3g2', '3gp', 'aac', 'ac3', 'avi', 'dv', 'flac', 'flv', 'm4a', 'm4v', 'mka', 'mkv', 'mov', 'mp3',
'mp4', 'mpg', 'ogg', 'vob', 'wav', 'webm', 'wma', 'wmv'
]

@property
def mpeg_formats(self) -> list:
def mpeg_formats(self) -> List[str]:
return [
'h264', 'hevc', 'mpeg4', 'divx', 'xvid', 'webm', 'ivf', 'vp9', 'mpeg2video', 'mpg2', 'mp2', 'mp3',
'aac'
]

@property
def encoding(self) -> dict:
def encoding(self) -> Dict[str, List[str]]:
return {
'hevc': 'libx265 -tune zerolatency -preset ultrafast -x265-params crf=23 -qp 4 -flags +cgop',
'h264': 'libx264 -tune film -preset ultrafast -x264-params crf=23 -qp 0 -flags +cgop',
'vp9': 'libvpx-vp9 -deadline best -quality best'
'hevc': ['libx265', '-tune', 'zerolatency', '-preset', 'ultrafast', '-x265-params', 'crf=23', '-qp', '4', '-flags', '+cgop'],
'h264': ['libx264', '-tune', 'film', '-preset', 'ultrafast', '-x264-params', 'crf=23', '-qp', '0', '-flags', '+cgop'],
'vp9': ['libvpx-vp9', '-deadline', 'best', '-quality', 'best'],
}

@property
def binaries(self) -> dict:
def binaries(self) -> Dict[str, Dict[str, List[str]]]:
return {
'nt': { # Windows
'ffmpeg': ['ffmpeg.exe'],
Expand All @@ -89,7 +90,7 @@ def binaries(self) -> dict:
}

@property
def filters(self) -> dict:
def filters(self) -> Dict[str, List[str]]:
return {
'all': [
'3g2', '3gp', 'amv', 'asf', 'asx', 'avi', 'bin', 'dat', 'div', 'divx', 'f4v', 'flv',
Expand Down
192 changes: 138 additions & 54 deletions vidcutter/libs/videoservice.py

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion vidcutter/mediainfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ def __init__(self, media, parent=None, flags=Qt.Dialog | Qt.WindowCloseButtonHin
okButton.accepted.connect(self.close)
button_layout = QHBoxLayout()
mediainfo_version = self.parent.videoService.cmdExec(self.parent.videoService.backends.mediainfo,
'--version', True)
['--version'], True)
if len(mediainfo_version) >= 2:
mediainfo_version = mediainfo_version.split('\n')[1]
mediainfo_label = QLabel('<div style="font-size:11px;"><b>Media information by:</b><br/>%s @ '
Expand Down
7 changes: 3 additions & 4 deletions vidcutter/videocutter.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,8 @@ def __init__(self, parent: QMainWindow):
self.videoService.addScenes.connect(self.addScenes)

self.project_files = {
'edl': re.compile(r'(\d+(?:\.?\d+)?)\t(\d+(?:\.?\d+)?)\t([01])'),
'vcp': re.compile(r'(\d+(?:\.?\d+)?)\t(\d+(?:\.?\d+)?)\t([01])\t(".*")$')
'edl': re.compile(r'(\d+(?:\.\d+)?)\t(\d+(?:\.\d+)?)\t([01])'),
'vcp': re.compile(r'(\d+(?:\.\d+)?)\t(\d+(?:\.\d+)?)\t([01])(?:\t"(.*)")?$')
}

self._initIcons()
Expand Down Expand Up @@ -864,8 +864,7 @@ def openProject(self, checked: bool = False, project_file: str = None) -> Option
clip_start = self.delta2QTime(float(start))
clip_end = self.delta2QTime(float(stop))
clip_image = self.captureImage(self.currentMedia, clip_start)
if project_type == 'vcp' and self.createChapters and len(chapter):
chapter = chapter[1:len(chapter) - 1]
if project_type == 'vcp' and self.createChapters and chapter is not None:
if not len(chapter):
chapter = None
else:
Expand Down