Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3 | pmbaty | 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_ */ |