コード例 #1
0
int y4m_read_frame(int fd, const y4m_stream_info_t *si, 
		   y4m_frame_info_t *fi, uint8_t * const *frame)
{
  int err;
  
  /* Read frame header */
  if ((err = y4m_read_frame_header(fd, si, fi)) != Y4M_OK) return err;
  /* Read date */
  return y4m_read_frame_data(fd, si, fi, frame);
}
コード例 #2
0
ファイル: ysSource.C プロジェクト: AquaSoftGmbH/mjpeg
int ysSource::read_frame_data(int fdin, y4m_frame_info_t *frameinfo,
                              uint8_t **frame)
{
  switch (_fake_progressive) {
  case FAKE_NO_FAKE:
    return y4m_read_frame_data(fdin, _stream.streaminfo(), frameinfo, frame);
  case FAKE_TOP_ONLY:
    return y4m_read_fields_data(fdin, _real_stream.streaminfo(), frameinfo,
                                frame, _fake_field);
  case FAKE_BOT_ONLY:
    return y4m_read_fields_data(fdin, _real_stream.streaminfo(), frameinfo,
                                _fake_field, frame);
  }
  return -1;  /*????? */
}
コード例 #3
0
ファイル: ysSource.C プロジェクト: AquaSoftGmbH/mjpeg
// Should probably just remove this...
int ysSource::read_frame_or_fields(int fdin, y4m_frame_info_t *frameinfo,
                                   uint8_t **frame,
                                   uint8_t **upper, uint8_t **lower)
{
  int err;
  err = y4m_read_frame_header(fdin, _stream.streaminfo(), frameinfo);
  if (err != Y4M_OK) return err;

  mjpeg_info("F-or-F:  %d  %d",
             y4m_fi_get_temporal(frameinfo),
             y4m_fi_get_spatial(frameinfo));

  /* XXXXXX what about ip/pi/420 issues? XXXXXXX */
  int sampling = y4m_fi_get_temporal(frameinfo);
  if (sampling == Y4M_SAMPLING_PROGRESSIVE) 
    return y4m_read_frame_data(fdin, _stream.streaminfo(), frameinfo, frame);
  else /* == Y4M_SAMPLING_INTERLACED */
    return y4m_read_fields_data(fdin, _stream.streaminfo(), frameinfo,
                                upper, lower);
}