VisualC/smpeg/include/MPEGfilter.h
changeset 556 2686e67b59fd
parent 555 b92bfb451700
child 557 a55168d8babe
equal deleted inserted replaced
555:b92bfb451700 556:2686e67b59fd
     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_ */