...
 
Commits (14)
gst-vaapi NEWS -- summary of changes. 2015-07-15
gstreamer-vaapi NEWS -- summary of changes. 2015-09-22
Copyright (C) 2010-2011 Splitted-Desktop Systems
Copyright (C) 2011-2013 Intel Corporation
Copyright (C) 2011 Collabora
Version 0.6.1 - 22.Sep.2015
* Fix a possible segmentation fault using gstreamer 1.4 [#752558]
* Don't lost the GLTextureUpload meta on seek [#752929]
* Remove in debian rules the option --with-gstreamer-api [#753618]
* Add in debian rules yasm as dependency
* Keep a copy of input codec state [#753914]
* Renegotiate if the input caps are not equal [#750835]
* Fix the FPS denominator and numerator [#755040]
* Initialize H264 PPS's slice_group_id [#754845]
* Verify for H264 MVC and H265 SPS when running configure [#754845]
* Link libgstvaapi_parse.so against libgstcodecparsers.so [#754845]
Version 0.6 - 15.Jul.2015
* Add HEVC(H265) Decoder
* Add HEVC(H265) Encoder
......
# gstreamer-vaapi package version number
m4_define([gst_vaapi_major_version], [0])
m4_define([gst_vaapi_minor_version], [6])
m4_define([gst_vaapi_micro_version], [0])
m4_define([gst_vaapi_micro_version], [1])
m4_define([gst_vaapi_pre_version], [0])
m4_define([gst_vaapi_version],
[gst_vaapi_major_version.gst_vaapi_minor_version.gst_vaapi_micro_version])
......@@ -320,7 +320,11 @@ AC_CACHE_CHECK([for H.264 parser],
GstH264Profile profile = GST_H264_PROFILE_HIGH;
slice_hdr.n_emulation_prevention_bytes = 0;
vui_params.par_n = 0;
vui_params.par_d = 0;]])],
vui_params.par_d = 0;
GstH264SPS sps;
sps.extension.mvc.num_views_minus1 = 1;
GstH264NalUnit nalu;
nalu.extension_type = GST_H264_NAL_EXTENSION_MVC;]])],
[ac_cv_have_gst_h264_parser="yes"],
[ac_cv_have_gst_h264_parser="no"]
)
......@@ -389,7 +393,10 @@ AC_CACHE_CHECK([for H.265 parser],
GstH265Profile profile = GST_H265_PROFILE_MAIN_STILL_PICTURE;
slice_hdr.n_emulation_prevention_bytes = 0;
vui_params.par_n = 0;
vui_params.par_d = 0;]])],
vui_params.par_d = 0;
GstH265SPS sps;
sps.crop_rect_x = 0;
sps.crop_rect_width = 0;]])],
[ac_cv_have_gst_h265_parser="yes"],
[ac_cv_have_gst_h265_parser="no"]
)
......
......@@ -12,7 +12,8 @@ Build-Depends: debhelper (>= 5),
@USE_X11_TRUE@ libx11-dev, libxrandr-dev,
@USE_GLX_TRUE@ libgl-dev,
@USE_WAYLAND_TRUE@ libwayland-dev (>= @WAYLAND_API_VERSION@),
libva-dev (>= @LIBVA_PACKAGE_VERSION@)
libva-dev (>= @LIBVA_PACKAGE_VERSION@),
yasm
Build-Depends-Indep: gtk-doc-tools (>= @GTKDOC_VERSION@)
Standards-Version: 3.7.2
......
......@@ -5,9 +5,6 @@ include /usr/share/cdbs/1/class/autotools.mk
include /usr/share/cdbs/1/rules/simple-patchsys.mk
include /usr/share/cdbs/1/rules/utils.mk
GST_API_VERSION = $(shell echo "$(DEB_SOURCE_PACKAGE)" | \
sed -n '/gstreamer\([0-9][0-9.]*\)-vaapi/s//\1/p')
# Allow SMP build
ifeq ($(DEBIAN_BUILD_NCPUS),)
DEBIAN_BUILD_NCPUS = $(shell /usr/bin/getconf _NPROCESSORS_ONLN)
......@@ -19,8 +16,7 @@ MAKE += $(EXTRA_MAKE_FLAGS)
# Allow HTML documentation build
indep_conf_flags = \
--with-html-dir=\$${prefix}/share/doc/$(DEB_SOURCE_PACKAGE) \
--with-gstreamer-api=$(GST_API_VERSION)
--with-html-dir=\$${prefix}/share/doc/$(DEB_SOURCE_PACKAGE)
# only build the docs if gtk-doc-tools is installed, i.e. binary-indep is
# called
......
......@@ -1685,6 +1685,7 @@ parse_pps(GstVaapiDecoderH264 *decoder, GstVaapiDecoderUnit *unit)
standard but that should get a default value anyway */
pps->slice_group_map_type = 0;
pps->slice_group_change_rate_minus1 = 0;
pps->slice_group_id = NULL;
result = gst_h264_parser_parse_pps(priv->parser, &pi->nalu, pps);
if (result != GST_H264_PARSER_OK)
......
......@@ -212,14 +212,18 @@ libgstvaapi_parse_la_CFLAGS = \
$(GST_CFLAGS) \
$(GST_BASE_CFLAGS) \
$(GST_PLUGINS_BASE_CFLAGS) \
$(GST_VIDEO_CFLAGS)
$(GST_VIDEO_CFLAGS) \
$(GST_CODEC_PARSERS_CFLAGS) \
$(NULL)
libgstvaapi_parse_la_LIBADD = \
$(top_builddir)/gst-libs/gst/codecparsers/libgstvaapi-codecparsers.la \
$(GST_LIBS) \
$(GST_BASE_LIBS) \
$(GST_PLUGINS_BASE_LIBS) \
$(GST_VIDEO_LIBS) -lgstpbutils-$(GST_PKG_VERSION)
$(GST_VIDEO_LIBS) -lgstpbutils-$(GST_PKG_VERSION) \
$(GST_CODEC_PARSERS_LIBS) \
$(NULL)
libgstvaapi_parse_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstvaapi_parse_la_LIBTOOLFLAGS = --tag=disable-static
......
......@@ -25,4 +25,27 @@
#include "gst/vaapi/sysdeps.h"
#if !GST_CHECK_VERSION (1,5,0)
static inline GstBuffer *
gst_buffer_copy_deep (const GstBuffer * buffer)
{
GstBuffer *copy;
g_return_val_if_fail (buffer != NULL, NULL);
copy = gst_buffer_new ();
if (!gst_buffer_copy_into (copy, (GstBuffer *) buffer,
GST_BUFFER_COPY_ALL | GST_BUFFER_COPY_DEEP, 0, -1))
gst_buffer_replace (&copy, NULL);
#if GST_CHECK_VERSION (1,4,0)
if (copy)
GST_BUFFER_FLAG_UNSET (copy, GST_BUFFER_FLAG_TAG_MEMORY);
#endif
return copy;
}
#endif
#endif /* GST_COMPAT_H */
......@@ -140,6 +140,22 @@ gst_vaapi_decoder_state_changed (GstVaapiDecoder * decoder,
return;
}
static GstVideoCodecState *
copy_video_codec_state (const GstVideoCodecState * in_state)
{
GstVideoCodecState *state;
g_return_val_if_fail (in_state != NULL, NULL);
state = g_slice_new0 (GstVideoCodecState);
state->ref_count = 1;
state->info = in_state->info;
state->caps = gst_caps_copy (in_state->caps);
state->codec_data = gst_buffer_copy_deep (in_state->codec_data);
return state;
}
static gboolean
gst_vaapi_decode_input_state_replace (GstVaapiDecode * decode,
const GstVideoCodecState * new_state)
......@@ -147,15 +163,19 @@ gst_vaapi_decode_input_state_replace (GstVaapiDecode * decode,
if (decode->input_state) {
if (new_state) {
const GstCaps *curcaps = decode->input_state->caps;
if (gst_caps_is_always_compatible (curcaps, new_state->caps))
/* If existing caps are equal of the new state, keep the
* existing state without renegotiating. */
if (gst_caps_is_strictly_equal (curcaps, new_state->caps)) {
GST_DEBUG ("Ignoring new caps %" GST_PTR_FORMAT
" since are equal to current ones", new_state->caps);
return FALSE;
}
}
gst_video_codec_state_unref (decode->input_state);
}
if (new_state)
decode->input_state = gst_video_codec_state_ref
((GstVideoCodecState *) new_state);
decode->input_state = copy_video_codec_state (new_state);
else
decode->input_state = NULL;
......@@ -232,8 +252,8 @@ gst_vaapidecode_update_src_caps (GstVaapiDecode * decode)
gint fps_d = GST_VIDEO_INFO_FPS_D (vi);
if (fps_n <= 0 || fps_d <= 0) {
GST_DEBUG_OBJECT (decode, "forcing 25/1 framerate for latency calculation");
fps_n = 1;
fps_d = 25;
fps_n = 25;
fps_d = 1;
}
/* For parsing/preparation purposes we'd need at least 1 frame
......@@ -698,8 +718,6 @@ gst_vaapidecode_reset_full (GstVaapiDecode * decode, GstCaps * caps,
{
GstVaapiCodec codec;
decode->has_texture_upload_meta = FALSE;
/* Reset tracked frame size */
decode->current_frame_size = 0;
......
......@@ -461,10 +461,12 @@ gst_vaapi_find_preferred_caps_feature (GstPad * pad, GstVideoFormat format,
GstCaps *gl_texture_upload_caps = NULL;
GstCaps *sysmem_caps = NULL;
GstCaps *vaapi_caps = NULL;
GstCaps *out_caps;
GstCaps *out_caps, *templ;
GstVideoFormat out_format;
out_caps = gst_pad_get_allowed_caps (pad);
templ = gst_pad_get_pad_template_caps (pad);
out_caps = gst_pad_peer_query_caps (pad, templ);
gst_caps_unref (templ);
if (!out_caps) {
feature = GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED;
goto cleanup;
......