Mercurial > mplayer.hg
view libmpcodecs/vd_mpegpes.c @ 15978:c8dc500e078e
memcpy and memmove both copy memory, but when using memcpy the source and destination must not overlap, but here, they did overlap.
Committed with the kind blessing of Richard, patch by uau
author | gpoirier |
---|---|
date | Fri, 15 Jul 2005 22:09:30 +0000 |
parents | baac3cd44794 |
children | 9dbe188e65ad |
line wrap: on
line source
#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", "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; packet.timestamp=sh->timer*90000.0; packet.id=0x1E0; //+sh_video->ds->id; mpi->planes[0]=(uint8_t*)(&packet); return mpi; }