• MorphOS Developer
    zukow
    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
    Profile Visit Website