mvPasteFrames man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



mvEditByFrame(3dm)					    mvEditByFrame(3dm)

NAME
     mvEditByFrame:  mvReadFrames, mvInsertFrames, mvAppendFrames,
     mvDeleteFrames, mvPasteFrames - edit/manipulate a movie track

SYNOPSIS
     #include <dmedia/moviefile.h>

     DMstatus mvReadFrames( MVid track, MVframe frameIndex,
			 MVframe frameCount, size_t bufferSize,
			 void* buffer );

     DMstatus mvInsertFrames( MVid track, MVframe frameIndex,
			 MVframe frameCount, size_t bufferSize,
			 void* buffer );

     DMstatus mvAppendFrames( MVid track, MVframe frameCount,
			 size_t bufferSize, void* buffer );

     DMstatus mvDeleteFrames( MVid track, MVframe frameIndex,
			 MVframe frameCount );

     DMstatus mvPasteFrames( MVid fromTrack, MVframe fromFrameIndex,
			 MVframe frameCount, MVid toTrack,
			 MVframe toFrameIndex );

DESCRIPTION
     mvReadFrames reads frameCount frames from the track, starting with
     frameIndex, and places them in buffer.  The value returned is DM_SUCCESS
     or DM_FAILURE.  For image tracks the image returned in the buffer pointed
     to by buffer are of pixel packing DM_IMAGE_PACKING_XBGR, interlacing
     DM_IMAGE_NONINTERLACED, and orientation DM_IMAGE_BOTTOM_TO_TOP.  For
     audio tracks the audio frames returned in the buffer pointed to by buffer
     are in the format DM_AUDIO_TWOS_COMPLEMENT for all integer formats,
     DM_AUDIO_FLOAT for 32-bit floating point format, or DM_AUDIO_DOUBLE for
     64-bit floating point format.

     mvInsertFrames takes frameCount frames from buffer and writes them to the
     track, starting at frameIndex.  The previous contents of the track from
     frameIndex on are shifted by frameCount to make room for the new frames.
     The value returned is DM_SUCCESS or DM_FAILURE.  For image tracks
     mvInsertFrames expects the data pointed to by buffer to be formatted as
     packing DM_IMAGE_PACKING_XBGR, interlacing DM_IMAGE_NONINTERLACED, and
     orientation DM_IMAGE_BOTTOM_TO_TOP.  For audio tracks mvInsertFrames
     expects the data pointed to by buffer to be formatted as
     DM_AUDIO_TWOS_COMPLEMENT for all integer formats, DM_AUDIO_FLOAT for 32-
     bit floating point format, or DM_AUDIO_DOUBLE for 64-bit floating point
     format.

     mvAppendFrames takes frameCount frames from buffer and writes them to the

									Page 1

mvEditByFrame(3dm)					    mvEditByFrame(3dm)

     end of the track.	The value returned is DM_SUCCESS or DM_FAILURE.	 For
     image tracks mvAppendFrames expects the data pointed to by buffer to be
     formatted as packing DM_IMAGE_PACKING_XBGR, interlacing
     DM_IMAGE_NONINTERLACED, and orientation DM_IMAGE_BOTTOM_TO_TOP.  For
     audio tracks mvAppendFrames expects the data pointed to by buffer to be
     formatted as DM_AUDIO_TWOS_COMPLEMENT and DM_AUDIO_BIG_ENDIAN (if the
     audio is more than 8 bits per sample). Some movies cannot be read or
     edited while appending; see mvIsAppendOnly(3dm).

     mvDeleteFrames removes frameCount frames from the track, starting at
     frameIndex.  Any subsequent frames are shifted back into the empty space,
     making the track shorter.	The value returned is DM_SUCCESS or
     DM_FAILURE.

     mvPasteFrames is provided for convenience and efficiency.	It is
     equivalent to reading frames from one track and inserting them into
     another track, but is much more efficient.	 The example below is
     equivalent, assuming that a large enough buffer can be allocated:

	  DMstatus mvPasteFrames( MVid	  fromTrack,
				  MVframe fromFrameIndex,
				  MVframe frameCount,
				  MVid	  toTrack,
				  MVframe toFrameIndex )
	  {
	      size_t	size;
	      void*	buffer;
	      DMparams* params = mvGetParams( fromTrack );

	      switch ( mvGetTrackMedium( fromTrack ) ) {
		  case DM_IMAGE:
		  /* mvReadFrames on image tracks always returns xbgr,
			bottom to top, non interlaced data */
		     dmParamsSetEnum( params,
				      DM_IMAGE_PACKING,
				      DM_IMAGE_PACKING_XBGR );
		     dmParamsSetEnum( params,
				      DM_IMAGE_INTERLACING,
				      DM_IMAGE_NONINTERLACED );
		     dmParamsSetEnum( params,
				      DM_IMAGE_ORIENTATION,
				      DM_IMAGE_BOTTOM_TO_TOP );
		     size = dmImageFrameSize(params);
		     break;
		  case DM_AUDIO:
		  /* mvReadFrames on audio tracks always returns
			twos complement audio data */
		     dmParamsSetEnum( params,
				      DM_AUDIO_FORMAT,
				      DM_AUDIO_TWOS_COMPLEMENT );
		     size = dmAudioFrameSize(params);

									Page 2

mvEditByFrame(3dm)					    mvEditByFrame(3dm)

		     break;
	      }

	      buffer = malloc( size * frameCount );

	      if ( mvReadFrames( fromTrack,
				 fromFrameIndex,
				 frameCount,
				 size * frameCount,
				 buffer ) != DM_SUCCESS )
		  return DM_FAILURE;

	      if ( mvInsertFrames( toTrack,
				   toFrameIndex,
				   frameCount,
				   size * frameCount,
				   buffer ) != DM_SUCCESS )
		  return DM_FAILURE;

	      return DM_SUCCESS;
	  }

SEE ALSO
     mvIntro(3dm), mvIsAppendOnly(3dm), mvAddTrack(3dm), mvGetAudioWidth(3dm),
     mvGetImageWidth(3dm), mvGetErrno(3dm), mvTrackData(3dm).

									Page 3

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net