x264_gtk.h
上传用户:hjq518
上传日期:2021-12-09
资源大小:5084k
文件大小:4k
源码类别:

Audio

开发平台:

Visual C++

  1. /*****************************************************************************
  2.  * x264_gtk.h: h264 gtk encoder frontend
  3.  *****************************************************************************
  4.  * Copyright (C) 2006 Vincent Torri
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program; if not, write to the Free Software
  18.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111, USA.
  19.  *****************************************************************************/
  20. #ifndef X264_GTK_H
  21. #define X264_GTK_H
  22. #include "x264_gtk_enum.h"
  23. typedef struct X264_Gtk_ X264_Gtk;
  24. struct X264_Gtk_
  25. {
  26.   /* video properties */
  27.   gint width;
  28.   gint height;
  29.   gint csp;
  30.   /* bitrate */
  31.   X264_Pass pass;
  32.   gint average_bitrate;
  33.   gint target_bitrate;
  34.   gint quantizer;
  35.   gint desired_size;
  36.   gint statsfile_length; /* length of the filename (as returned by strlen) */
  37.   gchar statsfile_name[4095+1];
  38.   /* rc */
  39.   gint keyframe_boost;
  40.   gint bframes_reduction;
  41.   gint bitrate_variability;
  42.   gint min_qp;
  43.   gint max_qp;
  44.   gint max_qp_step;
  45.   gint scene_cut_threshold;
  46.   gint min_idr_frame_interval;
  47.   gint max_idr_frame_interval;
  48.   gint    vbv_max_bitrate;
  49.   gint    vbv_buffer_size;
  50.   gdouble vbv_buffer_init;
  51.   /* mb */
  52.   gint bframe;  /* max consecutive B frames */
  53.   gint bframe_bias;
  54.   X264_Direct_Mode direct_mode;
  55.   /* more */
  56.   X264_Partition_Decision partition_decision;
  57.   X264_Me_Method me_method;
  58.   gint range;
  59.   gint max_ref_frames;
  60.   gint sample_ar_x;
  61.   gint sample_ar_y;
  62.   gint threads;
  63.   guint trellis;
  64.   gint noise_reduction;
  65.   gint strength;
  66.   gint threshold;
  67.   X264_Debug_Method debug_method;
  68.   gchar fourcc[4+1];
  69.   /* cqm */
  70.   X264_Cqm_Preset cqm_preset;
  71.   gchar           cqm_file[4095+1];
  72.   guint8          cqm_4iy[16];
  73.   guint8          cqm_4ic[16];
  74.   guint8          cqm_4py[16];
  75.   guint8          cqm_4pc[16];
  76.   guint8          cqm_8iy[64];
  77.   guint8          cqm_8py[64];
  78.   /* bitrate */
  79.   guint stat_write            : 1;
  80.   guint stat_read             : 1;
  81.   guint update_statfile       : 1;
  82.   /* mb - partitions */
  83.   guint transform_8x8         : 1;
  84.   guint pframe_search_8       : 1;
  85.   guint bframe_search_8       : 1;
  86.   guint pframe_search_4       : 1;
  87.   guint inter_search_8        : 1;
  88.   guint inter_search_4        : 1;
  89.   /* mb - bframes */
  90.   guint bframe_pyramid        : 1; /* use as reference */
  91.   guint bidir_me              : 1;
  92.   guint bframe_adaptive       : 1;
  93.   guint weighted_bipred       : 1;
  94.   /* more - me */
  95.   guint bframe_rdo            : 1;
  96.   guint chroma_me             : 1;
  97.   guint mixed_refs            : 1;
  98.   guint fast_pskip            : 1;
  99.   guint dct_decimate          : 1;
  100.   /* more - misc */
  101.   guint cabac                 : 1;
  102.   /* more - misc - df */
  103.   guint deblocking_filter     : 1;
  104. };
  105. x264_param_t *x264_gtk_param_get (X264_Gtk *x264_gtk);
  106. X264_Gtk     *x264_gtk_load (void);
  107. GtkWidget    *x264_gtk_window_create (GtkWidget *parent);
  108. void          x264_gtk_shutdown (GtkWidget *dialog);
  109. void          x264_gtk_free (X264_Gtk *x264_gtk);
  110. #endif /* X264_GTK_H */