diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d0c3cbf --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..6247f7e --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..a84d1a8 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,2 @@ +Sphinx +recommonmark \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 0000000..2af2682 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,67 @@ +# -- General configuration ----------------------------------------------------- +import os +import sys + +# Use the source tree. +sys.path.insert(1, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.doctest', + 'sphinx.ext.intersphinx', + 'sphinx.ext.todo', + 'sphinx.ext.coverage', + 'recommonmark' +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +copyright = '2020-2021 Alfredo Sequeida' + +# List of directories, relative to source directory, that shouldn't be searched +# for source files. +exclude_trees = [] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. Major themes that come with +# Sphinx are currently 'default' and 'sphinxdoc'. +html_theme = 'default' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'fviddoc' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# -- Options for LaTeX output -------------------------------------------------- + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'fvid.tex', 'Fvid Documentation', 'Alfredo Sequeida', 'manual'), +] + + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = {'https://docs.python.org/3': None} \ No newline at end of file diff --git a/docs/source/history.rst b/docs/source/history.rst new file mode 100644 index 0000000..5568ba4 --- /dev/null +++ b/docs/source/history.rst @@ -0,0 +1,39 @@ +Changelog +********* + +Planned (1.1.0) +=============== + +- GUI +- Use json-encoded strings instead of pickle for storing stuff + +1.0.0 +===== + +Additions: + +- Added support for passwords, custom framerates, and Cython compilation +- file.mp4 compression with ``gzip`` +- Pickled data to allow decompression with original file name + +Bug Fixes: + +- Fixed ``file.bin`` bug +- Removed ``magic``, ``mime`` +- New ``make_image_sequence`` logic +- Framerate patch + +Performance: + +- Huge Cython/Python speedups + +0.0.2 +===== + +- Bug fixes +- Minor speedups + +0.0.1 +===== + +- Initial release diff --git a/docs/source/howto.rst b/docs/source/howto.rst new file mode 100644 index 0000000..02201f3 --- /dev/null +++ b/docs/source/howto.rst @@ -0,0 +1,47 @@ +How To +****** + +Basic Usage +=========== + +Assuming you have pip installed fvid, you can use encode videos as follows: + +Linux/OSX: + +``fvid -i [input file] -e`` + +``fvid -i [input file] --framerate 1 -e`` + +``fvid -i [input file] --password "wow fvid is cool" -e`` + +Windows: + +``py -m fvid -i [input file] -e`` + +``py -m fvid -i [input file] --framerate 1 -e`` + +``py -m fvid -i [input file] --password "wow fvid is cool" -e`` + + +Decoding is supported also: + +Linux/OSX: + +``fvid -i [input video] -d`` + +Windows: + +``py -m fvid -i [input video] -d`` + + +If the file was encoded with a non-default password, it'll prompt you to enter the password upon decoding. + +Options +======= + +* ``-i/--input`` After this, specify the path to the file you want to encode/decode +* ``-o/--output`` After this, specify the name of the new file you want to make. Defaults to ``file.mp4`` when encoding. +* ``-e/--encode`` This indicates you're encoding the input file +* ``-d/--decode`` This indicates you're decoding the input file +* ``-f/--framerate`` After this, specify the framerate that you want to have the file output at. A higher value means the frames go faster. Defaults to 1 fps. +* ``-p/--password`` After this, specify the password you want to encode with. You will need to remember this to decode the file. Defaults to 32 spaces. \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 0000000..94135a0 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,50 @@ +.. Fvid documentation master file, created by + sphinx-quickstart on Sat Feb 20 11:43:24 2021. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Fvid's documentation! +================================ + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + history + howto + +Download & Install +================== + +The easiest way to get fvid is via PyPi_ with pip_:: + + $ pip install -U fvid + +You can also ``git clone`` the latest code and install from source:: + + $ python setup.py install + +.. _PyPi: https://pypi.org/project/fvid/ +.. _pip: https://pypi.org/project/pip/ +.. _clone: https://github.com/AlfredoSequeida/fvid.git + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + + +Authors +======= + +* Alfredo Sequeida +* Wisketchy Dobrov +* Theelgirl + +Pages +===== +* :doc:`/index` +* :doc:`/history` +* :doc:`/howto` \ No newline at end of file