Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
301 lines (298 sloc) 20.8 KB
<html>
<head>
<title>video_encode</title>
<body>
<table border="0" cellpadding="10"><tr valign="top"><td>
<table border="0" cellspacing="0" cellpadding="1"><tr>
<td bgcolor="#e0c0c0"><a href="index.html">Top</a><br>
<tr><td bgcolor="#c0e0e0">
<a href="audio_capture.html">audio_capture</a><br>
<a href="audio_decode.html">audio_decode</a><br>
<a href="audio_encode.html">audio_encode</a><br>
<a href="audio_lowpower.html">audio_lowpower</a><br>
<a href="audio_mixer.html">audio_mixer</a><br>
<a href="audio_processor.html">audio_processor</a><br>
<a href="audio_render.html">audio_render</a><br>
<a href="audio_splitter.html">audio_splitter</a><br>
<tr><td bgcolor="#e0c0c0">
<a href="image_decode.html">image_decode</a><br>
<a href="image_encode.html">image_encode</a><br>
<a href="image_fx.html">image_fx</a><br>
<a href="resize.html">resize</a><br>
<a href="source.html">source</a><br>
<a href="transition.html">transition</a><br>
<tr><td bgcolor="#c0e0e0">
<a href="clock.html">clock</a><br>
<a href="null_sink.html">null_sink</a><br>
<a href="text_scheduler.html">text_scheduler</a><br>
<a href="visualisation.html">visualisation</a><br>
<tr><td bgcolor="#e0c0c0">
<a href="camera.html">camera</a><br>
<a href="egl_render.html">egl_render</a><br>
<a href="hvs.html">hvs</a><br>
<a href="isp.html">isp</a><br>
<a href="rawcam.html">rawcam</a><br>
<a href="video_decode.html">video_decode</a><br>
<a href="video_encode.html">video_encode</a><br>
<a href="video_render.html">video_render</a><br>
<a href="video_scheduler.html">video_scheduler</a><br>
<a href="video_splitter.html">video_splitter</a><br>
<tr><td bgcolor="#c0e0e0">
<a href="prop.html">Custom Index</a><br>
<a href="metadata.html">Metadata</a><br>
</table><td>
<h1>OMX.broadcom.video_encode</h1>
<table cellspacing="0" cellpadding="2"><tr>
<td cellpadding="0">
<table border="0" cellborder="1" cellspacing="0">
<tr><td border="1" port="200" bgcolor="red">200</td></tr>
</table></td>
<td bgcolor="grey" border="1">video_encode</td> <td cellpadding="0">
<table border="0" cellborder="1" cellspacing="0">
<tr><td border="1" port="201" bgcolor="red">201</td></tr>
</table></td>
</tr></table><p>
<p>
This component accepts raw video frames and compresses them, emitting
encoded video. It can accept YUV420 packed planar format, providing
the slice height is the same as the frame height so a single buffer is
a full frame. To gain efficiency it also accepts a proprietary image
format from the camera component.
<p>
Header bytes from the codec are sent in buffers (before any data) with the
buffer flag <tt>OMX_BUFFERFLAG_CODECCONFIG</tt> set. The last of these buffers
will also have <tt>OMX_BUFFERFLAG_ENDOFFRAME</tt> set.
<p>
<p>
<table border="1" cellspacing="0" cellpadding="2"><tr><td>Port<td>Index<td>Notes
<tr valign="top"><td rowspan="4">200<td><tt>OMX_IndexParamPortDefinition</tt>
<td> Query / set the format of the raw video frames. <tt>eColorFormat</tt>
must be <tt>OMX_COLOR_FormatYUV420PackedPlanar</tt>,
<tt>OMX_COLOR_FormatYUV420PackedSemiPlanar</tt>,
<tt>OMX_COLOR_Format16bitRGB565</tt>,
<tt>OMX_COLOR_Format24bitBGR888</tt>, or
<tt>OMX_COLOR_Format32bitABGR8888</tt>.
<tt>nSliceHeight</tt> must be the same as <tt>nFrameHeight</tt> rounded up
to the nearest multiple of 16. <tt>nStride</tt> must be a multiple of
32. Additional proprietary formats are allowed. This port also accepts
being tunnelled with an image domain output port, and will convert
fields as necessary.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamCameraPoolToEncoderFunction">OMX_IndexParamCameraPoolToEncoderFunction</a></tt>
<td> Used to set up proprietary communication with the previous component.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmUseProprietaryCallback">OMX_IndexConfigBrcmUseProprietaryCallback</a></tt>
<td> Forces use of proprietary tunnelling between ports.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamMinimumAlignment">OMX_IndexParamMinimumAlignment</a></tt>
<td> Query the minimum alignment that the component requries on the port.
<tr valign="top"><td rowspan="44">201<td><tt>OMX_IndexParamPortDefinition</tt>
<td> Query / set the output format. <tt>eCompressionFormat</tt> specifies
the format to which to encode. <tt>nBitrate</tt> specifies the target
bit rate (unless overridden by <tt>OMX_IndexParamVideoBitrate</tt>). The
output will either use VBR, or no rate control at all if the bitrate
is zero.
<tr valign="top"><td><tt>OMX_IndexParamVideoBitrate</tt>
<td> Query / set the output bitrate type and target bitrate. Overrides
any setting made via the port definition. Can only be set when in LOADED.
<tr valign="top"><td><tt>OMX_IndexConfigVideoBitrate</tt>
<td> Allows changing the target bitrate while the component is EXECUTING. Only
valid if rate control is enabled (see <tt>OMX_IndexParamVideoBitrate</tt>).
<tr valign="top"><td><tt>OMX_IndexParamVideoProfileLevelCurrent</tt>
<td> Get or set the current profile and level, provided this is supported by
the codec itself. At present only the H.264 codec supports this. Setting
the level merely sets the bits sent in the headers, and does not change
the way that encoding happens.
<p>A value of -1 for either profile or level will result in using the codec's
internal defaults for that property.
<tr valign="top"><td><tt>OMX_IndexParamVideoProfileLevelQuerySupported</tt>
<td> Allows to client to enumerate the various profile and level supported by
the port. Only the highest level is reported for each supported profile.
<tr valign="top"><td><tt>OMX_IndexConfigVideoAVCIntraPeriod</tt>
<td> Enable and configure the IDR and intra periodicity for the AVC encoder.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmVideoEncodedSliceSize">OMX_IndexConfigBrcmVideoEncodedSliceSize</a></tt>
<td> Video encoding output slice size.
<p>This config allows the client to set the slice size used in bytes,
as opposed to the standard OMX parameters which are in macroblocks.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmVideoIntraPeriodTime">OMX_IndexConfigBrcmVideoIntraPeriodTime</a></tt>
<td> Configure the time between intra frames, in microseconds. Only valid if
the framerate is zero (and hence the framerate is inferred from timestamps).
This overrides the setting in <tt>OMX_IndexConfigBrcmVideoIntraPeriod</tt>.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmVideoIntraPeriod">OMX_IndexConfigBrcmVideoIntraPeriod</a></tt>
<td> Configure the number of frames between intra frames. This overrides the setting
in <tt>OMX_IndexConfigBrcmVideoIntraPeriodTime</tt>.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmPixelAspectRatio">OMX_IndexParamBrcmPixelAspectRatio</a></tt>
<td> Allows configuring the pixel aspect ratio. Allowed values are:
1:1, 10:11, 16:11, 40:33, 59:54, and 118:81.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmPixelValueRange">OMX_IndexParamBrcmPixelValueRange</a></tt>
<td> Allows configuring the pixel value range.
<tr valign="top"><td><tt>OMX_IndexParamVideoIntraRefresh</tt>
<td> Configures the intra refresh mode, if supported by the codec.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmVideoIntraRefresh">OMX_IndexConfigBrcmVideoIntraRefresh</a></tt>
<td> Configures the intra refresh mode, if supported by the codec. Can be
used when the component is executing.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmVideoEncoderMBRowsPerSlice">OMX_IndexConfigBrcmVideoEncoderMBRowsPerSlice</a></tt>
<td> Configures the number of macro-block rows per slice. Setting the value to zero resets
to the default (one slice per frame).
<tr valign="top"><td><tt>OMX_IndexConfigVideoFramerate</tt>
<td> Allows run-time changing of the encoder frame rate setting. Overrides any framerate
setting found from the source component.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamILFifoConfig">OMX_IndexParamILFifoConfig</a></tt>
<td> Allows configuration of the FIFO settings. The FIFO size itself is ignored
(the value from the codec is used) but the number of FIFO headers can be modified.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoAVCSEIEnable">OMX_IndexParamBrcmVideoAVCSEIEnable</a></tt>
<td> Enable/disable SEI messages. Enable or disable Supplemental Enhancement Information
(SEI) messages to be inserted in the H.264 bitstream.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoAVC_VCLHRDEnable">OMX_IndexParamBrcmVideoAVC_VCLHRDEnable</a></tt>
<td> Enable/disable VCL HRD parameters to be inserted to the H.264 SPS header
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoAVC_LowDelayHRDEnable">OMX_IndexParamBrcmVideoAVC_LowDelayHRDEnable</a></tt>
<td> Enable/Disable setting low_delay_hrd flag in H.264 header. "big_pictures" that violate the nominal CPB removal times due to the number of bits used by an access unit are permitted when the flag is set.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoAVCInlineHeaderEnable">OMX_IndexParamBrcmVideoAVCInlineHeaderEnable</a></tt>
<td> Enable SPS/PPS insertion in the encoder bitstream. If this property is set then SPS/PPS
will be output before each IDR frame or P=intrarefresh frame.
Whilst designated as a Param, this property can now be changed while the component
and/or port is executing. The setting will be forwarded on to the codec to take
effect after the next IDR or P=intrarefresh frame.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoAVCSPSTimingEnable">OMX_IndexParamBrcmVideoAVCSPSTimingEnable</a></tt>
<td> Enable the insertion of timing information into the SPS based on the specified output port frame rate.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoAVCInlineVectorsEnable">OMX_IndexParamBrcmVideoAVCInlineVectorsEnable</a></tt>
<td> Enable insertion of vectors into the bitstream. Will be added with flags so it is possible to identify the data in the stream
<tr valign="top"><td><tt>OMX_IndexParamVideoQuantization</tt>
<td> Query / set the quantization parameters for P and I frames. Only used if rate
control has been disabled.
<tr valign="top"><td><tt>OMX_IndexParamVideoErrorCorrection</tt>
<td> Allows configuring the error correction modes. Resynch marker spacing is ignored.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamCodecConfig">OMX_IndexParamCodecConfig</a></tt>
<td> Query for codec-specific information.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmNALSSeparate">OMX_IndexParamBrcmNALSSeparate</a></tt>
<td> Force NALs to come out in separate buffers. With this enabled, those encoders that
support it will produce NALs in separate OMX buffers.
<tr valign="top"><td><tt>OMX_IndexParamVideoMpeg4</tt>
<td> This parameter is handled but only partially filled in by the component. A query might
return some zero values and some values might be ignored upon a set depending on
what the encoder supports.
<tr valign="top"><td><tt>OMX_IndexParamVideoAvc</tt>
<td> This parameter is handled but only partially filled in by the component. A query might
return some zero values and some values might be ignored upon a set depending on
what the encoder supports.
<tr valign="top"><td><tt>OMX_IndexParamVideoH263</tt>
<td> This parameter is handled but only partially filled in by the component. A query might
return some zero values and some values might be ignored upon a set depending on
what the encoder supports.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmCRC">OMX_IndexParamBrcmCRC</a></tt>
<td> Query for the latest CRC for output data on this port.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmDataUnit">OMX_IndexParamBrcmDataUnit</a></tt>
<td> Query the type of data delivery for the encoded data. This port emits
<tt>OMX_DataUnitCodedPicture</tt> format data.
<tr valign="top"><td><tt>OMX_IndexParamNalStreamFormatSupported</tt>
<td> Query the supported NAL stream formats (valid only for H.264). For now
only OMX_NaluFormatStartCodes and OMX_NaluFormatFourByteInterleaveLength
are supported.
<tr valign="top"><td><tt>OMX_IndexParamNalStreamFormat</tt>
<td> Query the native NAL stream format (valid only for H.264). The native format
is always OMX_NaluFormatStartCodes.
<tr valign="top"><td><tt>OMX_IndexParamNalStreamFormatSelect</tt>
<td> Set the NAL stream format (valid only for H.264).
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigEncLevelExtension">OMX_IndexConfigEncLevelExtension</a></tt>
<td> Allow the video encoder to encode at extended capabilities (frame size, bitrate,
number of macroblocks per second), instead of those specified by the requested level.
Enabled for AVC encoder only.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoEncodeMinQuant">OMX_IndexParamBrcmVideoEncodeMinQuant</a></tt>
<td> Query / set the codec's minimum quantization level.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoEncodeMaxQuant">OMX_IndexParamBrcmVideoEncodeMaxQuant</a></tt>
<td> Query / set the codec's maximum quantization level.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoInitialQuant">OMX_IndexParamBrcmVideoInitialQuant</a></tt>
<td> Query / set the codec's initial quantization level.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoRCSliceDQuant">OMX_IndexParamBrcmVideoRCSliceDQuant</a></tt>
<td> Query / set the codec's Slice DQuant level.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoFrameLimitBits">OMX_IndexParamBrcmVideoFrameLimitBits</a></tt>
<td> Query / set the codec's frame limit in bits (used in RC) .
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoPeakRate">OMX_IndexParamBrcmVideoPeakRate</a></tt>
<td> Query / set the codec's peak rate (used in RC).
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoEncodeQpP">OMX_IndexParamBrcmVideoEncodeQpP</a></tt>
<td> EncodeQP control.
Query / set the codec's P Frame QP if different from I-frames and rate control is disabled
<tr valign="top"><td><tt>OMX_IndexConfigVideoIntraVOPRefresh</tt>
<td> Khronos specified equivalent to OMX_IndexConfigBrcmVideoRequestIFrame.
Requests an I-frame to be encoded next (it doesn't force a P-frame
to be coded next if we are at the OMX_IndexConfigVideoAVCIntraPeriod
value).
<tr valign="top"><td><tt>OMX_IndexConfigBrcmDroppableRunLength</tt>
<td> When used in conjunction with OMX_IndexParamBrcmDroppablePFrames, set the number
of P frames to be treated as droppable before a reference is inserted. A value of
1 is equivalent to OMX_IndexParamBrcmDroppablePFrames=OMX_FALSE, and if the value
exceeds nPFrames in OMX_IndexParamVideoAvc then all P frames will be droppable.
<tr valign="top"><td rowspan="2">200 201<td><tt><a href="prop.html#OMX_IndexConfigBrcmPortStats">OMX_IndexConfigBrcmPortStats</a></tt>
<td> Return port statistics.
<tr valign="top"><td><tt>OMX_IndexParamVideoPortFormat</tt>
<td> Query / set the video port format. The input port supports uncompressed pixel data,
the output port supports a varietary of compressed formats.
<tr valign="top"><td rowspan="21">&nbsp;<td><tt><a href="prop.html#OMX_IndexParamBrcmAllowMemChange">OMX_IndexParamBrcmAllowMemChange</a></tt>
<td> Allow the component to change the amount of memory allocated when it goes from LOADED
to IDLE and has already allocated memory during an earlier transition. Enabled by default.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmRetainMemory">OMX_IndexParamBrcmRetainMemory</a></tt>
<td> Controls memory allocating during state transitions.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmImmutableInput">OMX_IndexParamBrcmImmutableInput</a></tt>
<td> Require the encoder to not modify the input images. This uses the standard
<tt>OMX_CONFIG_BOOLEANTYPE</tt> structure. If set to <tt>OMX_TRUE</tt>, the encoder
will not modify the input images. Only relevant when using proprietary tunnels.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmDroppablePFrames">OMX_IndexParamBrcmDroppablePFrames</a></tt>
<td> Require the encoder to select alternate PFrames as not droppable PFrames. This uses the standard code
(OMX_CONFIG_BOOLEANTYPE) structure.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmVideoH264LowLatency">OMX_IndexConfigBrcmVideoH264LowLatency</a></tt>
<td> Require the encoder to configure the low-latency mode.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmVideoH264AUDelimiters">OMX_IndexConfigBrcmVideoH264AUDelimiters</a></tt>
<td> Access Unit delimiters.
Enable/Disable appropriate encoder flags for supplying Access Unit delimiters along with the encoded stream.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmVideoH264DisableCABAC">OMX_IndexConfigBrcmVideoH264DisableCABAC</a></tt>
<td> CABAC Control.
Enable/Disable appropriate encoder flags to enable or disable CABAC (H264 ONLY).
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmVideoH264DeblockIDC">OMX_IndexConfigBrcmVideoH264DeblockIDC</a></tt>
<td> DEblock IDC control.
Enable/Disable Flags for deblock IDC (H264 Only).
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmVideoH264IntraMBMode">OMX_IndexConfigBrcmVideoH264IntraMBMode</a></tt>
<td> Intra Macroblock mode.
Query/Set intra MB mode (H264 Only).
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmVideoRequestIFrame">OMX_IndexConfigBrcmVideoRequestIFrame</a></tt>
<td> Request an I frame. If set to OMX_TRUE, the next job submitted
will be flagged to be converted as an I-frame. This automatically resets
itself. This works with proprietary tunnelling and OMX buffers.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmCRCEnable">OMX_IndexParamBrcmCRCEnable</a></tt>
<td> Query / set whether this component should calcualte CRCs on output data.
Setting this index resets CRCs to zero. CRC calculation defaults to off.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigMinimiseFragmentation">OMX_IndexConfigMinimiseFragmentation</a></tt>
<td> Query / set whether the component should minimise the fragmentation of output
data when copying into genuine OMX buffers. This does not change the
behaviour when a pointer to the output FIFO is used as the output buffer
with appropriate offsets and lengths.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamComponentName">OMX_IndexParamComponentName</a></tt>
<td> Sets the component name to be used in internal logging messages.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmEEDEEnable">OMX_IndexParamBrcmEEDEEnable</a></tt>
<td> Allow video encoder to enable end to end distortion estimator. Enabling/disabling can only
be performed at setup time. 1 enables EEDE, 0 disables EEDE. By default, EEDE is disabled.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmEEDELossRate">OMX_IndexParamBrcmEEDELossRate</a></tt>
<td> Sets the packet loss rate used by end to end distortion estimator. This can be done during
setup or runtime. The loss rate is an integer value, for example, 5 means 5% packet loss.
By default, loss rate is set to be 0 to begin with.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexConfigBrcmPoolMemAllocSize">OMX_IndexConfigBrcmPoolMemAllocSize</a></tt>
<td> Query for the size of the allocated image pool.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamRateControlModel">OMX_IndexParamRateControlModel</a></tt>
<td> Query / set the rate control method to be used. This parameter uses internal configuration
to determine used, so should not be changed without explicit internal knowledge.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmAlignHoriz">OMX_IndexParamBrcmAlignHoriz</a></tt>
<td> Query / set the horizonal alignment of the input buffer to be a given multiple of bytes in width.
Setting this to anything other than the default of 32 may have a negative impact of performance
because the input buffer may need to be re-pitched before it is encoded. Supported values
are 32 or 1 (no padding).
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmAlignVert">OMX_IndexParamBrcmAlignVert</a></tt>
<td> Query / set the vertical alignment of the input buffer to be a given multiple of rows in height.
Setting this to anything other than the default of 16 may have a negative impact of performance
because the input buffer may need to be re-pitched before it is encoded. Supported values
are 16 or 1 (no padding).
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmHeaderOnOpen">OMX_IndexParamBrcmHeaderOnOpen</a></tt>
<td> Header production control.
Query / set whether this component should output the header immediately on opening the codec,
before any input images have been received.
<tr valign="top"><td><tt><a href="prop.html#OMX_IndexParamBrcmVideoPrecodeForQP">OMX_IndexParamBrcmVideoPrecodeForQP</a></tt>
<td> Query /set the option of precoding the first frame to set up a good initial QP value.
</table>
</table>
</body>
</html>
You can’t perform that action at this time.