aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/ffmpeg-0.11/libavutil/samplefmt.pas
diff options
context:
space:
mode:
authork-m_schindler <k-m_schindler@b956fd51-792f-4845-bead-9b4dfca2ff2c>2012-10-20 00:32:35 +0000
committerk-m_schindler <k-m_schindler@b956fd51-792f-4845-bead-9b4dfca2ff2c>2012-10-20 00:32:35 +0000
commiteaca529cd5bcea6af4b8cdf9a878bec49cba231c (patch)
tree50c13053ec788d3939b4f91d66c4a0ca9ef25993 /src/lib/ffmpeg-0.11/libavutil/samplefmt.pas
parent811417715784937a5d8b84743fcf29476b6a5687 (diff)
downloadusdx-eaca529cd5bcea6af4b8cdf9a878bec49cba231c.tar.gz
usdx-eaca529cd5bcea6af4b8cdf9a878bec49cba231c.tar.xz
usdx-eaca529cd5bcea6af4b8cdf9a878bec49cba231c.zip
first try of version 0.11.*
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@2926 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to 'src/lib/ffmpeg-0.11/libavutil/samplefmt.pas')
-rw-r--r--src/lib/ffmpeg-0.11/libavutil/samplefmt.pas96
1 files changed, 88 insertions, 8 deletions
diff --git a/src/lib/ffmpeg-0.11/libavutil/samplefmt.pas b/src/lib/ffmpeg-0.11/libavutil/samplefmt.pas
index 80cdd71b..62165737 100644
--- a/src/lib/ffmpeg-0.11/libavutil/samplefmt.pas
+++ b/src/lib/ffmpeg-0.11/libavutil/samplefmt.pas
@@ -19,13 +19,32 @@
* This is a part of the Pascal port of ffmpeg.
*
* Conversion of libavutil/samplefmt.h
- * avutil version 51.34.101
+ * avutil version 51.54.100
*
*)
type
(**
- * all in native-endian format
+ * Audio Sample Formats
+ *
+ * @par
+ * The data described by the sample format is always in native-endian order.
+ * Sample values can be expressed by native C types, hence the lack of a signed
+ * 24-bit sample format even though it is a common raw audio data format.
+ *
+ * @par
+ * The floating-point formats are based on full volume being in the range
+ * [-1.0, 1.0]. Any values outside this range are beyond full volume level.
+ *
+ * @par
+ * The data layout as used in av_samples_fill_arrays() and elsewhere in Libav
+ * (such as AVFrame in libavcodec) is as follows:
+ *
+ * For planar sample formats, each audio channel is in a separate data plane,
+ * and linesize is the buffer size, in bytes, for a single plane. All data
+ * planes must be the same size. For packed sample formats, only the first data
+ * plane is used, and samples for each channel are interleaved. In this case,
+ * linesize is the buffer size, in bytes, for the 1 plane.
*)
TAVSampleFormat = (
AV_SAMPLE_FMT_NONE = -1,
@@ -70,6 +89,30 @@ function av_get_alt_sample_fmt(sample_fmt: TAVSampleFormat; planar: cint): TAVSa
cdecl; external av__util;
(**
+ * Get the packed alternative form of the given sample format.
+ *
+ * If the passed sample_fmt is already in packed format, the format returned is
+ * the same as the input.
+ *
+ * @return the packed alternative form of the given sample format or
+ AV_SAMPLE_FMT_NONE on error.
+ *)
+function av_get_packed_sample_fmt(sample_fmt: TAVSampleFormat): TAVSampleFormat;
+ cdecl; external av__util;
+
+(**
+ * Get the planar alternative form of the given sample format.
+ *
+ * If the passed sample_fmt is already in planar format, the format returned is
+ * the same as the input.
+ *
+ * @return the planar alternative form of the given sample format or
+ AV_SAMPLE_FMT_NONE on error.
+ *)
+function av_get_planar_sample_fmt(sample_fmt: TAVSampleFormat): TAVSampleFormat;
+ cdecl; external av__util;
+
+(**
* Generate a string corresponding to the sample format with
* sample_fmt, or a header if sample_fmt is negative.
*
@@ -89,7 +132,7 @@ function av_get_sample_fmt_string(buf: PAnsiChar; buf_size: cint; sample_fmt: TA
* @deprecated Use av_get_bytes_per_sample() instead.
*)
function av_get_bits_per_sample_fmt(sample_fmt: TAVSampleFormat): cint; deprecated;
- cdecl; external av__util;
+ cdecl; external av__util; deprecated;
{$ENDIF}
(**
@@ -122,6 +165,7 @@ function av_sample_fmt_is_planar(sample_fmt: TAVSampleFormat): cint;
* @param nb_channels the number of channels
* @param nb_samples the number of samples in a single channel
* @param sample_fmt the sample format
+ * @param align buffer size alignment (0 = default, 1 = no alignment)
* @return required buffer size, or negative error code on failure
*)
function av_samples_get_buffer_size(linesize: Pcint; nb_channels: cint; nb_samples: cint;
@@ -140,17 +184,21 @@ function av_samples_get_buffer_size(linesize: Pcint; nb_channels: cint; nb_sampl
* buffer for planar layout, or the aligned size of the buffer for all channels
* for packed layout.
*
+ * @see enum AVSampleFormat
+ * The documentation for AVSampleFormat describes the data layout.
+ *
* @param[out] audio_data array to be filled with the pointer for each channel
- * @param[out] linesize calculated linesize
+ * @param[out] linesize calculated linesize, may be NULL
* @param buf the pointer to a buffer containing the samples
* @param nb_channels the number of channels
* @param nb_samples the number of samples in a single channel
* @param sample_fmt the sample format
- * @param align buffer size alignment (1 = no alignment required)
+ * @param align buffer size alignment (0 = default, 1 = no alignment)
* @return 0 on success or a negative error code on failure
*)
function av_samples_fill_arrays(audio_data: pointer; linesize: Pcint;
- buf: Pcuint8; nb_channels: cint; nb_samples: cint;
+ buf: Pcuint8;
+ nb_channels: cint; nb_samples: cint;
sample_fmt: TAVSampleFormat; align: cint): cint;
cdecl; external av__util;
@@ -159,11 +207,14 @@ function av_samples_fill_arrays(audio_data: pointer; linesize: Pcint;
* linesize accordingly.
* The allocated samples buffer can be freed by using av_freep(&audio_data[0])
*
+ * @see enum AVSampleFormat
+ * The documentation for AVSampleFormat describes the data layout.
+ *
* @param[out] audio_data array to be filled with the pointer for each channel
- * @param[out] linesize aligned size for audio buffer(s)
+ * @param[out] linesize aligned size for audio buffer(s), may be NULL
* @param nb_channels number of audio channels
* @param nb_samples number of samples per channel
- * @param align buffer size alignment (1 = no alignment required)
+ * @param align buffer size alignment (0 = default, 1 = no alignment)
* @return 0 on success or a negative error code on failure
* @see av_samples_fill_arrays()
*)
@@ -171,3 +222,32 @@ function av_samples_alloc(audio_data: pointer; linesize: Pcint;
nb_channels: cint; nb_samples: cint;
sample_fmt: TAVSampleFormat; align: cint): cint;
cdecl; external av__util;
+
+(**
+ * Copy samples from src to dst.
+ *
+ * @param dst destination array of pointers to data planes
+ * @param src source array of pointers to data planes
+ * @param dst_offset offset in samples at which the data will be written to dst
+ * @param src_offset offset in samples at which the data will be read from src
+ * @param nb_samples number of samples to be copied
+ * @param nb_channels number of audio channels
+ * @param sample_fmt audio sample format
+ *)
+function av_samples_copy(var dst: Pcuint8; src: {const} Pcuint8; dst_offset: cint;
+ src_offset: cint; nb_samples: cint; nb_channels: cint;
+ sample_fmt: TAVSampleFormat): cint;
+ cdecl; external av__util;
+
+(**
+ * Fill an audio buffer with silence.
+ *
+ * @param audio_data array of pointers to data planes
+ * @param offset offset in samples at which to start filling
+ * @param nb_samples number of samples to fill
+ * @param nb_channels number of audio channels
+ * @param sample_fmt audio sample format
+ *)
+function av_samples_set_silence(var audio_data: Pcuint8; offset: cint; nb_samples: cint;
+ nb_channels: cint; sample_fmt: TAVSampleFormat): cint;
+ cdecl; external av__util;