Mercurial > mplayer.hg
view libmpdemux/stream_null.c @ 16829:c1aabebbe2e7
honor decoder's/filter's decision to remove frames when using -noskip.
this may go against the original intention of the vf layer, but it's
how all the filters that drop frames have been written to work, so
it's now the de-facto standard.
without this patch, -noskip will result in tons of duplicate frames
(either soft or hard duplicates) and a/v desync whenever decimation,
ivtc, etc. is used. even with this patch -noskip is still a bad idea
for most of these purposes, but it will work reliably with filmdint,
framestep, and some other filters with fixed in:out ratios as long as
the right -ofps value is used. without this patch, there is no hope of
-noskip working with frame-dropping filters.
(this patch was previously committed erroneously as part of another
change, then reversed. it is now being committed again.)
author | rfelker |
---|---|
date | Sun, 23 Oct 2005 07:37:55 +0000 |
parents | 233802490b0e |
children |
line wrap: on
line source
#include "config.h" #include <stdlib.h> #include <string.h> #include "stream.h" #include "demuxer.h" #ifdef USE_TV extern char* tv_param_channel; #endif static int open_s(stream_t *stream,int mode, void* opts, int* file_format) { stream->type = STREAMTYPE_DUMMY; if(strncmp("mf://",stream->url,5) == 0) { *file_format = DEMUXER_TYPE_MF; } #ifdef USE_TV else if (strncmp("tv://",stream->url,5) == 0) { *file_format = DEMUXER_TYPE_TV; if(stream->url[5] != '\0') tv_param_channel = strdup(stream->url + 5); } #endif return 1; } stream_info_t stream_info_null = { "Null stream", "null", "Albeu", "", open_s, { #ifdef USE_TV "tv", #endif "mf", "null", NULL }, NULL, 0 // Urls are an option string };