예제 #1
0
static void
droid_media_buffer_allocator_init (GstDroidMediaBufferAllocator * allocator)
{
  GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator);

  GST_DEBUG_OBJECT (alloc, "init");

  alloc->mem_type = GST_ALLOCATOR_DROID_MEDIA_BUFFER;

  alloc->mem_map = NULL;
  alloc->mem_unmap = NULL;
  alloc->mem_copy = NULL;
  alloc->mem_share = NULL;
  alloc->mem_is_span = NULL;

  droid_media_pixel_format_constants_init (&allocator->c);

  GST_OBJECT_FLAG_SET (allocator, GST_ALLOCATOR_FLAG_CUSTOM_ALLOC);
}
예제 #2
0
static void
gst_droid_media_buffer_initialize_format_map ()
{
  DroidMediaPixelFormatConstants constants;
  static gboolean initialized = FALSE;

  if (!initialized) {
    droid_media_pixel_format_constants_init (&constants);

    gst_droid_media_buffer_formats[0].hal_format =
        constants.HAL_PIXEL_FORMAT_RGBA_8888;
    gst_droid_media_buffer_formats[0].gst_format = GST_VIDEO_FORMAT_RGBA;
    gst_droid_media_buffer_formats[0].bytes_per_pixel = 4;
    gst_droid_media_buffer_formats[0].h_align = 4;
    gst_droid_media_buffer_formats[0].v_align = 1;

    gst_droid_media_buffer_formats[1].hal_format =
        constants.HAL_PIXEL_FORMAT_RGBX_8888;
    gst_droid_media_buffer_formats[1].gst_format = GST_VIDEO_FORMAT_RGBx;
    gst_droid_media_buffer_formats[1].bytes_per_pixel = 4;
    gst_droid_media_buffer_formats[1].h_align = 4;
    gst_droid_media_buffer_formats[1].v_align = 1;

    gst_droid_media_buffer_formats[2].hal_format =
        constants.HAL_PIXEL_FORMAT_RGB_888;
    gst_droid_media_buffer_formats[2].gst_format = GST_VIDEO_FORMAT_RGB;
    gst_droid_media_buffer_formats[2].bytes_per_pixel = 3;
    gst_droid_media_buffer_formats[2].h_align = 4;
    gst_droid_media_buffer_formats[2].v_align = 1;

    gst_droid_media_buffer_formats[3].hal_format =
        constants.HAL_PIXEL_FORMAT_RGB_565;
    gst_droid_media_buffer_formats[3].gst_format = GST_VIDEO_FORMAT_RGB16;
    gst_droid_media_buffer_formats[3].bytes_per_pixel = 2;
    gst_droid_media_buffer_formats[3].h_align = 4;
    gst_droid_media_buffer_formats[3].v_align = 1;

    gst_droid_media_buffer_formats[4].hal_format =
        constants.HAL_PIXEL_FORMAT_BGRA_8888;
    gst_droid_media_buffer_formats[4].gst_format = GST_VIDEO_FORMAT_BGRA;
    gst_droid_media_buffer_formats[4].bytes_per_pixel = 4;
    gst_droid_media_buffer_formats[4].h_align = 4;
    gst_droid_media_buffer_formats[4].v_align = 1;

    gst_droid_media_buffer_formats[5].hal_format =
        constants.HAL_PIXEL_FORMAT_YV12;
    gst_droid_media_buffer_formats[5].gst_format = GST_VIDEO_FORMAT_YV12;
    gst_droid_media_buffer_formats[5].bytes_per_pixel = 1;
    gst_droid_media_buffer_formats[5].h_align = 1;
    gst_droid_media_buffer_formats[5].v_align = 1;

    gst_droid_media_buffer_formats[6].hal_format =
        constants.HAL_PIXEL_FORMAT_YCbCr_422_SP;
    gst_droid_media_buffer_formats[6].gst_format = GST_VIDEO_FORMAT_NV16;
    gst_droid_media_buffer_formats[6].bytes_per_pixel = 1;
    gst_droid_media_buffer_formats[6].h_align = 1;
    gst_droid_media_buffer_formats[6].v_align = 1;

    gst_droid_media_buffer_formats[7].hal_format =
        constants.HAL_PIXEL_FORMAT_YCrCb_420_SP;
    gst_droid_media_buffer_formats[7].gst_format = GST_VIDEO_FORMAT_NV21;
    gst_droid_media_buffer_formats[7].bytes_per_pixel = 1;
    gst_droid_media_buffer_formats[7].h_align = 1;
    gst_droid_media_buffer_formats[7].v_align = 1;

    gst_droid_media_buffer_formats[8].hal_format =
        constants.HAL_PIXEL_FORMAT_YCbCr_422_I;
    gst_droid_media_buffer_formats[8].gst_format = GST_VIDEO_FORMAT_YUY2;
    gst_droid_media_buffer_formats[8].bytes_per_pixel = 1;
    gst_droid_media_buffer_formats[8].h_align = 1;
    gst_droid_media_buffer_formats[8].v_align = 1;

    gst_droid_media_buffer_formats[9].hal_format =
        constants.QOMX_COLOR_FormatYUV420PackedSemiPlanar32m;
    gst_droid_media_buffer_formats[9].gst_format = GST_VIDEO_FORMAT_YV12;
    gst_droid_media_buffer_formats[9].bytes_per_pixel = 1;
    gst_droid_media_buffer_formats[9].h_align = 128;
    gst_droid_media_buffer_formats[9].v_align = 32;

    gst_droid_media_buffer_formats[10].hal_format =
        constants.QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka;
    gst_droid_media_buffer_formats[10].gst_format = GST_VIDEO_FORMAT_NV12_64Z32;
    gst_droid_media_buffer_formats[10].bytes_per_pixel = 0;
    gst_droid_media_buffer_formats[10].h_align = 0;
    gst_droid_media_buffer_formats[10].v_align = 0;
  }
}