summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authormichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-04-18 13:18:59 +0000
committermichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-04-18 13:18:59 +0000
commit40a073bea4d4ab8ebdd1240850ad1eefc5835f37 (patch)
tree97f49180d6000494304265ef7d83c252ff6d59a4 /libmpcodecs
parentcb961f66005023513f1914349a9a003d1b0fa86e (diff)
downloadmpv-40a073bea4d4ab8ebdd1240850ad1eefc5835f37.tar.bz2
mpv-40a073bea4d4ab8ebdd1240850ad1eefc5835f37.tar.xz
passing qscale_type around so the pp code can fix the mpeg2 <<1 thing
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9926 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/mp_image.h1
-rw-r--r--libmpcodecs/vd_ffmpeg.c1
-rw-r--r--libmpcodecs/vd_libmpeg2.c1
-rw-r--r--libmpcodecs/vf_pp.c2
4 files changed, 4 insertions, 1 deletions
diff --git a/libmpcodecs/mp_image.h b/libmpcodecs/mp_image.h
index 23d0c34852..e0ec216659 100644
--- a/libmpcodecs/mp_image.h
+++ b/libmpcodecs/mp_image.h
@@ -76,6 +76,7 @@ typedef struct mp_image_s {
char * qscale;
int qstride;
int pict_type; // 0->unknown, 1->I, 2->P, 3->B
+ int qscale_type; // 0->mpeg1/4/h263, 1->mpeg2
int num_planes;
/* these are only used by planar formats Y,U(Cb),V(Cr) */
int chroma_width;
diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c
index 864ae1f1a3..f1756f4a2a 100644
--- a/libmpcodecs/vd_ffmpeg.c
+++ b/libmpcodecs/vd_ffmpeg.c
@@ -662,6 +662,7 @@ static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags){
mpi->qscale =pic->qscale_table;
mpi->qstride=pic->qstride;
mpi->pict_type=pic->pict_type;
+ mpi->qscale_type= pic->qscale_type;
return mpi;
}
diff --git a/libmpcodecs/vd_libmpeg2.c b/libmpcodecs/vd_libmpeg2.c
index 9bd1486251..2decf8324b 100644
--- a/libmpcodecs/vd_libmpeg2.c
+++ b/libmpcodecs/vd_libmpeg2.c
@@ -150,6 +150,7 @@ static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags){
mpeg2dec->decoder.quant_store=mpi->qscale;
mpeg2dec->decoder.quant_stride=mpi->qstride;
mpi->pict_type=type; // 1->I, 2->P, 3->B
+ mpi->qscale_type= 1;
#endif
if(mpi->flags&MP_IMGFLAG_DRAW_CALLBACK &&
diff --git a/libmpcodecs/vf_pp.c b/libmpcodecs/vf_pp.c
index f9b79039ea..6839e38ff6 100644
--- a/libmpcodecs/vf_pp.c
+++ b/libmpcodecs/vf_pp.c
@@ -129,7 +129,7 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){
(mpi->w+7)&(~7),mpi->h,
mpi->qscale, mpi->qstride,
vf->priv->ppMode[ vf->priv->pp ], vf->priv->context,
- mpi->pict_type);
+ mpi->pict_type | (mpi->qscale_type ? PP_PICT_TYPE_QP2 : 0));
}
return vf_next_put_image(vf,vf->priv->dmpi);
}