-
-
MorphOS Developer
Posts: 643 from 2005/2/9
From: Poland
from SCANdal:
if ((MultimediaBase = OpenLibrary("multimedia/multimedia.class", 52)))
{
Object *picture;
struct TagItem tags[10];
char *ptr;
struct MetaItem *metadata=NULL;
tags[0].ti_Tag= MMA_StreamType;
tags[0].ti_Data = (ULONG)"file.stream";
tags[1].ti_Tag = MMA_StreamName;
tags[1].ti_Data = msg->filename;
tags[2].ti_Tag = MMA_MediaType;
tags[2].ti_Data =MMT_PICTURE,
tags[3].ti_Tag = TAG_END;
tags[3].ti_Data =0;
if ((picture = MediaNewObjectTagList(&tags)))
{
int i=0;
data->img.dpi = 150;
if ((metadata = (struct MetaItem *)MediaGetPort(picture, 0, MMA_MetaData)))
{
KPrintF("parsing metadate\n");
while (metadata[i].mi_Length)
{
KPrintF("parsing metadate id %d\n", metadata[i].mi_Id );
if (metadata[i].mi_Id == MMETA_VideoDpiX)
{
double *dpi;
KPrintF("DPI found: %d\n", metadata[i].mi_Length);
dpi = (double*)((metadata[i].mi_Data));
data->img.dpi = *dpi;
KPrintF("DPI: %d\n", data->img.dpi);
break;
}
i++;
}
}
data->img.height = MediaGetPort(picture, 0, MMA_Video_Height);
data->img.width = MediaGetPort(picture, 0, MMA_Video_Width);
//and reading
i= DoMethod(picture, MMM_Pull, 0, ptr, data->img.bytesperline*data->img.height);
-
»09.08.10 - 22:12