mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-13 10:55:34 +00:00
FEI: libs: Add FEI encoder
Adding FEI encoder to core lib. The code is splitted into three session: 1: gstvaapiencoder_h264_fei.{h,c} This is the replica of gstvaapiencoder_h264.{c,h} but with FEI. All the modes ENC, PAK and ENC_PAK are running based the code in these files. 2: gstvaapifeienc_h264.{h,c} Abstract implementation intended for ENC (only VME) operation. 3: gstvaapifeipak_h264.{h,c} Abstrct implementation intended for PAK (only the PAK module) Right now ENC_PAK, ENC and PAK are running based on code in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are needed if user request for ENC+PAK mode operation. ENC+PAK: Here we need to invoke two sequence of vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame, first for the ENC only and the second for PAK only. Each mode associated with separate context ,but same pool of surfaces are shared between the modes. This is more useful once we have custom BRC algorithms. Other Contributors: Wang, Yi <yi.a.wang@intel.com> Leilei <leilei.shang@intel.com> Zhong, Xiaoxia <xiaoxia.zhong@intel.com> xiaominc <xiaomin.chen@intel.com> Li, Jing B <jing.b.li@intel.com> https://bugzilla.gnome.org/show_bug.cgi?id=785712 https://bugzilla.gnome.org/show_bug.cgi?id=784667
This commit is contained in:
parent
de2e4cd9bc
commit
7e0d5b934b
7 changed files with 8808 additions and 2 deletions
|
@ -240,14 +240,20 @@ endif
|
|||
libgstvaapi_h264feienc_source_c = \
|
||||
gstvaapifeiutils_h264.c \
|
||||
gstvaapifei_objects.c \
|
||||
gstvaapifeienc_h264.c \
|
||||
gstvaapifeipak_h264.c \
|
||||
gstvaapiencoder_h264_fei.c \
|
||||
$(NULL)
|
||||
libgstvaapi_h264feienc_source_h = \
|
||||
gstvaapifeiutils_h264.h \
|
||||
gstvaapifei_objects.h \
|
||||
gstvaapifeienc_h264.h \
|
||||
gstvaapifeipak_h264.h \
|
||||
gstvaapiencoder_h264_fei.h \
|
||||
$(NULL)
|
||||
libgstvaapi_h264feienc_source_priv_h = \
|
||||
gstvaapifei_objects_priv.h \
|
||||
$(NULL)
|
||||
gstvaapifei_objects_priv.h \
|
||||
$(NULL)
|
||||
if USE_H264_FEI_ENCODER
|
||||
libgstvaapi_source_c += $(libgstvaapi_h264feienc_source_c)
|
||||
libgstvaapi_source_h += $(libgstvaapi_h264feienc_source_h)
|
||||
|
|
4317
gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c
Normal file
4317
gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c
Normal file
File diff suppressed because it is too large
Load diff
112
gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h
Normal file
112
gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h
Normal file
|
@ -0,0 +1,112 @@
|
|||
/*
|
||||
* gstvaapiencoder_h264_fei.h - H.264 FEI encoder
|
||||
*
|
||||
* Copyright (C) 2016-2017 Intel Corporation
|
||||
* Author: Yi A Wang <yi.a.wang@intel.com>
|
||||
* Author: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef GST_VAAPI_ENCODER_H264_FEI_H
|
||||
#define GST_VAAPI_ENCODER_H264_FEI_H
|
||||
|
||||
#include <gst/vaapi/gstvaapiencoder.h>
|
||||
#include <gst/vaapi/gstvaapiutils_h264.h>
|
||||
#include <gst/vaapi/gstvaapifeiutils_h264.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GST_VAAPI_ENCODER_H264_FEI(encoder) \
|
||||
((GstVaapiEncoderH264Fei *) (encoder))
|
||||
|
||||
typedef struct _GstVaapiEncoderH264Fei GstVaapiEncoderH264Fei;
|
||||
|
||||
/**
|
||||
* GstVaapiEncoderH264FeiProp:
|
||||
* @GST_VAAPI_ENCODER_H264_FEI_PROP_MAX_BFRAMES: Number of B-frames between I
|
||||
* and P (uint).
|
||||
* @GST_VAAPI_ENCODER_H264_FEI_PROP_INIT_QP: Initial quantizer value (uint).
|
||||
* @GST_VAAPI_ENCODER_H264_FEI_PROP_MIN_QP: Minimal quantizer value (uint).
|
||||
* @GST_VAAPI_ENCODER_H264_FEI_PROP_NUM_SLICES: Number of slices per frame (uint).
|
||||
* @GST_VAAPI_ENCODER_H264_FEI_PROP_CABAC: Enable CABAC entropy coding mode (bool).
|
||||
* @GST_VAAPI_ENCODER_H264_FEI_PROP_DCT8X8: Enable adaptive use of 8x8
|
||||
* transforms in I-frames (bool).
|
||||
* @GST_VAAPI_ENCODER_H264_FEI_PROP_CPB_LENGTH: Length of the CPB buffer
|
||||
* in milliseconds (uint).
|
||||
* @GST_VAAPI_ENCODER_H264_FEI_PROP_NUM_VIEWS: Number of views per frame.
|
||||
* @GST_VAAPI_ENCODER_H264_FEI_PROP_VIEW_IDS: View IDs
|
||||
*
|
||||
* The set of H.264 encoder specific configurable properties.
|
||||
*/
|
||||
typedef enum {
|
||||
GST_VAAPI_ENCODER_H264_FEI_PROP_MAX_BFRAMES = -1,
|
||||
GST_VAAPI_ENCODER_H264_FEI_PROP_INIT_QP = -2,
|
||||
GST_VAAPI_ENCODER_H264_FEI_PROP_MIN_QP = -3,
|
||||
GST_VAAPI_ENCODER_H264_FEI_PROP_NUM_SLICES = -4,
|
||||
GST_VAAPI_ENCODER_H264_FEI_PROP_CABAC = -5,
|
||||
GST_VAAPI_ENCODER_H264_FEI_PROP_DCT8X8 = -6,
|
||||
GST_VAAPI_ENCODER_H264_FEI_PROP_CPB_LENGTH = -7,
|
||||
GST_VAAPI_ENCODER_H264_FEI_PROP_NUM_VIEWS = -8,
|
||||
GST_VAAPI_ENCODER_H264_FEI_PROP_VIEW_IDS = -9,
|
||||
GST_VAAPI_ENCODER_H264_PROP_FEI_DISABLE= -11,
|
||||
GST_VAAPI_ENCODER_H264_PROP_NUM_MV_PREDICT_L0 = -12,
|
||||
GST_VAAPI_ENCODER_H264_PROP_NUM_MV_PREDICT_L1 = -13,
|
||||
GST_VAAPI_ENCODER_H264_PROP_SEARCH_WINDOW = -14,
|
||||
GST_VAAPI_ENCODER_H264_PROP_LEN_SP = -15,
|
||||
GST_VAAPI_ENCODER_H264_PROP_SEARCH_PATH = -16,
|
||||
GST_VAAPI_ENCODER_H264_PROP_REF_WIDTH = -17,
|
||||
GST_VAAPI_ENCODER_H264_PROP_REF_HEIGHT = -18,
|
||||
GST_VAAPI_ENCODER_H264_PROP_SUBMB_MASK = -19,
|
||||
GST_VAAPI_ENCODER_H264_PROP_SUBPEL_MODE = -20,
|
||||
GST_VAAPI_ENCODER_H264_PROP_INTRA_PART_MASK = -21,
|
||||
GST_VAAPI_ENCODER_H264_PROP_INTRA_SAD = -22,
|
||||
GST_VAAPI_ENCODER_H264_PROP_INTER_SAD = -23,
|
||||
GST_VAAPI_ENCODER_H264_PROP_ADAPT_SEARCH = -24,
|
||||
GST_VAAPI_ENCODER_H264_PROP_MULTI_PRED_L0 = -25,
|
||||
GST_VAAPI_ENCODER_H264_PROP_MULTI_PRED_L1 = -26,
|
||||
GST_VAAPI_ENCODER_H264_PROP_ENABLE_STATS_OUT = -27,
|
||||
GST_VAAPI_ENCODER_H264_PROP_FEI_MODE = -28
|
||||
|
||||
} GstVaapiEncoderH264FeiProp;
|
||||
|
||||
GstVaapiEncoder *
|
||||
gst_vaapi_encoder_h264_fei_new (GstVaapiDisplay * display);
|
||||
|
||||
GPtrArray *
|
||||
gst_vaapi_encoder_h264_fei_get_default_properties (void);
|
||||
|
||||
gboolean
|
||||
gst_vaapi_encoder_h264_fei_set_max_profile (GstVaapiEncoderH264Fei * encoder,
|
||||
GstVaapiProfile profile);
|
||||
|
||||
gboolean
|
||||
gst_vaapi_encoder_h264_fei_get_profile_and_level (GstVaapiEncoderH264Fei * encoder,
|
||||
GstVaapiProfile * out_profile_ptr, GstVaapiLevelH264 * out_level_ptr);
|
||||
|
||||
gboolean
|
||||
gst_vaapi_encoder_h264_is_fei_stats_out_enabled (GstVaapiEncoderH264Fei * encoder);
|
||||
|
||||
GstVaapiFeiMode
|
||||
gst_vaapi_encoder_h264_fei_get_function_mode (GstVaapiEncoderH264Fei *encoder);
|
||||
|
||||
void
|
||||
gst_vaapi_encoder_h264_fei_set_function_mode (GstVaapiEncoderH264Fei * encoder,
|
||||
guint fei_mode);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /*GST_VAAPI_ENCODER_H264_FEI_H */
|
2264
gst-libs/gst/vaapi/gstvaapifeienc_h264.c
Normal file
2264
gst-libs/gst/vaapi/gstvaapifeienc_h264.c
Normal file
File diff suppressed because it is too large
Load diff
121
gst-libs/gst/vaapi/gstvaapifeienc_h264.h
Normal file
121
gst-libs/gst/vaapi/gstvaapifeienc_h264.h
Normal file
|
@ -0,0 +1,121 @@
|
|||
/*
|
||||
* gstvaapifeienc_h264.h - FEI Enc abstract
|
||||
*
|
||||
* Copyright (C) 2016-2018 Intel Corporation
|
||||
* Author: Leilei Shang <leilei.shang@intel.com>
|
||||
* Author: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef GST_VAAPI_FEI_H264_ENC_H
|
||||
#define GST_VAAPI_FEI_H264_ENC_H
|
||||
|
||||
#include <gst/vaapi/gstvaapiencoder.h>
|
||||
#include <gst/vaapi/gstvaapiutils_h264.h>
|
||||
#include <gst/vaapi/gstvaapifeiutils_h264.h>
|
||||
#include <gst/vaapi/gstvaapifei_objects_priv.h>
|
||||
G_BEGIN_DECLS
|
||||
#define GST_VAAPI_FEI_H264_ENC(feienc) \
|
||||
((GstVaapiFeiEncH264 *) (feienc))
|
||||
typedef struct _GstVaapiFeiEncH264 GstVaapiFeiEncH264;
|
||||
|
||||
/**
|
||||
* GstVaapiFeiEncH264Prop:
|
||||
* @GST_VAAPI_FEI_H264_ENC_PROP_MAX_BFRAMES: Number of B-frames between I
|
||||
* and P (uint).
|
||||
* @GST_VAAPI_FEI_H264_ENC_PROP_INIT_QP: Initial quantizer value (uint).
|
||||
* @GST_VAAPI_FEI_H264_ENC_PROP_MIN_QP: Minimal quantizer value (uint).
|
||||
* @GST_VAAPI_FEI_H264_ENC_PROP_NUM_SLICES: Number of slices per frame (uint).
|
||||
* @GST_VAAPI_FEI_H264_ENC_PROP_CABAC: Enable CABAC entropy coding mode (bool).
|
||||
* @GST_VAAPI_FEI_H264_ENC_PROP_DCT8X8: Enable adaptive use of 8x8
|
||||
* transforms in I-frames (bool).
|
||||
* @GST_VAAPI_FEI_H264_ENC_PROP_CPB_LENGTH: Length of the CPB buffer
|
||||
* in milliseconds (uint).
|
||||
* @GST_VAAPI_FEI_H264_ENC_PROP_NUM_VIEWS: Number of views per frame.
|
||||
* @GST_VAAPI_FEI_H264_ENC_PROP_VIEW_IDS: View IDs
|
||||
*
|
||||
* The set of FEI Enc specific configurable properties.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_MAX_BFRAMES = -1,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_INIT_QP = -2,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_MIN_QP = -3,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_NUM_SLICES = -4,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_CABAC = -5,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_DCT8X8 = -6,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_CPB_LENGTH = -7,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_NUM_VIEWS = -8,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_VIEW_IDS = -9,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_NUM_REF = -10,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_FEI_ENABLE = -11,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_NUM_MV_PREDICT_L0 = -12,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_NUM_MV_PREDICT_L1 = -13,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_SEARCH_WINDOW = -14,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_LEN_SP = -15,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_SEARCH_PATH = -16,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_REF_WIDTH = -17,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_REF_HEIGHT = -18,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_SUBMB_MASK = -19,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_SUBPEL_MODE = -20,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_INTRA_PART_MASK = -21,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_INTRA_SAD = -22,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_INTER_SAD = -23,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_ADAPT_SEARCH = -24,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_MULTI_PRED_L0 = -25,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_MULTI_PRED_L1 = -26,
|
||||
GST_VAAPI_FEI_H264_ENC_PROP_ENABLE_STATS_OUT = -27,
|
||||
} GstVaapiFeiEncH264Prop;
|
||||
|
||||
GstVaapiEncoder *
|
||||
gst_vaapi_feienc_h264_new (GstVaapiDisplay * display);
|
||||
|
||||
GPtrArray *
|
||||
gst_vaapi_feienc_h264_get_default_properties (void);
|
||||
|
||||
gboolean
|
||||
gst_vaapi_feienc_h264_set_max_profile (GstVaapiFeiEncH264 * feienc,
|
||||
GstVaapiProfile profile);
|
||||
|
||||
gboolean
|
||||
gst_vaapi_feienc_h264_set_ref_pool (GstVaapiFeiEncH264 * feienc, gpointer ref_pool_ptr);
|
||||
|
||||
GstVaapiEncoderStatus
|
||||
gst_vaapi_feienc_h264_encode (GstVaapiEncoder * base_encoder,
|
||||
GstVaapiEncPicture * picture, GstVaapiSurfaceProxy * reconstruct,
|
||||
GstVaapiCodedBufferProxy * codedbuf_proxy, GstVaapiFeiInfoToPakH264 *info_to_pak);
|
||||
|
||||
GstVaapiEncoderStatus
|
||||
gst_vaapi_feienc_h264_flush (GstVaapiEncoder * base_encoder);
|
||||
|
||||
GstVaapiEncoderStatus
|
||||
gst_vaapi_feienc_h264_reordering (GstVaapiEncoder * base_encoder,
|
||||
GstVideoCodecFrame * frame, GstVaapiEncPicture ** output);
|
||||
|
||||
GstVaapiEncoderStatus
|
||||
gst_vaapi_feienc_h264_reconfigure (GstVaapiEncoder * base_encoder);
|
||||
|
||||
GstVaapiEncoderStatus
|
||||
gst_vaapi_feienc_h264_set_property (GstVaapiEncoder * base_encoder,
|
||||
gint prop_id, const GValue * value);
|
||||
|
||||
gboolean
|
||||
gst_vaapi_feienc_h264_get_profile_and_idc (GstVaapiFeiEncH264 * feienc,
|
||||
GstVaapiProfile * out_profile_ptr, guint8 * out_profile_idc_ptr);
|
||||
|
||||
G_END_DECLS
|
||||
#endif /*GST_VAAPI_FEI_H264_ENC_H */
|
1892
gst-libs/gst/vaapi/gstvaapifeipak_h264.c
Normal file
1892
gst-libs/gst/vaapi/gstvaapifeipak_h264.c
Normal file
File diff suppressed because it is too large
Load diff
94
gst-libs/gst/vaapi/gstvaapifeipak_h264.h
Normal file
94
gst-libs/gst/vaapi/gstvaapifeipak_h264.h
Normal file
|
@ -0,0 +1,94 @@
|
|||
/*
|
||||
* gstvaapifeipak_h264.h - H.264 FEI PAK
|
||||
*
|
||||
* Copyright (C) 2016-2018 Intel Corporation
|
||||
* Author: Chen Xiaomin <xiaomin.chen@intel.com>
|
||||
* Author: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef GST_VAAPI_FEIPAK_H264_H
|
||||
#define GST_VAAPI_FEIPAK_H264_H
|
||||
|
||||
#include <gst/vaapi/gstvaapiencoder.h>
|
||||
#include <gst/vaapi/gstvaapiutils_h264.h>
|
||||
#include <gst/vaapi/gstvaapifeiutils_h264.h>
|
||||
#include <gst/vaapi/gstvaapifei_objects_priv.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _GstVaapiFEIPakH264 GstVaapiFEIPakH264;
|
||||
|
||||
/**
|
||||
* GstVaapiEncoderH264Prop:
|
||||
* @GST_VAAPI_FEIPAK_H264_PROP_MAX_BFRAMES: Number of B-frames between I
|
||||
* and P (uint).
|
||||
* @GST_VAAPI_FEIPAK_H264_PROP_INIT_QP: Initial quantizer value (uint).
|
||||
* @GST_VAAPI_FEIPAK_H264_PROP_MIN_QP: Minimal quantizer value (uint).
|
||||
* @GST_VAAPI_FEIPAK_H264_PROP_NUM_SLICES: Number of slices per frame (uint).
|
||||
* @GST_VAAPI_FEIPAK_H264_PROP_CABAC: Enable CABAC entropy coding mode (bool).
|
||||
* @GST_VAAPI_FEIPAK_H264_PROP_DCT8X8: Enable adaptive use of 8x8
|
||||
* transforms in I-frames (bool).
|
||||
* @GST_VAAPI_FEIPAK_H264_PROP_CPB_LENGTH: Length of the CPB buffer
|
||||
* in milliseconds (uint).
|
||||
* @GST_VAAPI_FEIPAK_H264_PROP_NUM_VIEWS: Number of views per frame.
|
||||
* @GST_VAAPI_FEIPAK_H264_PROP_VIEW_IDS: View IDs
|
||||
*
|
||||
* The set of H.264 feipak specific configurable properties.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GST_VAAPI_FEIPAK_H264_PROP_MAX_BFRAMES = -1,
|
||||
GST_VAAPI_FEIPAK_H264_PROP_INIT_QP = -2,
|
||||
GST_VAAPI_FEIPAK_H264_PROP_MIN_QP = -3,
|
||||
GST_VAAPI_FEIPAK_H264_PROP_NUM_SLICES = -4,
|
||||
GST_VAAPI_FEIPAK_H264_PROP_CABAC = -5,
|
||||
GST_VAAPI_FEIPAK_H264_PROP_DCT8X8 = -6,
|
||||
GST_VAAPI_FEIPAK_H264_PROP_CPB_LENGTH = -7,
|
||||
GST_VAAPI_FEIPAK_H264_PROP_NUM_VIEWS = -8,
|
||||
GST_VAAPI_FEIPAK_H264_PROP_VIEW_IDS = -9,
|
||||
GST_VAAPI_FEIPAK_H264_PROP_NUM_REF = -10,
|
||||
} GstVaapiFEIPakH264Prop;
|
||||
|
||||
GstVaapiEncoderStatus
|
||||
gst_vaapi_feipak_h264_reconfigure (GstVaapiFEIPakH264 * feipak,
|
||||
VAContextID va_context, GstVaapiProfile profile, guint8 profile_idc,
|
||||
guint mb_width, guint mb_height, guint32 num_views, guint slices_num,
|
||||
guint32 num_ref_frames);
|
||||
|
||||
GstVaapiEncoderStatus
|
||||
gst_vaapi_feipak_h264_encode (GstVaapiFEIPakH264 * feipak,
|
||||
GstVaapiEncPicture * picture, GstVaapiCodedBufferProxy * codedbuf,
|
||||
GstVaapiSurfaceProxy * surface, GstVaapiFeiInfoToPakH264 *info_to_pak);
|
||||
|
||||
GstVaapiEncoderStatus
|
||||
gst_vaapi_feipak_h264_flush (GstVaapiFEIPakH264 * feipak);
|
||||
|
||||
GstVaapiFEIPakH264 *gst_vaapi_feipak_h264_new (GstVaapiEncoder * encoder,
|
||||
GstVaapiDisplay * display, VAContextID va_context);
|
||||
|
||||
GstVaapiEncoderStatus
|
||||
gst_vaapi_feipak_h264_set_property (GstVaapiFEIPakH264 * feipak,
|
||||
gint prop_id, const GValue * value);
|
||||
|
||||
gboolean
|
||||
gst_vaapi_feipak_h264_get_ref_pool (GstVaapiFEIPakH264 * feipak,
|
||||
gpointer * ref_pool_ptr);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /*GST_VAAPI_FEIPAK_H264_H */
|
Loading…
Reference in a new issue