aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/hevc.h
diff options
context:
space:
mode:
authorTim Walker <tdskywalker@gmail.com>2014-03-03 14:53:42 +0000
committerReinhard Tartler <siretart@tauware.de>2014-03-09 16:58:26 -0400
commiteaa79b79b25ac0ceaf44fe575a3ae724b87285b2 (patch)
tree68e0a8f7a4a721d862a54a671dead8b50908e4c8 /libavformat/hevc.h
parentc761379825ff0bf9dd191e244c4b2f7697fb2b3c (diff)
downloadffmpeg-eaa79b79b25ac0ceaf44fe575a3ae724b87285b2.tar.gz
movenc: enable Annex B to MP4 conversion for HEVC tracks.
(cherry picked from commit b6c61fb83e876d404ac3b0b3657ebfcafdcd1926)
Diffstat (limited to 'libavformat/hevc.h')
-rw-r--r--libavformat/hevc.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/libavformat/hevc.h b/libavformat/hevc.h
index 82525ac84b..f394342028 100644
--- a/libavformat/hevc.h
+++ b/libavformat/hevc.h
@@ -30,6 +30,54 @@
#include "avio.h"
/**
+ * Writes Annex B formatted HEVC NAL units to the provided AVIOContext.
+ *
+ * The NAL units are converted to an MP4-compatible format (start code prefixes
+ * are replaced by 4-byte size fields, as per ISO/IEC 14496-15).
+ *
+ * If filter_ps is non-zero, any HEVC parameter sets found in the input will be
+ * discarded, and *ps_count will be set to the number of discarded PS NAL units.
+ *
+ * @param pb address of the AVIOContext where the data shall be written
+ * @param buf_in address of the buffer holding the input data
+ * @param size size (in bytes) of the input buffer
+ * @param filter_ps whether to write parameter set NAL units to the output (0)
+ * or to discard them (non-zero)
+ * @param ps_count address of the variable where the number of discarded
+ * parameter set NAL units shall be written, may be NULL
+ * @return the amount (in bytes) of data written in case of success, a negative
+ * value corresponding to an AVERROR code in case of failure
+ */
+int ff_hevc_annexb2mp4(AVIOContext *pb, const uint8_t *buf_in,
+ int size, int filter_ps, int *ps_count);
+
+/**
+ * Writes Annex B formatted HEVC NAL units to a data buffer.
+ *
+ * The NAL units are converted to an MP4-compatible format (start code prefixes
+ * are replaced by 4-byte size fields, as per ISO/IEC 14496-15).
+ *
+ * If filter_ps is non-zero, any HEVC parameter sets found in the input will be
+ * discarded, and *ps_count will be set to the number of discarded PS NAL units.
+ *
+ * On output, *size holds the size (in bytes) of the output data buffer.
+ *
+ * @param buf_in address of the buffer holding the input data
+ * @param size address of the variable holding the size (in bytes) of the input
+ * buffer (on input) and of the output buffer (on output)
+ * @param buf_out address of the variable holding the address of the output
+ * buffer
+ * @param filter_ps whether to write parameter set NAL units to the output (0)
+ * or to discard them (non-zero)
+ * @param ps_count address of the variable where the number of discarded
+ * parameter set NAL units shall be written, may be NULL
+ * @return 0 in case of success, a negative value corresponding to an AVERROR
+ * code in case of failure
+ */
+int ff_hevc_annexb2mp4_buf(const uint8_t *buf_in, uint8_t **buf_out,
+ int *size, int filter_ps, int *ps_count);
+
+/**
* Writes HEVC extradata (parameter sets, declarative SEI NAL units) to the
* provided AVIOContext.
*