1 /*
2     libfame - Fast Assembly MPEG Encoder Library
3     Copyright (C) 2000-2001  Damien Vincent
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 #ifndef __FAME_PROFILE_H
21 #define __FAME_PROFILE_H
22 
23 #include "fame.h"
24 
25 typedef struct _fame_profile_private_data_ fame_profile_private_data_t;
26 
27 typedef struct _fame_profile_t_ {
28   FAME_EXTENDS(fame_object_t);
29   void (* init)(struct _fame_profile_t_ *profile,
30 		fame_context_t *context,
31 		fame_parameters_t *params,
32 		unsigned char *buffer,
33 		unsigned int size);
34   void (* enter)(struct _fame_profile_t_ *profile,
35 		 fame_yuv_t *yuv,
36 		 unsigned char *shape);
37   int (* encode)(struct _fame_profile_t_ *profile);
38   void (* leave)(struct _fame_profile_t_ *profile,
39 		 fame_frame_statistics_t *stats);
40   int (* close)(struct _fame_profile_t_ *profile);
41   fame_profile_private_data_t *data;
42 } fame_profile_t;
43 
44 #define FAME_PROFILE(x) ((fame_profile_t *) x)
45 
46 #endif
47