]> git.sesse.net Git - x264/blob - gtk/x264_gtk.h
compute chroma_qp only once per mb
[x264] / gtk / x264_gtk.h
1 #ifndef __X264_GTK_H__
2 #define __X264_GTK_H__
3
4
5 #include "x264_gtk_enum.h"
6
7 typedef struct X264_Gtk_ X264_Gtk;
8
9 struct X264_Gtk_
10 {
11   /* video properties */
12   gint width;
13   gint height;
14   gint csp;
15
16   /* bitrate */
17   X264_Pass pass;
18   gint average_bitrate;
19   gint target_bitrate;
20   gint quantizer;
21   gint desired_size;
22   gint statsfile_length; /* length of the filename (as returned by strlen) */
23   gchar statsfile_name[4095+1];
24
25   /* rc */
26   gint keyframe_boost;
27   gint bframes_reduction;
28   gint bitrate_variability;
29
30   gint min_qp;
31   gint max_qp;
32   gint max_qp_step;
33
34   gint scene_cut_threshold;
35   gint min_idr_frame_interval;
36   gint max_idr_frame_interval;
37
38   gint    vbv_max_bitrate;
39   gint    vbv_buffer_size;
40   gdouble vbv_buffer_init;
41
42   /* mb */
43
44   gint bframe;  /* max consecutive B frames */
45   gint bframe_bias;
46   X264_Direct_Mode direct_mode;
47
48   /* more */
49   X264_Partition_Decision partition_decision;
50   X264_Me_Method me_method;
51   gint range;
52   gint max_ref_frames;
53
54   gint sample_ar_x;
55   gint sample_ar_y;
56   gint threads;
57   guint trellis;
58   gint noise_reduction;
59   
60   gint strength;
61   gint threshold;
62
63   X264_Debug_Method debug_method;
64   gchar fourcc[4+1];
65
66   /* cqm */
67   X264_Cqm_Preset cqm_preset;
68   gchar           cqm_file[4095+1];
69   guint8          cqm_4iy[16];
70   guint8          cqm_4ic[16];
71   guint8          cqm_4py[16];
72   guint8          cqm_4pc[16];
73   guint8          cqm_8iy[64];
74   guint8          cqm_8py[64];
75
76   /* bitrate */
77   guint stat_write            : 1;
78   guint stat_read             : 1;
79   guint update_statfile       : 1;
80   /* mb - partitions */
81   guint transform_8x8         : 1;
82   guint pframe_search_8       : 1;
83   guint bframe_search_8       : 1;
84   guint pframe_search_4       : 1;
85   guint inter_search_8        : 1;
86   guint inter_search_4        : 1;
87   /* mb - bframes */
88   guint bframe_pyramid        : 1; /* use as reference */
89   guint bidir_me              : 1;
90   guint bframe_adaptive       : 1;
91   guint weighted_bipred       : 1;
92   /* more - me */
93   guint bframe_rdo            : 1;
94   guint chroma_me             : 1;
95   guint mixed_refs            : 1;
96   guint fast_pskip            : 1;
97   guint dct_decimate          : 1;
98   /* more - misc */
99   guint cabac                 : 1;
100   /* more - misc - df */
101   guint deblocking_filter     : 1;
102 };
103
104 x264_param_t *x264_gtk_param_get (X264_Gtk *x264_gtk);
105 X264_Gtk     *x264_gtk_load (void);
106 GtkWidget    *x264_gtk_window_create (GtkWidget *parent);
107 void          x264_gtk_shutdown (GtkWidget *dialog);
108 void          x264_gtk_free (X264_Gtk *x264_gtk);
109
110
111 #endif /* __X264_GTK_H__ */