Man Linux: Main Page and Category List


       MP4WriteSample - Write a track sample


       #include <mp4.h>

       bool MP4WriteSample(
            MP4FileHandle hFile,
            MP4TrackId trackId,
            u_int8_t* pBytes,
            u_int32_t numBytes,
            MP4Duration duration = MP4_INVALID_DURATION,
            MP4Duration renderingOffset = 0,
            bool isSyncSample = true


       hFile  Specifies the mp4 file to which the operation applies.

              Specifies the track to which the operation applies.

       pBytes Pointer to the sample data.

              The size in bytes of the sample.

              The  duration for this sample. Caveat: The duration should be in
              the track timescale units.

              The rendering offset for this sample. Currently the  only  media
              type  that  needs this feature is MPEG video. Caveat: The offset
              should be in the track timescale units.

              The sync/random access flag for this sample.


       Upon success, true (1). Upon an error, false (0).


       MP4WriteSample writes the given sample at  the  end  of  the  specified
       track.  Currently  the  library  does  not  support random insertion of
       samples into the track timeline. Note that with mp4 there cannot be any
       holes  or  overlapping  samples  in  the track timeline. The last three
       arguments give optional sample information.

       The value of duration can  be  given  as  MP4_INVALID_DURATION  if  all
       samples in the track have the same duration. This can be specified with
       MP4AddTrack() and related functions.

       Typically for audio none of the optional  arguments  are  needed.  MPEG
       audio  such  as MP3 or AAC has a fixed sample duration and every sample
       can be accessed at random.

       For video, all of the optional arguments could be  needed.  MPEG  video
       can  be  encoded  at a variable frame rate, with only occasional random
       access points, and with "B frames" which cause the rendering  (display)
       order of the video frames to differ from the storage/decoding order.

       Other media types fall between these two extremes.