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); }
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; } }