#!/usr/bin/env python
from setuptools import setup
setup(
  name = 'cs.iso14496',
  description = 'Facilities for ISO14496 files - the ISO Base Media File Format, the basis for several things including MP4 and MOV.',
  author = 'Cameron Simpson',
  author_email = 'cs@cskk.id.au',
  version = '20180810',
  url = 'https://bitbucket.org/cameron_simpson/css/commits/all',
  classifiers = ['Development Status :: 3 - Alpha', 'Environment :: Console', 'Intended Audience :: Developers', 'Programming Language :: Python :: 3', 'Topic :: Multimedia :: Video', 'Operating System :: OS Independent', 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)'],
  install_requires = [],
  keywords = ['python3'],
  long_description = "Facilities for ISO14496 files - the ISO Base Media File Format,\nthe basis for several things including MP4 and MOV.\n\nISO make the standard available here:\n* [link](http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html)\n* [link](http://standards.iso.org/ittf/PubliclyAvailableStandards/c068960_ISO_IEC_14496-12_2015.zip)\n\n## Function `add_body_class(klass)`\n\nRegister a box body class in KNOWN_BOXBODY_CLASSES.\n  \n\n## Function `add_body_subclass(superclass, box_type, section, desc)`\n\nCreate and register a new BoxBody class that is simply a subclass of\nanother.  Returns the new class.\n\n## Function `add_generic_sample_boxbody(box_type, section, desc, struct_format_v0, sample_fields, struct_format_v1=None, has_inferred_entry_count=False)`\n\nCreate and add a specific Time to Sample box - section 8.6.1.\n  \n\n## Function `add_time_to_sample_boxbody(box_type, section, desc)`\n\nAdd a Time to Sample box - section 8.6.1.\n  \n\n## Class `Box`\n\nMRO: `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nBase class for all boxes - ISO14496 section 4.2.\n\nThis has the following PacketFields:\n* `header`: a BoxHeader\n* `body`: a BoxBody instance, usually a specific subclass\n* `unparsed`: if there are unconsumed bytes from the Box they\n  are stored as here as a BytesesField; note that this field\n  is not present if there were no unparsed bytes\n\n## Class `BoxBody`\n\nMRO: `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nAbstract basis for all Box bodies.\n  \n\n## Class `BoxHeader`\n\nMRO: `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nAn ISO14496 Box header packet.\n  \n\n## Class `BTRTBoxBody`\n\nMRO: `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nBitRateBoxBody - section 8.5.2.2.\n  \n\n## Class `CO64BoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA 'c064' Chunk Offset box - section 8.7.5.\n  \n\n## Class `ContainerBoxBody`\n\nMRO: `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA base class for pure container boxes.\n  \n\n## Class `CSLGBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA 'cslg' Composition to Decode box - section 8.6.1.4.\n  \n\n## Class `DINFBoxBody`\n\nMRO: `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA 'dinf' Data Information BoxBody - section 8.7.1.\n  \n\n## Class `DREFBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA 'dref' Data Reference box containing Data Entry boxes - section 8.7.2.1.\n  \n\n## Function `dump_box(B, indent='', fp=None, crop_length=170)`\n\nRecursively dump a Box.\n  \n\n## Class `ELNGBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA ELNGBoxBody is a Extended Language Tag box - ISO14496 section 8.4.6.\n  \n\n## Class `FREEBoxBody`\n\nMRO: `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA 'free' or 'skip' box - ISO14496 section 8.1.2.\nNote the length and discard the data portion.\n\n## Class `FTYPBoxBody`\n\nMRO: `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nAn 'ftyp' File Type box - ISO14496 section 4.3.\nDecode the major_brand, minor_version and compatible_brands.\n\n## Class `FullBoxBody`\n\nMRO: `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA common extension of a basic BoxBody, with a version and flags field.\nISO14496 section 4.2.\n\n## Class `HDLRBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA HDLRBoxBody is a Handler Reference box - ISO14496 section 8.4.3.\n  \n\n## Function `main(argv)`\n\nModule main programme.\n  \n\n## Class `MDATBoxBody`\n\nMRO: `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA Media Data Box - ISO14496 section 8.1.1.\n  \n\n## Class `MDHDBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA MDHDBoxBody is a Media Header box - ISO14496 section 8.4.2.\n  \n\n## Class `METABoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA 'meta' Meta BoxBody - section 8.11.1.\n  \n\n## Class `MOOVBoxBody`\n\nMRO: `ContainerBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nAn 'moov' Movie box - ISO14496 section 8.2.1.\nDecode the contained boxes.\n\n## Class `MVHDBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nAn 'mvhd' Movie Header box - ISO14496 section 8.2.2.\n  \n\n## Class `OverBox`\n\nMRO: `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA fictitious Box encompassing all the Boxes in an input buffer.\n  \n\n## Function `parse(o, **kw)`\n\nReturn an OverBox source (str, int, file).\n  \n\n## Function `parse_buffer(bfr, copy_offsets=None, **kw)`\n\nParse an ISO14496 stream from the CornuCopyBuffer `bfr`, yield top level Boxes.\n`bfr`: a CornuCopyBuffer provided the stream data, preferably seekable\n`discard_data`: whether to discard unparsed data, default False\n`copy_offsets`: callable to receive Box offsets\n\n## Function `parse_chunks(chunks, **kw)`\n\nParse an ISO14496 stream from the iterator of data `chunks`, yield top level Boxes.\n\n`chunks`: an iterator yielding bytes objects\n`discard_data`: whether to discard unparsed data, default False\n`copy_offsets`: callable to receive BoxBody offsets\n\n## Function `parse_fd(fd, discard_data=False, **kw)`\n\nParse an ISO14496 stream from the file descriptor `fd`, yield top level Boxes.\n`fd`: a file descriptor open for read\n`discard_data`: whether to discard unparsed data, default False\n`copy_offsets`: callable to receive BoxBody offsets\n\n## Function `parse_file(fp, **kw)`\n\nParse an ISO14496 stream from the file `fp`, yield top level Boxes.\n`fp`: a file open for read\n`discard_data`: whether to discard unparsed data, default False\n`copy_offsets`: callable to receive BoxBody offsets\n\n## Class `PDINBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nAn 'pdin' Progressive Download Information box - ISO14496 section 8.1.3.\n  \n\n## Function `pick_boxbody_class(box_type, default_type=None)`\n\nInfer a Python BoxBody subclass from the bytes `box_type`.\n\n* `box_type`: the 4 byte box type\n* `default_type`: the default BoxBody subclass if there is no\n  specific mapping, default None; if None, use BoxBody.\n\n## Class `SMHDBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA 'smhd' Sound Media Headerbox - section 12.2.2.\n  \n\n## Class `STCOBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA 'stco' Chunk Offset box - section 8.7.5.\n  \n\n## Class `STSCBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \n'stsc' (Sample Table box - section 8.7.4.1.\n  \n\n## Class `STSZBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA 'stsz' Sample Size box - section 8.7.3.2.\n  \n\n## Class `STZ2BoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA 'stz2' Compact Sample Size box - section 8.7.3.3.\n  \n\n## Class `SubBoxesField`\n\nMRO: `cs.binary.ListField`, `cs.binary.PacketField`, `abc.ABC`  \nA field which is itself a list of Boxes.\n  \n\n## Class `TKHDBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nAn 'tkhd' Track Header box - ISO14496 section 8.2.2.\n  \n\n## Class `TrackGroupTypeBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA TrackGroupTypeBoxBody contains a track group id - ISO14496 section 8.3.3.2.\n  \n\n## Class `TrackReferenceTypeBoxBody`\n\nMRO: `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA TrackReferenceTypeBoxBody contains references to other tracks - ISO14496 section 8.3.3.2.\n  \n\n## Class `TREFBoxBody`\n\nMRO: `ContainerBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nTrack Reference BoxBody, container for trackReferenceTypeBoxes - ISO14496 section 8.3.3.\n  \n\n## Class `TTSB_Sample`\n\nMRO: `builtins.tuple`  \nTTSB_Sample(count, delta)\n\n## Class `URL_BoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nAn 'url ' Data Entry URL BoxBody - section 8.7.2.1.\n  \n\n## Class `URN_BoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nAn 'urn ' Data Entry URL BoxBody - section 8.7.2.1.\n  \n\n## Class `VMHDBoxBody`\n\nMRO: `FullBoxBody`, `BoxBody`, `cs.binary.Packet`, `cs.binary.PacketField`, `abc.ABC`  \nA 'vmhd' Video Media Headerbox - section 12.1.2.\n  ",
  long_description_content_type = 'text/markdown',
  package_dir = {'': 'lib/python'},
  py_modules = ['cs.iso14496'],
)
