summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/ve_lavc.c
diff options
context:
space:
mode:
authormichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-12-04 10:49:03 +0000
committermichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-12-04 10:49:03 +0000
commitad05ae27cbf9f3b2a033ab8a0acb0507fa0b5a34 (patch)
tree4edf02a2512805e04c8b5523e57dee80d985fc2e /libmpcodecs/ve_lavc.c
parentdc871c209f9343ec864040440e5cf02dd82da8ff (diff)
downloadmpv-ad05ae27cbf9f3b2a033ab8a0acb0507fa0b5a34.tar.bz2
mpv-ad05ae27cbf9f3b2a033ab8a0acb0507fa0b5a34.tar.xz
support for lavc build 4641
no #ifdefs this time as the difference is big and iam lazy, feel free to add #ifdef LIBAVCODEC_BUILD ... git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8340 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs/ve_lavc.c')
-rw-r--r--libmpcodecs/ve_lavc.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/libmpcodecs/ve_lavc.c b/libmpcodecs/ve_lavc.c
index 767160e09d..faec8732a2 100644
--- a/libmpcodecs/ve_lavc.c
+++ b/libmpcodecs/ve_lavc.c
@@ -32,7 +32,7 @@ extern void mencoder_write_chunk(aviwrite_stream_t *s,int len,unsigned int flags
#include "libavcodec/avcodec.h"
#endif
-#if LIBAVCODEC_BUILD < 4601
+#if LIBAVCODEC_BUILD < 4641
#error your version of libavcodec is too old, get a newer one, and dont send a bugreport, THIS IS NO BUG
#endif
@@ -181,6 +181,7 @@ struct config lavcopts_conf[]={
struct vf_priv_s {
aviwrite_stream_t* mux;
AVCodecContext *context;
+ AVVideoFrame *pic;
AVCodec *codec;
FILE *stats_file;
};
@@ -406,7 +407,7 @@ static int config(struct vf_instance_s* vf,
{
printf("Using constant qscale = %d (VBR)\n", lavc_param_vqscale);
lavc_venc_context->flags |= CODEC_FLAG_QSCALE;
- lavc_venc_context->quality = lavc_param_vqscale;
+ vf->priv->pic->quality = lavc_param_vqscale;
}
if (avcodec_open(lavc_venc_context, vf->priv->codec) != 0) {
@@ -459,19 +460,19 @@ static int query_format(struct vf_instance_s* vf, unsigned int fmt){
static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){
int out_size;
- AVPicture lavc_venc_picture;
+ AVVideoFrame *pic= vf->priv->pic;
- lavc_venc_picture.data[0]=mpi->planes[0];
- lavc_venc_picture.data[1]=mpi->planes[1];
- lavc_venc_picture.data[2]=mpi->planes[2];
- lavc_venc_picture.linesize[0]=mpi->stride[0];
- lavc_venc_picture.linesize[1]=mpi->stride[1];
- lavc_venc_picture.linesize[2]=mpi->stride[2];
+ pic->data[0]=mpi->planes[0];
+ pic->data[1]=mpi->planes[1];
+ pic->data[2]=mpi->planes[2];
+ pic->linesize[0]=mpi->stride[0];
+ pic->linesize[1]=mpi->stride[1];
+ pic->linesize[2]=mpi->stride[2];
out_size = avcodec_encode_video(lavc_venc_context, mux_v->buffer, mux_v->buffer_size,
- &lavc_venc_picture);
+ pic);
- mencoder_write_chunk(mux_v,out_size,lavc_venc_context->key_frame?0x10:0);
+ mencoder_write_chunk(mux_v,out_size,lavc_venc_context->coded_picture->key_frame?0x10:0);
#if LIBAVCODEC_BUILD >= 4620
/* store stats if there are any */
@@ -574,6 +575,7 @@ static int vf_open(vf_instance_t *vf, char* args){
return 0;
}
+ vf->priv->pic = avcodec_alloc_picture();
#if LIBAVCODEC_BUILD >= 4624
vf->priv->context = avcodec_alloc_context();
#else