Mercurial > mplayer.hg
view libmpdemux/muxer_rawvideo.c @ 27145:44ceb8c35dbc
r25385: Add new audio filter for encoding multi-channel audio into ac3 at runtime.
r25389: Support using unrar executable to access rar-compressed vobsub files.
r25440: Fix the expand text's format by the source.
r25455: (previously applied) typo noticed by Paul TT
r25529: Support ?(!NAME:TEXT) format for expanding string by property.
r25566: update copyright year to 2008
r25585: Add an example for dvdnav:// usage with path.
r25587: when {v|a}_o_mpegpes:card isn't specified by the user [...]
r25607: documented angle commands
r25610: Allow overriding [Script Info] parameters with -ass-force-style option.
r25639: Add heartbeat-cmd option
r25656: dvd-device can specify iso files too
r25657: dumpstream is NOT a better way to copy a dvd title
r25665: updated english manpage with protocol/extension profile loading feature
r25671: document vo.* and ao.* playback profiles
r25751: Extend heartbeat-cmd man page entry
r25752: Seems that all - should be escaped in the man page
r25762: added missing escapes
r25763: added missing "&"
author | kraymer |
---|---|
date | Mon, 30 Jun 2008 19:35:32 +0000 |
parents | 36948c17c4af |
children | d643e4643313 |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <inttypes.h> #include <unistd.h> #include "config.h" //#include "stream/stream.h" //#include "demuxer.h" //#include "stheader.h" #include "aviheader.h" #include "ms_hdr.h" #include "stream/stream.h" #include "muxer.h" static muxer_stream_t* rawvideofile_new_stream(muxer_t *muxer,int type){ muxer_stream_t* s; if (!muxer) return NULL; s=malloc(sizeof(muxer_stream_t)); memset(s,0,sizeof(muxer_stream_t)); if(!s) return NULL; // no mem!? muxer->streams[muxer->avih.dwStreams]=s; s->type=type; s->id=muxer->avih.dwStreams; s->timer=0.0; s->size=0; s->muxer=muxer; switch(type){ case MUXER_TYPE_VIDEO: s->ckid=mmioFOURCC(('0'+s->id/10),('0'+(s->id%10)),'d','c'); s->h.fccType=streamtypeVIDEO; if(!muxer->def_v) muxer->def_v=s; break; } muxer->avih.dwStreams++; return s; } static void write_rawvideo_chunk(stream_t *stream,int len,void* data){ if(len>0){ if(data){ // DATA stream_write_buffer(stream,data,len); } } } static void rawvideofile_write_chunk(muxer_stream_t *s,size_t len,unsigned int flags, double dts, double pts){ muxer_t *muxer=s->muxer; // write out the chunk: if (s->type == MUXER_TYPE_VIDEO) write_rawvideo_chunk(muxer->stream,len,s->buffer); /* unsigned char */ // if((unsigned int)len>s->h.dwSuggestedBufferSize) s->h.dwSuggestedBufferSize=len; } static void rawvideofile_write_header(muxer_t *muxer){ return; } static void rawvideofile_write_index(muxer_t *muxer){ return; } int muxer_init_muxer_rawvideo(muxer_t *muxer){ muxer->cont_new_stream = &rawvideofile_new_stream; muxer->cont_write_chunk = &rawvideofile_write_chunk; muxer->cont_write_header = &rawvideofile_write_header; muxer->cont_write_index = &rawvideofile_write_index; return 1; }