Example #1
0
static int y4m_read_stream_header_line_cb(y4m_cb_reader_t * fd, y4m_stream_info_t *i,char *line,int n)
{
    int err;
    
    /* start with a clean slate */
    y4m_clear_stream_info(i);
    /* read the header line */
    for (; n < Y4M_LINE_MAX; n++) {
        if (y4m_read_cb(fd, line+n, 1)) 
            return Y4M_ERR_SYSTEM;
        if (line[n] == '\n') {
            line[n] = '\0';           /* Replace linefeed by end of string */
            break;
        }
    }
    /* look for keyword in header */
    if (strncmp(line, Y4M_MAGIC, strlen(Y4M_MAGIC)))
        return Y4M_ERR_MAGIC;
    if (n >= Y4M_LINE_MAX)
        return Y4M_ERR_HEADER;
    if ((err = y4m_parse_stream_tags(line + strlen(Y4M_MAGIC), i)) != Y4M_OK)
        return err;

    return Y4M_OK;
}
Example #2
0
int y4m_read_stream_header(int fd, y4m_stream_info_t *i)
{
   char line[Y4M_LINE_MAX];
   char *p;
   int n;
   int err;

  /* start with a clean slate */
  y4m_clear_stream_info(i);
   /* read the header line */
   for (n = 0, p = line; n < Y4M_LINE_MAX; n++, p++) {
     if (read(fd, p, 1) < 1) 
       return Y4M_ERR_SYSTEM;
     if (*p == '\n') {
       *p = '\0';           /* Replace linefeed by end of string */
       break;
     }
   }
   if (n >= Y4M_LINE_MAX)
      return Y4M_ERR_HEADER;
   /* look for keyword in header */
   if (strncmp(line, Y4M_MAGIC, strlen(Y4M_MAGIC)))
    return Y4M_ERR_MAGIC;
   if ((err = y4m_parse_stream_tags(line + strlen(Y4M_MAGIC), i)) != Y4M_OK)
     return err;

   return Y4M_OK;
}
Example #3
0
void y4m_init_stream_info(y4m_stream_info_t *info)
{
  if (info == NULL) return;
  /* init substructures */
  y4m_init_xtag_list(&(info->x_tags));
  /* set defaults */
  y4m_clear_stream_info(info);
}