Giter VIP home page Giter VIP logo

Comments (5)

palemieux avatar palemieux commented on August 28, 2024

The size of the frame should be determined by looking at the position of the next frame in the IndexTable.

@kblinova What about the last frame?

from asdcplib.

kblinova avatar kblinova commented on August 28, 2024

The end of the clip element.

from asdcplib.

palemieux avatar palemieux commented on August 28, 2024

Couple of further thoughts.

The method uses small read/seek calls that are inefficient and problematic in future cloud deployments. The method should ultimately make one call to read (with possibly no seek if the frames are read sequentially) to ingest the whole frame.

There are two separate issues:

  1. one seek per frame read. this is primarily due to the function that reads one frame at a time and with random access. Two potential solutions:
    a. define a streaming read function that reads continuously after an initial seek
    b, keep a memory of the previous frame index to avoid a seek unless needed
  • small reads. hopefully the underlying platform does buffering does not read from the socket 4 bytes at a time :) Approach 1.b. would probably solve this. Alternatively the size of each frame could be inferred from the size of the element and index table offset. I am not however sure MXF was designed to work that way. I am tempted to ask on the 31FS reflector.

IAFrame is described in SMPTE ST 2098-2:2019 and can change independently of SMPTE ST 2067-201:2019. There is no need to tie the two together.

ST 2067-201 defines an IA Track File, which, by definition, contains a sequence of IA Frames. Can you clarify what you have in mind.

from asdcplib.

kblinova avatar kblinova commented on August 28, 2024

There is no goal to eliminate at least one seek and at least one read per frame. It is required due to the nature of the random access of frames.

What needs to be avoided is having the small reads to get the size of the frame from the IAFrame encoding. When this format is taken to the could, these fread calls would have to be translated to API calls to access the cloud resources so minimizing the number of calls could be a useful strategy.

The index table has all the information that is needed to access the frames, so there is no need to use the fact that the essence is IAFrame in order to decode it. The MXF wrapper should be essence-agnostic and is designed to have all the information to carry any essence without relying on the information about how the content is encoded.

from asdcplib.

palemieux avatar palemieux commented on August 28, 2024

The index table has all the information that is needed to access the frames,

However the index table does not contain sufficient information to determine the size of a frame, e.g. does not account for KLV Fill items.

What needs to be avoided is having the small reads to get the size of the frame from the IAFrame encoding.

Doesn't the cloud I/O library buffer reads?

from asdcplib.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.