org.red5.io.mp4.impl
Class MP4

java.lang.Object
  extended by org.red5.io.mp4.impl.MP4
All Implemented Interfaces:
IStreamableFile, IMP4

public class MP4
extends Object
implements IMP4

A MP4Impl implements the MP4 api

Author:
The Red5 Project ([email protected]), Paul Gregoire, ([email protected])

Field Summary
protected static Logger log
           
 
Constructor Summary
MP4()
          Default constructor, used by Spring so that parameters may be injected.
MP4(File file)
          Create MP4 from given file source.
 
Method Summary
 void flushHeaders()
          Flushes Header
 ITagWriter getAppendWriter()
          Returns a Writer which is setup to append to the file.
 Map<?,?> getKeyFrameData()
          Gets the keyframe data
 IMetaData<?,?> getMetaData()
          Returns a map of the metadata
 ITagReader getReader()
          Returns a reader to parse and read the tags inside the file.
 ITagWriter getWriter()
          Returns a writer that creates a new file or truncates existing contents.
 boolean hasKeyFrameData()
          Returns a boolean stating whether a mp4 has keyframedata
 boolean hasMetaData()
          Returns a boolean stating whether the mp4 has metadata
 ITagReader readerFromNearestKeyFrame(int seekPoint)
          Returns a Reader closest to the nearest keyframe
 void refreshHeaders()
          Refreshes the headers.
 void setKeyFrameData(Map<?,?> keyframedata)
          Sets the keyframe data of a mp4 file
 void setMetaData(IMetaData<?,?> meta)
          Sets the metadata
 void setMetaService(IMetaService service)
          Sets the MetaService through Spring
 ITagWriter writerFromNearestKeyFrame(int seekPoint)
          Returns a Writer based on the nearest key frame
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static Logger log
Constructor Detail

MP4

public MP4()
Default constructor, used by Spring so that parameters may be injected.


MP4

public MP4(File file)
Create MP4 from given file source.

Parameters:
file - File source
Method Detail

hasMetaData

public boolean hasMetaData()
Returns a boolean stating whether the mp4 has metadata

Specified by:
hasMetaData in interface IMP4
Returns:
boolean true if file has injected metadata, false otherwise

getMetaData

public IMetaData<?,?> getMetaData()
                           throws FileNotFoundException
Returns a map of the metadata

Specified by:
getMetaData in interface IMP4
Returns:
metadata File metadata
Throws:
FileNotFoundException - File not found

hasKeyFrameData

public boolean hasKeyFrameData()
Returns a boolean stating whether a mp4 has keyframedata

Specified by:
hasKeyFrameData in interface IMP4
Returns:
boolean true if file has keyframe metadata, false otherwise

setKeyFrameData

public void setKeyFrameData(Map<?,?> keyframedata)
Sets the keyframe data of a mp4 file

Specified by:
setKeyFrameData in interface IMP4
Parameters:
keyframedata - Keyframe metadata

getKeyFrameData

public Map<?,?> getKeyFrameData()
Gets the keyframe data

Specified by:
getKeyFrameData in interface IMP4
Returns:
keyframedata Keyframe metadata

refreshHeaders

public void refreshHeaders()
                    throws IOException
Refreshes the headers. Usually used after data is added to the mp4 file

Specified by:
refreshHeaders in interface IMP4
Throws:
IOException - Any I/O exception

flushHeaders

public void flushHeaders()
                  throws IOException
Flushes Header

Specified by:
flushHeaders in interface IMP4
Throws:
IOException - Any I/O exception

getReader

public ITagReader getReader()
                     throws IOException
Returns a reader to parse and read the tags inside the file.

Specified by:
getReader in interface IStreamableFile
Returns:
the reader Tag reader
Throws:
IOException - I/O exception

readerFromNearestKeyFrame

public ITagReader readerFromNearestKeyFrame(int seekPoint)
Returns a Reader closest to the nearest keyframe

Specified by:
readerFromNearestKeyFrame in interface IMP4
Parameters:
seekPoint - Point in file we are seeking around
Returns:
reader Tag reader closest to that point

getWriter

public ITagWriter getWriter()
                     throws IOException
Returns a writer that creates a new file or truncates existing contents.

Specified by:
getWriter in interface IStreamableFile
Returns:
the writer Tag writer
Throws:
IOException - I/O exception

writerFromNearestKeyFrame

public ITagWriter writerFromNearestKeyFrame(int seekPoint)
Returns a Writer based on the nearest key frame

Specified by:
writerFromNearestKeyFrame in interface IMP4
Parameters:
seekPoint - Point in file we are seeking around
Returns:
writer Tag writer closest to that point

setMetaData

public void setMetaData(IMetaData<?,?> meta)
                 throws IOException
Sets the metadata

Specified by:
setMetaData in interface IMP4
Parameters:
meta - Metadata object
Throws:
FileNotFoundException - File not found
IOException - Any other I/O exception

setMetaService

public void setMetaService(IMetaService service)
Sets the MetaService through Spring

Specified by:
setMetaService in interface IMP4
Parameters:
service - Metadata service

getAppendWriter

public ITagWriter getAppendWriter()
                           throws IOException
Description copied from interface: IStreamableFile
Returns a Writer which is setup to append to the file.

Specified by:
getAppendWriter in interface IStreamableFile
Returns:
the writer Tag writer used for append mode
Throws:
IOException - I/O exception


Copyright © 2006-2012 The Red5 Project