dnl *** openh264 ***
translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
- AG_GST_PKG_CHECK_MODULES(OPENH264, openh264)
+ AC_LANG_PUSH([C++])
+ AG_GST_CHECK_LIBHEADER(OPENH264, openh264, WelsSnprintf, $PTHREAD_LIBS,
+ wels/codec_api.h, [
+ AC_MSG_CHECKING([for right openh264 version/snapshot])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wels/codec_app_def.h>
+#include <wels/codec_api.h>]], [[
+ SFrameBSInfo frame_info;
+ SEncParamExt enc_params;
+ enc_params.iInputCsp = videoFormatI420;
+ int *p = (int *) &frame_info.eFrameType;
+ *p = RC_LOW_BW_MODE;
+ ]])], [
+ AC_MSG_RESULT(yes)
+ OPENH264_LIBS="-lopenh264 $PTHREAD_LIBS"
+ ], [
+ AC_MSG_RESULT(no)
+ HAVE_OPENH264="no"
+ ])
+ ])
+ AC_LANG_POP([C++])
+ AC_SUBST(OPENH264_LIBS)
])
dnl *** OpenJPEG ***
WelsCreateDecoder (&(openh264dec->priv->decoder));
dec_param.uiTargetDqLayer = 255;
- dec_param.eEcActiveIdc = ERROR_CON_FRAME_COPY;
- dec_param.eOutputColorFormat = videoFormatI420;
+ dec_param.uiEcActiveFlag = 1;
+ dec_param.iOutputColorFormat = videoFormatI420;
dec_param.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_AVC;
ret = openh264dec->priv->decoder->Initialize (&dec_param);
static GEnumValue rc_modes_types[] = {
{RC_QUALITY_MODE, "Quality mode", "quality"},
{RC_BITRATE_MODE, "Bitrate mode", "bitrate"},
- {RC_BUFFERBASED_MODE, "No bitrate control, just using buffer status", "buffer"},
+ {RC_LOW_BW_MODE, "Low bandwidth mode", "bandwidth"},
{RC_OFF_MODE, "Rate control off mode", "off"},
{0, NULL, NULL},
};
case RC_BITRATE_MODE:
openh264enc->priv->rate_control = RC_BITRATE_MODE;
break;
- case RC_BUFFERBASED_MODE:
- openh264enc->priv->rate_control = RC_BUFFERBASED_MODE;
+ case RC_LOW_BW_MODE:
+ openh264enc->priv->rate_control = RC_LOW_BW_MODE;
break;
case RC_OFF_MODE:
openh264enc->priv->rate_control = RC_OFF_MODE;
GstCaps *outcaps;
GstVideoCodecState *output_state;
openh264enc->priv->frame_count = 0;
- int video_format = videoFormatI420;
debug_caps = gst_caps_to_string (state->caps);
GST_DEBUG_OBJECT (openh264enc, "gst_e26d4_enc_set_format called, caps: %s",
enc_params.iTemporalLayerNum = 1;
enc_params.iSpatialLayerNum = 1;
enc_params.iLtrMarkPeriod = 30;
+ enc_params.iInputCsp = videoFormatI420;
enc_params.iMultipleThreadIdc = openh264enc->priv->multi_thread;
enc_params.bEnableDenoise = openh264enc->priv->enable_denoise;
enc_params.uiIntraPeriod = priv->gop_size;
return FALSE;
}
- priv->encoder->SetOption(ENCODER_OPTION_DATAFORMAT, &video_format);
-
memset (&bsInfo, 0, sizeof (SFrameBSInfo));
ret = priv->encoder->EncodeParameterSets (&bsInfo);