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