void swap_phontab (const char *infile, const char *outfile) { FILE *in, *out; char buf_4[4]; int i, n_phoneme_tables; in = fopen (infile, "rb"); if (in == NULL) { fprintf (stderr, "Unable to read from file %s\n", infile); exit (1); } out = fopen (outfile, "wb"); if (out == NULL) { fprintf (stderr, "Unable to open file %s for writing\n", outfile); exit (1); } fread (buf_4, 4, 1, in); fwrite (buf_4, 4, 1, out); n_phoneme_tables = buf_4[0]; for (i = 0; i < n_phoneme_tables; i++) { int n_phonemes, j; char tab_name[N_PHONEME_TAB_NAME]; fread (buf_4, 4, 1, in); fwrite (buf_4, 4, 1, out); n_phonemes = buf_4[0]; fread (tab_name, N_PHONEME_TAB_NAME, 1, in); fwrite (tab_name, N_PHONEME_TAB_NAME, 1, out); for (j = 0; j < n_phonemes; j++) { PHONEME_TAB table; fread (&table, sizeof (PHONEME_TAB), 1, in); table.mnemonic = SWAP_UINT (table.mnemonic); table.phflags = SWAP_UINT (table.phflags); table.std_length = SWAP_USHORT (table.std_length); table.spect = SWAP_USHORT (table.spect); table.before = SWAP_USHORT (table.before); table.after = SWAP_USHORT (table.after); fwrite (&table, sizeof (PHONEME_TAB), 1, out); } } fclose (in); fclose (out); }
/* * _gst_vaapi_image_set_image: * @image: a #GstVaapiImage * @va_image: a VA image * * Initializes #GstVaapiImage with a foreign VA image. This function * will try to "linearize" the VA image. i.e. making sure that the VA * image offsets into the data buffer are in increasing order with the * number of planes available in the image. * * This is an internal function used by gst_vaapi_image_new_with_image(). * * Return value: %TRUE on success */ gboolean _gst_vaapi_image_set_image(GstVaapiImage *image, const VAImage *va_image) { GstVaapiImagePrivate * const priv = image->priv; GstVaapiImageFormat format; VAImage alt_va_image; const VAImageFormat *alt_va_format; if (!va_image) return FALSE; format = gst_vaapi_image_format(&va_image->format); if (!format) return FALSE; priv->create_image = FALSE; priv->internal_image = *va_image; priv->internal_format = format; priv->is_linear = vaapi_image_is_linear(va_image); priv->image = *va_image; priv->format = format; priv->width = va_image->width; priv->height = va_image->height; /* Try to linearize image */ if (!priv->is_linear) { switch (format) { case GST_VAAPI_IMAGE_I420: format = GST_VAAPI_IMAGE_YV12; break; case GST_VAAPI_IMAGE_YV12: format = GST_VAAPI_IMAGE_I420; break; default: format = 0; break; } if (format && (alt_va_format = gst_vaapi_image_format_get_va_format(format))) { alt_va_image = *va_image; alt_va_image.format = *alt_va_format; SWAP_UINT(alt_va_image.offsets[1], alt_va_image.offsets[2]); SWAP_UINT(alt_va_image.pitches[1], alt_va_image.pitches[2]); if (vaapi_image_is_linear(&alt_va_image)) { priv->image = alt_va_image; priv->format = format; priv->is_linear = TRUE; GST_DEBUG("linearized image to %" GST_FOURCC_FORMAT " format", GST_FOURCC_ARGS(format)); } } } return TRUE; }
static gboolean gst_vaapi_image_create(GstVaapiImage *image) { GstVaapiImagePrivate * const priv = image->priv; GstVaapiImageFormat format = priv->format; const VAImageFormat *va_format; VAImageID image_id; if (!priv->create_image) return (priv->image.image_id != VA_INVALID_ID && priv->image.buf != VA_INVALID_ID); if (!_gst_vaapi_image_create(image, format)) { switch (format) { case GST_VAAPI_IMAGE_I420: format = GST_VAAPI_IMAGE_YV12; break; case GST_VAAPI_IMAGE_YV12: format = GST_VAAPI_IMAGE_I420; break; default: format = 0; break; } if (!format || !_gst_vaapi_image_create(image, format)) return FALSE; } priv->image = priv->internal_image; image_id = priv->image.image_id; if (priv->format != priv->internal_format) { switch (priv->format) { case GST_VAAPI_IMAGE_YV12: case GST_VAAPI_IMAGE_I420: va_format = gst_vaapi_image_format_get_va_format(priv->format); if (!va_format) return FALSE; priv->image.format = *va_format; SWAP_UINT(priv->image.offsets[1], priv->image.offsets[2]); SWAP_UINT(priv->image.pitches[1], priv->image.pitches[2]); break; default: break; } } priv->is_linear = vaapi_image_is_linear(&priv->image); GST_DEBUG("image %" GST_VAAPI_ID_FORMAT, GST_VAAPI_ID_ARGS(image_id)); GST_VAAPI_OBJECT_ID(image) = image_id; return TRUE; }
void swap_phontab (const char *infile, const char *outfile) { //======================================================== FILE *in, *out; char buf_8[8]; int i, n_phoneme_tables; in = fopen (infile, "rb"); if (in == NULL) { fprintf (stderr, "Unable to read from file %s\n", infile); exit (1); } out = fopen (outfile, "wb"); if (out == NULL) { fprintf (stderr, "Unable to open file %s for writing\n", outfile); exit (1); } xread = fread (buf_8, 4, 1, in); fwrite (buf_8, 4, 1, out); n_phoneme_tables = buf_8[0]; for (i = 0; i < n_phoneme_tables; i++) { int n_phonemes, j; char tab_name[N_PHONEME_TAB_NAME]; xread = fread (buf_8, 8, 1, in); fwrite (buf_8, 8, 1, out); n_phonemes = buf_8[0]; xread = fread (tab_name, N_PHONEME_TAB_NAME, 1, in); fwrite (tab_name, N_PHONEME_TAB_NAME, 1, out); for (j = 0; j < n_phonemes; j++) { PHONEME_TAB table; xread = fread (&table, sizeof (PHONEME_TAB), 1, in); table.mnemonic = SWAP_UINT (table.mnemonic); table.phflags = SWAP_UINT (table.phflags); table.program = SWAP_USHORT (table.program); fwrite (&table, sizeof (PHONEME_TAB), 1, out); } } fclose (in); fclose (out); } // end of swap_phontab
void swap_phonindex (const char *infile, const char *outfile) { FILE *in, *out; unsigned int val; in = fopen (infile, "rb"); if (in == NULL) { fprintf (stderr, "Unable to read from file %s\n", infile); exit (1); } out = fopen (outfile, "wb"); if (out == NULL) { fprintf (stderr, "Unable to open file %s for writing\n", outfile); exit (1); } while (! feof (in)) { size_t n; n = fread (&val, 4, 1, in); if (n != 1) break; val = SWAP_UINT (val); fwrite (&val, 4, 1, out); } fclose (in); fclose (out); }