aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2002-09-19 09:13:43 +0000
committerMichael Niedermayer <michaelni@gmx.at>2002-09-19 09:13:43 +0000
commita949d72e0e4d0c42991b96374291092ac10c29f2 (patch)
tree067931817a2182e701f2642ca15a81a72fafc2b4
parent947ac25a4432192ff5dff5288f2e28334333e59a (diff)
downloadffmpeg-a949d72e0e4d0c42991b96374291092ac10c29f2.tar.gz
avcodec_alloc_context()
Originally committed as revision 954 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/avcodec.h11
-rw-r--r--libavcodec/utils.c21
2 files changed, 28 insertions, 4 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index acedebaf34..46cfb4fab9 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -5,8 +5,8 @@
#define LIBAVCODEC_VERSION_INT 0x000406
#define LIBAVCODEC_VERSION "0.4.6"
-#define LIBAVCODEC_BUILD 4623
-#define LIBAVCODEC_BUILD_STR "4623"
+#define LIBAVCODEC_BUILD 4624
+#define LIBAVCODEC_BUILD_STR "4624"
enum CodecID {
CODEC_ID_NONE,
@@ -100,8 +100,10 @@ static const int Motion_Est_QTab[] = { ME_ZERO, ME_PHODS, ME_LOG,
#define FF_MAX_B_FRAMES 4
-/* encoding support */
-/* note not everything is supported yet */
+/* encoding support
+ these flags can be passed in AVCodecContext.flags before initing
+ Note: note not everything is supported yet
+*/
#define CODEC_FLAG_HQ 0x0001 /* high quality (non real time) encoding */
#define CODEC_FLAG_QSCALE 0x0002 /* use fixed qscale */
@@ -514,6 +516,7 @@ AVCodec *avcodec_find_decoder(enum CodecID id);
AVCodec *avcodec_find_decoder_by_name(const char *name);
void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode);
+AVCodecContext *avcodec_alloc_context();
int avcodec_open(AVCodecContext *avctx, AVCodec *codec);
int avcodec_decode_audio(AVCodecContext *avctx, INT16 *samples,
int *frame_size_ptr,
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 943614da65..1c696e7935 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -49,6 +49,27 @@ void register_avcodec(AVCodec *format)
format->next = NULL;
}
+void avcodec_get_context_defaults(AVCodecContext *s){
+ s->qmin= 2;
+ s->qmax= 31;
+ s->rc_eq= "tex^qComp";
+ s->qcompress= 0.5;
+}
+
+/**
+ * allocates a AVCodecContext and set it to defaults.
+ * this can be deallocated by simply calling free()
+ */
+AVCodecContext *avcodec_alloc_context(){
+ AVCodecContext *avctx= av_mallocz(sizeof(AVCodecContext));
+
+ if(avctx==NULL) return NULL;
+
+ avcodec_get_context_defaults(avctx);
+
+ return avctx;
+}
+
int avcodec_open(AVCodecContext *avctx, AVCodec *codec)
{
int ret;