summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/vd_libmpeg2.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-16 20:36:24 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-16 20:36:24 +0000
commitd2052443ecae17b3c534c9ca1634ccc0e6ed4528 (patch)
treebe9768572945ec0ba370d599fb50572d4b119d99 /libmpcodecs/vd_libmpeg2.c
parentcee508226e7cc925d02ea3679f7dee264f059b5b (diff)
downloadmpv-d2052443ecae17b3c534c9ca1634ccc0e6ed4528.tar.bz2
mpv-d2052443ecae17b3c534c9ca1634ccc0e6ed4528.tar.xz
mpegpes support
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5146 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs/vd_libmpeg2.c')
-rw-r--r--libmpcodecs/vd_libmpeg2.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/libmpcodecs/vd_libmpeg2.c b/libmpcodecs/vd_libmpeg2.c
index 26c72b1994..44ee2e5783 100644
--- a/libmpcodecs/vd_libmpeg2.c
+++ b/libmpcodecs/vd_libmpeg2.c
@@ -48,9 +48,23 @@ static void uninit(sh_video_t *sh){
// decode a frame
static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags){
- mp_image_t* mpi=mpcodecs_get_image(sh, MP_IMGTYPE_EXPORT, MP_IMGFLAG_DRAW_CALLBACK,
- sh->disp_w, sh->disp_h);
- mpeg2_decode_data(sh->video_out, data, data+len,flags&3); // decode
+ mp_image_t* mpi;
+ if(sh->codec->outfmt[sh->outfmtidx]==IMGFMT_MPEGPES){
+ static vo_mpegpes_t packet;
+ mpi=mpcodecs_get_image(sh, MP_IMGTYPE_EXPORT, 0,
+ sh->disp_w, sh->disp_h);
+ // hardware decoding:
+// mpeg2_decode_data(video_out, start, start+in_size,3); // parse headers
+ packet.data=data;
+ packet.size=len-4;
+ packet.timestamp=sh->timer*90000.0;
+ packet.id=0x1E0; //+sh_video->ds->id;
+ mpi->planes[0]=(uint8_t*)(&packet);
+ } else {
+ mpi=mpcodecs_get_image(sh, MP_IMGTYPE_EXPORT, MP_IMGFLAG_DRAW_CALLBACK,
+ sh->disp_w, sh->disp_h);
+ mpeg2_decode_data(sh->video_out, data, data+len,flags&3); // decode
+ }
return mpi;
}