Пример #1
0
int
main (int argc, char * argv[])
{
  OGGZ * reader, * writer;
  unsigned char data_buf[DATA_BUF_LEN];
  long n;

  INFO ("Testing override of IO seeking");

  writer = oggz_new (OGGZ_WRITE);
  if (writer == NULL)
    FAIL("newly created OGGZ writer == NULL");

  serialno = oggz_serialno_new (writer);

  if (oggz_write_set_hungry_callback (writer, hungry, 1, NULL) == -1)
    FAIL("Could not set hungry callback");

  reader = oggz_new (OGGZ_READ);
  if (reader == NULL)
    FAIL("newly created OGGZ reader == NULL");

  oggz_io_set_read (reader, my_io_read, data_buf);
  oggz_io_set_seek (reader, my_io_seek, data_buf);
  oggz_io_set_tell (reader, my_io_tell, data_buf);

  oggz_set_read_callback (reader, -1, read_packet, NULL);

  n = oggz_write_output (writer, data_buf, DATA_BUF_LEN);

  if (n >= DATA_BUF_LEN)
    FAIL("Too much data generated by writer");

  offset_end = n;

  oggz_read (reader, n);

  if (read_called == 0)
    FAIL("Read method ignored");

  if (oggz_seek (reader, 0, SEEK_SET) != 0)
    FAIL("Seek failure");

  read_called = 0;

  oggz_read (reader, n);

  if (read_called == 0)
    FAIL("Read method ignored after seeking");

  if (oggz_close (reader) != 0)
    FAIL("Could not close OGGZ reader");

  if (oggz_close (writer) != 0)
    FAIL("Could not close OGGZ writer");

  exit (0);
}
Пример #2
0
int
main (int argc, char * argv[])
{
  OGGZ * reader, * writer;
  unsigned char buf[READ_SIZE];
  long n, remaining, err;

  INFO ("Testing ability to pause while reading (OGGZ_STOP_OK)");

  writer = oggz_new (OGGZ_WRITE);
  if (writer == NULL)
    FAIL("newly created OGGZ writer == NULL");

  serialno = oggz_serialno_new (writer);

  if (oggz_write_set_hungry_callback (writer, hungry, 1, NULL) == -1)
    FAIL("Could not set hungry callback");

  reader = oggz_new (OGGZ_READ);
  if (reader == NULL)
    FAIL("newly created OGGZ reader == NULL");

  oggz_set_read_callback (reader, -1, read_packet, NULL);

  while ((remaining = oggz_write_output (writer, buf, READ_SIZE)) > 0) {
    n = oggz_read_input (reader, buf, remaining);

    if (n == OGGZ_ERR_READ_STOP_OK) {
      INFO ("+ Interrupted read detected");
    } else {
      remaining -= n;

      err = oggz_read_input (reader, buf+n, remaining);
      if (err == OGGZ_ERR_READ_STOP_OK) {
	INFO ("+ Interrupted read detected");
      } else {
	FAIL ("Interrupted read not reported");
      }
    }

    n = oggz_read_input (reader, buf+n, remaining);
    remaining -= n;
  }

  if (oggz_close (reader) != 0)
    FAIL("Could not close OGGZ reader");

  if (oggz_close (writer) != 0)
    FAIL("Could not close OGGZ writer");

  exit (0);
}
Пример #3
0
void ogv_demuxer_init() {
    appState = STATE_BEGIN;
	bufferQueue = bq_init();
	oggz = oggz_new(OGGZ_READ | OGGZ_AUTO);
	oggz_set_read_callback(oggz, -1, readPacketCallback, NULL);
	oggz_io_set_read(oggz, readCallback, bufferQueue);
	oggz_io_set_seek(oggz, seekCallback, bufferQueue);
	oggz_io_set_tell(oggz, tellCallback, bufferQueue);
    skeleton = oggskel_new();
}
Пример #4
0
OGGZ *
oggz_open_stdio (FILE * file, int flags)
{
  OGGZ * oggz = NULL;

  if (oggz_flags_disabled (flags)) return NULL;

  oggz = oggz_new (flags);
  oggz->file = file;

  return oggz;
}
Пример #5
0
int
main (int argc, char ** argv)
{
  FILE * f;
  OGGZ * oggz;
  long n;
  ogg_int64_t units;

  if (argc < 2) {
    printf ("usage: %s filename\n", argv[0]);
  }

  if ((f = fopen ((char *)argv[1], "rb")) == NULL) {
    printf ("unable to open file %s\n", argv[1]);
    exit (1);
  }

  if ((oggz = oggz_new (OGGZ_READ | OGGZ_AUTO)) == NULL) {
    printf ("unable to create oggz\n");
    exit (1);
  }

  oggz_io_set_read (oggz, my_io_read, f);
  oggz_io_set_seek (oggz, my_io_seek, f);
  oggz_io_set_tell (oggz, my_io_tell, f);

  oggz_set_read_callback (oggz, -1, read_packet, NULL);

  while ((n = oggz_read (oggz, 1024)) > 0);

  units = oggz_tell_units (oggz);
  printf ("Total length: %" PRId64 " ms\n", units);

  oggz_seek_units (oggz, units/2, SEEK_SET);

  printf ("seeked to byte offset %" PRId64 "\n", oggz_tell (oggz));

  while ((n = oggz_read (oggz, 1024)) > 0);

  oggz_close (oggz);

  exit (0);
}
Пример #6
0
OGGZ *
oggz_open (char * filename, int flags)
{
  OGGZ * oggz = NULL;
  FILE * file = NULL;

  if (oggz_flags_disabled (flags)) return NULL;

  if (flags & OGGZ_WRITE) {
    file = fopen (filename, "wb");
  } else {
    file = fopen (filename, "rb");
  }
  if (file == NULL) return NULL;

  oggz = oggz_new (flags);
  oggz->file = file;

  return oggz;
}
Пример #7
0
static OMX_ERRORTYPE
alloc_oggz (oggdmux_prc_t * ap_prc)
{
  assert (ap_prc);
  assert (!ap_prc->p_oggz_);

  /* Allocate the oggz object */
  tiz_check_null_ret_oom ((ap_prc->p_oggz_ = oggz_new (OGGZ_READ)));

  /* Allocate a table */
  tiz_check_null_ret_oom ((ap_prc->p_tracks_ = oggz_table_new ()));

  /* Set the io callbacks */
  on_oggz_error_ret_omx_oom (
    oggz_io_set_read (ap_prc->p_oggz_, og_io_read, ap_prc));
  on_oggz_error_ret_omx_oom (
    oggz_io_set_seek (ap_prc->p_oggz_, og_io_seek, ap_prc));
  on_oggz_error_ret_omx_oom (
    oggz_io_set_tell (ap_prc->p_oggz_, og_io_tell, ap_prc));

  return OMX_ErrorNone;
}
int
main (int argc, char * argv[])
{
  OGGZ * oggz;
  unsigned char buf[1];
  long n;

  oggz = oggz_new (OGGZ_WRITE);
  if (oggz == NULL)
    FAIL("newly created OGGZ == NULL");

  serialno = oggz_serialno_new (oggz);

  if (oggz_write_set_hungry_callback (oggz, hungry, 1, NULL) == -1)
    FAIL("Could not set hungry callback");

  while ((n = oggz_write_output (oggz, buf, 1)) > 0);

  if (oggz_close (oggz) != 0)
    FAIL("Could not close OGGZ");

  exit (0);
}