cog: logoinsert checkpoint FIXME

This commit is contained in:
David Schleef 2009-10-08 15:18:41 -07:00
parent 5d9d693caf
commit a37a68b7b7

View file

@ -58,7 +58,7 @@ struct _GstLogoinsert
gchar *data; gchar *data;
gsize size; gsize size;
CogFrame *overlay_frame; CogFrame *overlay_frame;
CogFrame *ayuv_frame; CogFrame *argb_frame;
CogFrame *alpha_frame; CogFrame *alpha_frame;
}; };
@ -116,7 +116,7 @@ static GstStaticPadTemplate gst_logoinsert_src_template =
GST_STATIC_PAD_TEMPLATE ("src", GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC, GST_PAD_SRC,
GST_PAD_ALWAYS, GST_PAD_ALWAYS,
GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{I420,YUY2,UYVY,AYUV}")) GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420"))
); );
GType GType
@ -254,17 +254,17 @@ gst_logoinsert_transform_ip (GstBaseTransform * base_transform, GstBuffer * buf)
frame = gst_cog_buffer_wrap (buf, li->format, li->width, li->height); frame = gst_cog_buffer_wrap (buf, li->format, li->width, li->height);
if (li->ayuv_frame == NULL) if (li->argb_frame == NULL)
return GST_FLOW_OK; return GST_FLOW_OK;
if (li->overlay_frame == NULL) { if (li->overlay_frame == NULL) {
CogFrame *f; CogFrame *f;
f = cog_virt_frame_extract_alpha (cog_frame_ref (li->ayuv_frame)); f = cog_virt_frame_extract_alpha (cog_frame_ref (li->argb_frame));
f = cog_virt_frame_new_subsample (f, frame->format, 2); f = cog_virt_frame_new_subsample (f, frame->format, 2);
li->alpha_frame = cog_frame_realize (f); li->alpha_frame = cog_frame_realize (f);
f = cog_virt_frame_new_unpack (cog_frame_ref (li->ayuv_frame)); f = cog_virt_frame_new_unpack (cog_frame_ref (li->argb_frame));
f = cog_virt_frame_new_color_matrix_RGB_to_YCbCr (f, COG_COLOR_MATRIX_SDTV, f = cog_virt_frame_new_color_matrix_RGB_to_YCbCr (f, COG_COLOR_MATRIX_SDTV,
8); 8);
f = cog_virt_frame_new_subsample (f, frame->format, 2); f = cog_virt_frame_new_subsample (f, frame->format, 2);
@ -327,7 +327,7 @@ gst_logoinsert_set_location (GstLogoinsert * li, const gchar * location)
return; return;
} }
li->ayuv_frame = cog_frame_new_from_png (li->data, li->size); li->argb_frame = cog_frame_new_from_png (li->data, li->size);
if (li->alpha_frame) { if (li->alpha_frame) {
cog_frame_unref (li->alpha_frame); cog_frame_unref (li->alpha_frame);
@ -396,7 +396,7 @@ cog_frame_new_from_png (void *data, int size)
} }
frame_data = g_malloc (width * height * 4); frame_data = g_malloc (width * height * 4);
frame = cog_frame_new_from_data_AYUV (frame_data, width, height); frame = cog_frame_new_from_data_ARGB (frame_data, width, height);
rowbytes = png_get_rowbytes (png_ptr, info_ptr); rowbytes = png_get_rowbytes (png_ptr, info_ptr);
rows = (png_bytep *) g_malloc (sizeof (png_bytep) * height); rows = (png_bytep *) g_malloc (sizeof (png_bytep) * height);