aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/internal.h
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2011-12-18 13:20:15 -0500
committerJustin Ruggles <justin.ruggles@gmail.com>2012-01-15 21:24:17 -0500
commitb2c75b6e6320b1a399d76913f9d98c56f386f98b (patch)
tree72a0e973e1069acf8e9f84756742a116b430c4d9 /libavcodec/internal.h
parent5ee5fa021f32e0506bed6ebd183c807d5162bc72 (diff)
downloadffmpeg-b2c75b6e6320b1a399d76913f9d98c56f386f98b.tar.gz
avcodec: Add avcodec_encode_audio2() as replacement for avcodec_encode_audio()
This allows audio encoders to optionally take an AVFrame as input and write encoded output to an AVPacket. This also adds AVCodec.encode2() which will also be usable by video and subtitle encoders once support is implemented in the public functions.
Diffstat (limited to 'libavcodec/internal.h')
-rw-r--r--libavcodec/internal.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index 1c2d0daaef..441430e41c 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -61,6 +61,14 @@ typedef struct AVCodecInternal {
* should be freed from the original context only.
*/
int is_copy;
+
+#if FF_API_OLD_DECODE_AUDIO
+ /**
+ * Internal sample count used by avcodec_encode_audio() to fabricate pts.
+ * Can be removed along with avcodec_encode_audio().
+ */
+ int sample_count;
+#endif
} AVCodecInternal;
struct AVCodecDefault {
@@ -101,4 +109,21 @@ int avpriv_unlock_avformat(void);
*/
#define FF_MAX_EXTRADATA_SIZE ((1 << 28) - FF_INPUT_BUFFER_PADDING_SIZE)
+/**
+ * Check AVPacket size and/or allocate data.
+ *
+ * Encoders supporting AVCodec.encode2() can use this as a convenience to
+ * ensure the output packet data is large enough, whether provided by the user
+ * or allocated in this function.
+ *
+ * @param avpkt the AVPacket
+ * If avpkt->data is already set, avpkt->size is checked
+ * to ensure it is large enough.
+ * If avpkt->data is NULL, a new buffer is allocated.
+ * All other AVPacket fields will be reset with av_init_packet().
+ * @param size the minimum required packet size
+ * @return 0 on success, negative error code on failure
+ */
+int ff_alloc_packet(AVPacket *avpkt, int size);
+
#endif /* AVCODEC_INTERNAL_H */