Annotation of margi2/video.h, revision 1.1

1.1     ! cvs         1: /* 
        !             2:     video.h
        !             3: 
        !             4:     Copyright (C) Christian Wolff for convergence integrated media.
        !             5: 
        !             6:     This program is free software; you can redistribute it and/or modify
        !             7:     it under the terms of the GNU General Public License as published by
        !             8:     the Free Software Foundation; either version 2 of the License, or
        !             9:     (at your option) any later version.
        !            10: 
        !            11:     This program is distributed in the hope that it will be useful,
        !            12:     but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            13:     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            14:     GNU General Public License for more details.
        !            15: 
        !            16:     You should have received a copy of the GNU General Public License
        !            17:     along with this program; if not, write to the Free Software
        !            18:     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
        !            19: */
        !            20: 
        !            21: #ifndef CVDV_VIDEO_H
        !            22: #define CVDV_VIDEO_H
        !            23: 
        !            24:   //
        !            25:  //  Video Decoder
        !            26: //
        !            27: 
        !            28: #include "cardbase.h"
        !            29: 
        !            30: // Set the background of the OSD and SPU and it's color
        !            31: // mode=0: Video on Black
        !            32: // mode=1: Black
        !            33: // mode=2: Selected Color
        !            34: // mode=3: Video on Selected Color
        !            35: void VideoSetBackground(struct cvdv_cards *card, int mode, u8 Y, u8 Cb,
        !            36:                        u8 Cr);
        !            37: 
        !            38: 
        !            39: int DecoderStartDecode(struct cvdv_cards *card);
        !            40: 
        !            41: int DecoderStopDecode(struct cvdv_cards *card);
        !            42: 
        !            43: // Sets Display Override (Still Image Display) to Frame Buffer at specified addresses,
        !            44: // addresses are 16 bit, in 64 byte resolution
        !            45: // mode: 0=off, 1=Frame, 2=Field
        !            46: // width: width of the still picture in 8 pixel units
        !            47: int DecoderStillImageDisplay(struct cvdv_cards *card, int mode, int width,
        !            48:                             u16 LumaAddr, u16 ChromaAddr);
        !            49: 
        !            50: // Frees allocated frame buffers
        !            51: int DecoderKillFrameBuffers(struct cvdv_cards *card);
        !            52: 
        !            53: int DecoderSetFrameBuffers(struct cvdv_cards *card, int lines, // number of lines of the decoded MPEG
        !            54:                           int TwoFrames,       // 1 if no B-Frames are present in the video stream, thus allowing only 2 framestores
        !            55:                           int RMM);    // 1 if RMM
        !            56: 
        !            57: // returns size of the Video ES Buffer in bytes or 0=error
        !            58: u32 DecoderGetVideoESSize(struct cvdv_cards *card);
        !            59: 
        !            60: // returns level of fullness in bytes
        !            61: u32 DecoderGetVideoESLevel(struct cvdv_cards *card);
        !            62: 
        !            63: // pics=0 --> items=bytes
        !            64: // pics=1 --> items=pictures
        !            65: void DecoderSetVideoPanic(struct cvdv_cards *card, int pics, int items);
        !            66: 
        !            67: int DecoderClose(struct cvdv_cards *card);
        !            68: 
        !            69: // returns 0 on success, 1 on "picture size too big", 2 on "out of DRAM memory"
        !            70: int DecoderOpen(struct cvdv_cards *card, int x, int y, // size of the decoded MPEG picture
        !            71:                int aspect,     // pixel or picture aspect ratio of the MPEG picture: 1=square pixel 2=3:4 3=9:16 4=1:2.21
        !            72:                int Field,      // 0:Frame (interlaced, MPEG-2) , 1:Field (non-interlaced, MPEG-1) structure
        !            73:                int Letterbox,  // 0:PanScan (4:3), 1:letterbox (16:9, 8:3) picture ratio  // TODO, ignored for now
        !            74:                int RMM         // 1:use ReducedMemoryMode
        !            75:     );
        !            76: 
        !            77: // displays a still image, whose pixel data is in luma and chroma
        !            78: int DecoderShowStill(struct cvdv_cards *card, int width, int height,
        !            79:                     u8 * luma, u8 * chroma);
        !            80: 
        !            81: // TODO: untested, probably won't work (have to use "main reads per line" instead of width on SIF)
        !            82: int DecoderGetStill(struct cvdv_cards *card, int *width, int *height,
        !            83:                    u8 * luma, u8 * chroma);
        !            84: 
        !            85: #endif                         /* CVDV_VIDEO_H */

LinuxTV legacy CVS <linuxtv.org/cvs>