changeset 5476:ac09ea252466

vd_mpegpes added
author arpi
date Wed, 03 Apr 2002 18:22:31 +0000
parents 5d2aa5a4d8cb
children fc466845b9e1
files libmpcodecs/Makefile libmpcodecs/vd.c libmpcodecs/vd_mpegpes.c
diffstat 3 files changed, 53 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/libmpcodecs/Makefile	Wed Apr 03 18:15:15 2002 +0000
+++ b/libmpcodecs/Makefile	Wed Apr 03 18:22:31 2002 +0000
@@ -4,7 +4,7 @@
 LIBNAME = libmpcodecs.a
 
 AUDIO_SRCS=dec_audio.c ad.c ad_a52.c ad_acm.c ad_alaw.c ad_dk3adpcm.c ad_dshow.c ad_dvdpcm.c ad_ffmpeg.c ad_hwac3.c ad_imaadpcm.c ad_mp3.c ad_msadpcm.c ad_pcm.c ad_roqaudio.c ad_msgsm.c ad_faad.c ad_vorbis.c
-VIDEO_SRCS=dec_video.c vd.c vd_null.c vd_cinepak.c vd_qtrpza.c vd_ffmpeg.c vd_dshow.c vd_vfw.c vd_odivx.c vd_divx4.c vd_raw.c vd_xanim.c vd_msvidc.c vd_fli.c vd_qtrle.c vd_qtsmc.c vd_roqvideo.c vd_cyuv.c vd_nuv.c vd_libmpeg2.c vd_msrle.c vd_huffyuv.c vd_zlib.c
+VIDEO_SRCS=dec_video.c vd.c vd_null.c vd_cinepak.c vd_qtrpza.c vd_ffmpeg.c vd_dshow.c vd_vfw.c vd_odivx.c vd_divx4.c vd_raw.c vd_xanim.c vd_msvidc.c vd_fli.c vd_qtrle.c vd_qtsmc.c vd_roqvideo.c vd_cyuv.c vd_nuv.c vd_libmpeg2.c vd_msrle.c vd_huffyuv.c vd_zlib.c vd_mpegpes.c
 
 ifeq ($(PNG),yes)
 VIDEO_SRCS += vd_mpng.c
--- a/libmpcodecs/vd.c	Wed Apr 03 18:15:15 2002 +0000
+++ b/libmpcodecs/vd.c	Wed Apr 03 18:22:31 2002 +0000
@@ -46,6 +46,7 @@
 extern vd_functions_t mpcodecs_vd_libmpeg2;
 extern vd_functions_t mpcodecs_vd_huffyuv;
 extern vd_functions_t mpcodecs_vd_zlib;
+extern vd_functions_t mpcodecs_vd_mpegpes;
 
 vd_functions_t* mpcodecs_vd_drivers[] = {
         &mpcodecs_vd_null,
@@ -90,6 +91,7 @@
 #ifdef HAVE_ZLIB
         &mpcodecs_vd_zlib,
 #endif
+        &mpcodecs_vd_mpegpes,
 	NULL
 };
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libmpcodecs/vd_mpegpes.c	Wed Apr 03 18:22:31 2002 +0000
@@ -0,0 +1,50 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "config.h"
+#include "mp_msg.h"
+
+#include "vd_internal.h"
+
+static vd_info_t info = 
+{
+	"MPEG 1/2 Video passthrough",
+	"mpegpes",
+	VFM_MPEGPES,
+	"A'rpi",
+	"A'rpi",
+	"for hw decoders"
+};
+
+LIBVD_EXTERN(mpegpes)
+
+//#include "libmpdemux/parse_es.h"
+
+#include "libvo/video_out.h"
+
+// to set/get/query special features/parameters
+static int control(sh_video_t *sh,int cmd,void* arg,...){
+    return CONTROL_UNKNOWN;
+}
+
+// init driver
+static int init(sh_video_t *sh){
+    return mpcodecs_config_vo(sh,sh->disp_w,sh->disp_h,IMGFMT_MPEGPES);
+}
+
+// uninit driver
+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;
+    static vo_mpegpes_t packet;
+    mpi=mpcodecs_get_image(sh, MP_IMGTYPE_EXPORT, 0, sh->disp_w, sh->disp_h);
+    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);
+    return mpi;
+}