1
mirror of https://github.com/mpv-player/mpv synced 2024-09-12 23:45:53 +02:00

vd_mpegpes added

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5477 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
arpi 2002-04-03 18:22:31 +00:00
parent 3055e6d514
commit 85ee329a2e
3 changed files with 53 additions and 1 deletions

View File

@ -4,7 +4,7 @@ include ../config.mak
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

View File

@ -46,6 +46,7 @@ extern vd_functions_t mpcodecs_vd_ijpg;
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 @@ vd_functions_t* mpcodecs_vd_drivers[] = {
#ifdef HAVE_ZLIB
&mpcodecs_vd_zlib,
#endif
&mpcodecs_vd_mpegpes,
NULL
};

50
libmpcodecs/vd_mpegpes.c Normal file
View File

@ -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;
}