VisualC/external/include/MPEGfilter.h
author Sam Lantinga <slouken@libsdl.org>
Mon, 09 Jan 2012 04:20:54 -0500
changeset 556 2686e67b59fd
parent 495 VisualC/smpeg/include/MPEGfilter.h@b4d178cd982d
permissions -rwxr-xr-x
Moved external libraries into the "external" directory and added x64 build configuration.
     1 /*
     2     SMPEG - SDL MPEG Player Library
     3     Copyright (C) 1999  Loki Entertainment Software
     4 
     5     This library is free software; you can redistribute it and/or
     6     modify it under the terms of the GNU Library General Public
     7     License as published by the Free Software Foundation; either
     8     version 2 of the License, or (at your option) any later version.
     9 
    10     This library is distributed in the hope that it will be useful,
    11     but WITHOUT ANY WARRANTY; without even the implied warranty of
    12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    13     Library General Public License for more details.
    14 
    15     You should have received a copy of the GNU Library General Public
    16     License along with this library; if not, write to the Free
    17     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
    18 */
    19 
    20 /* MPEG filters */
    21 
    22 #ifndef _MPEGFILTER_H_
    23 #define _MPEGFILTER_H_
    24 
    25 /* SMPEG filter info flags */
    26 #define SMPEG_FILTER_INFO_MB_ERROR    1
    27 #define SMPEG_FILTER_INFO_PIXEL_ERROR 2
    28 
    29 /* Filter info from SMPEG */
    30 typedef struct SMPEG_FilterInfo {
    31   Uint16* yuv_mb_square_error;
    32   Uint16* yuv_pixel_square_error;
    33 } SMPEG_FilterInfo;
    34 
    35 /* MPEG filter definition */
    36 struct SMPEG_Filter;
    37 
    38 /* Callback functions for the filter */
    39 typedef void (* SMPEG_FilterCallback)( SDL_Overlay * dest, SDL_Overlay * source, SDL_Rect * region, SMPEG_FilterInfo * filter_info, void * data );
    40 typedef void (* SMPEG_FilterDestroy)( struct SMPEG_Filter * filter );
    41 
    42 /* The filter definition itself */
    43 typedef struct SMPEG_Filter {
    44   Uint32 flags;
    45   void * data;
    46   SMPEG_FilterCallback callback;
    47   SMPEG_FilterDestroy destroy;
    48 } SMPEG_Filter;
    49 
    50 /* SMPEG built-in filters. */
    51 #ifdef __cplusplus
    52 extern "C" {
    53 #endif
    54 
    55 /* The null filter (default). It simply copies the source rectangle to the video overlay. */ 
    56 extern DECLSPEC SMPEG_Filter * SMPEGfilter_null(void);
    57 
    58 /* The bilinear filter. A basic low-pass filter that will produce a smoother image. */ 
    59 extern DECLSPEC SMPEG_Filter * SMPEGfilter_bilinear(void);
    60 
    61 /* The deblocking filter. It filters block borders and non-intra coded blocks to reduce blockiness */ 
    62 extern DECLSPEC SMPEG_Filter * SMPEGfilter_deblocking(void);
    63 
    64 #ifdef __cplusplus
    65 };
    66 #endif
    67 #endif /* _MPEGFILTER_H_ */