summaryrefslogtreecommitdiffstats
path: root/dec_video.c
diff options
context:
space:
mode:
Diffstat (limited to 'dec_video.c')
-rw-r--r--dec_video.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/dec_video.c b/dec_video.c
index 39c4925988..0898b5d6d8 100644
--- a/dec_video.c
+++ b/dec_video.c
@@ -532,8 +532,21 @@ else
}
#endif
case VFM_MPEG:
- mpeg2_decode_data(video_out, start, start+in_size,drop_frame);
- if(!drop_frame) blit_frame=1;
+ if(out_fmt==IMGFMT_MPEGPES){
+ // hardware decoding:
+ static vo_mpegpes_t packet;
+ mpeg2_decode_data(video_out, start, start+in_size,3); // parse headers
+ packet.data=start;
+ packet.size=in_size-4;
+ packet.timestamp=sh_video->timer*90000.0;
+ packet.id=0x1E0; //+sh_video->ds->id;
+ planes[0]=&packet;
+ blit_frame=2;
+ } else {
+ // software decoding:
+ mpeg2_decode_data(video_out, start, start+in_size,drop_frame); // decode
+ if(!drop_frame) blit_frame=1;
+ }
break;
case VFM_RAW:
planes[0]=start;