mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-24 18:51:11 +00:00
Merge branch 'master' into 0.11
This commit is contained in:
commit
c8792778f8
16 changed files with 82 additions and 1 deletions
|
@ -848,7 +848,18 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux)
|
|||
|
||||
/* if we're not yet in data mode, ensure we're setup on the first packet */
|
||||
if (!pad->have_type) {
|
||||
pad->have_type = gst_ogg_stream_setup_map (&pad->map, &packet);
|
||||
/* Use headers in caps, if any; this will allow us to be resilient
|
||||
* to starting streams on the fly, and some streams (like VP8
|
||||
* at least) do not send headers packets, as other muxers don't
|
||||
* expect/need them. */
|
||||
pad->have_type =
|
||||
gst_ogg_stream_setup_map_from_caps_headers (&pad->map,
|
||||
GST_BUFFER_CAPS (buf));
|
||||
|
||||
if (!pad->have_type) {
|
||||
/* fallback on the packet */
|
||||
pad->have_type = gst_ogg_stream_setup_map (&pad->map, &packet);
|
||||
}
|
||||
if (!pad->have_type) {
|
||||
GST_ERROR_OBJECT (pad, "mapper didn't recognise input stream "
|
||||
"(pad caps: %" GST_PTR_FORMAT ")", GST_PAD_CAPS (pad));
|
||||
|
|
|
@ -2044,3 +2044,58 @@ gst_ogg_stream_setup_map (GstOggStream * pad, ogg_packet * packet)
|
|||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
gst_ogg_stream_setup_map_from_caps_headers (GstOggStream * pad,
|
||||
const GstCaps * caps)
|
||||
{
|
||||
const GstStructure *structure;
|
||||
const GstBuffer *buf;
|
||||
const GValue *streamheader;
|
||||
const GValue *first_element;
|
||||
ogg_packet packet;
|
||||
|
||||
GST_INFO ("Checking streamheader on caps %" GST_PTR_FORMAT, caps);
|
||||
|
||||
if (caps == NULL)
|
||||
return FALSE;
|
||||
|
||||
structure = gst_caps_get_structure (caps, 0);
|
||||
streamheader = gst_structure_get_value (structure, "streamheader");
|
||||
|
||||
if (streamheader == NULL) {
|
||||
GST_LOG ("no streamheader field in caps %" GST_PTR_FORMAT, caps);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!GST_VALUE_HOLDS_ARRAY (streamheader)) {
|
||||
GST_ERROR ("streamheader field not an array, caps: %" GST_PTR_FORMAT, caps);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (gst_value_array_get_size (streamheader) == 0) {
|
||||
GST_ERROR ("empty streamheader field in caps %" GST_PTR_FORMAT, caps);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
first_element = gst_value_array_get_value (streamheader, 0);
|
||||
|
||||
if (!GST_VALUE_HOLDS_BUFFER (first_element)) {
|
||||
GST_ERROR ("first streamheader not a buffer, caps: %" GST_PTR_FORMAT, caps);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
buf = gst_value_get_buffer (first_element);
|
||||
if (buf == NULL || GST_BUFFER_SIZE (buf) == 0) {
|
||||
GST_ERROR ("invalid first streamheader buffer");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
GST_MEMDUMP ("streamheader", GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf));
|
||||
|
||||
packet.packet = GST_BUFFER_DATA (buf);
|
||||
packet.bytes = GST_BUFFER_SIZE (buf);
|
||||
|
||||
GST_INFO ("Found headers on caps, using those to determine type");
|
||||
return gst_ogg_stream_setup_map (pad, &packet);
|
||||
}
|
||||
|
|
|
@ -106,6 +106,8 @@ struct _GstOggStream
|
|||
|
||||
|
||||
gboolean gst_ogg_stream_setup_map (GstOggStream * pad, ogg_packet *packet);
|
||||
gboolean gst_ogg_stream_setup_map_from_caps_headers (GstOggStream * pad,
|
||||
const GstCaps * caps);
|
||||
GstClockTime gst_ogg_stream_get_end_time_for_granulepos (GstOggStream *pad,
|
||||
gint64 granulepos);
|
||||
GstClockTime gst_ogg_stream_get_start_time_for_granulepos (GstOggStream *pad,
|
||||
|
|
|
@ -40,6 +40,7 @@ gir_cincludes=$(patsubst %,--c-include='gst/app/%',$(libgstapp_@GST_MAJORMINOR@i
|
|||
|
||||
GstApp-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_MAJORMINOR@.la
|
||||
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
|
||||
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
|
||||
$(INTROSPECTION_SCANNER) -v --namespace GstApp \
|
||||
--nsversion=@GST_MAJORMINOR@ \
|
||||
--strip-prefix=Gst \
|
||||
|
|
|
@ -69,6 +69,7 @@ gir_cincludes+=$(patsubst %,--c-include='gst/audio/%',$(nodist_libgstaudio_@GST_
|
|||
|
||||
GstAudio-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_MAJORMINOR@.la
|
||||
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
|
||||
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
|
||||
$(INTROSPECTION_SCANNER) -v --namespace GstAudio \
|
||||
--nsversion=@GST_MAJORMINOR@ \
|
||||
--strip-prefix=Gst \
|
||||
|
|
|
@ -24,6 +24,7 @@ gir_cincludes=$(patsubst %,--c-include='gst/cdda/%',$(libgstcdda_@GST_MAJORMINOR
|
|||
|
||||
GstCdda-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstcdda-@GST_MAJORMINOR@.la
|
||||
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
|
||||
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
|
||||
$(INTROSPECTION_SCANNER) -v --namespace GstCdda \
|
||||
--nsversion=@GST_MAJORMINOR@ \
|
||||
--strip-prefix=Gst \
|
||||
|
|
|
@ -53,6 +53,7 @@ gir_cincludes=$(patsubst %,--c-include='gst/fft/%',$(libgstfft_@GST_MAJORMINOR@_
|
|||
|
||||
GstFft-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_MAJORMINOR@.la
|
||||
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
|
||||
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
|
||||
$(INTROSPECTION_SCANNER) -v --namespace GstFft \
|
||||
--nsversion=@GST_MAJORMINOR@ \
|
||||
--strip-prefix=Gst \
|
||||
|
|
|
@ -82,6 +82,7 @@ gir_cincludes+=$(patsubst %,--c-include='gst/interfaces/%',$(nodist_libgstinterf
|
|||
|
||||
GstInterfaces-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstinterfaces-@GST_MAJORMINOR@.la
|
||||
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
|
||||
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
|
||||
$(INTROSPECTION_SCANNER) -v --namespace GstInterfaces \
|
||||
--nsversion=@GST_MAJORMINOR@ \
|
||||
--strip-prefix=Gst \
|
||||
|
|
|
@ -18,6 +18,7 @@ gir_cincludes=$(patsubst %,--c-include='gst/netbuffer/%',$(libgstnetbufferinclud
|
|||
|
||||
GstNetbuffer-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstnetbuffer-@GST_MAJORMINOR@.la
|
||||
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
|
||||
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
|
||||
$(INTROSPECTION_SCANNER) -v --namespace GstNetbuffer \
|
||||
--nsversion=@GST_MAJORMINOR@ \
|
||||
--strip-prefix=Gst \
|
||||
|
|
|
@ -76,6 +76,7 @@ gir_cincludes+=$(patsubst %,--c-include='gst/pbutils/%',$(nodist_libgstpbutils_@
|
|||
|
||||
GstPbutils-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_MAJORMINOR@.la
|
||||
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
|
||||
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
|
||||
$(INTROSPECTION_SCANNER) -v --namespace GstPbutils \
|
||||
--nsversion=@GST_MAJORMINOR@ \
|
||||
--strip-prefix=Gst \
|
||||
|
|
|
@ -28,6 +28,7 @@ gir_cincludes=$(patsubst %,--c-include='gst/riff/%',$(libgstriff_@GST_MAJORMINOR
|
|||
|
||||
GstRiff-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstriff-@GST_MAJORMINOR@.la
|
||||
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
|
||||
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
|
||||
$(INTROSPECTION_SCANNER) -v --namespace GstRiff \
|
||||
--nsversion=@GST_MAJORMINOR@ \
|
||||
--strip-prefix=Gst \
|
||||
|
|
|
@ -29,6 +29,7 @@ gir_cincludes=$(patsubst %,--c-include='gst/rtp/%',$(libgstrtpinclude_HEADERS))
|
|||
|
||||
GstRtp-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_MAJORMINOR@.la
|
||||
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
|
||||
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
|
||||
$(INTROSPECTION_SCANNER) -v --namespace GstRtp \
|
||||
--nsversion=@GST_MAJORMINOR@ \
|
||||
--strip-prefix=Gst \
|
||||
|
|
|
@ -61,6 +61,7 @@ gir_cincludes+=$(patsubst %,--c-include='gst/rtsp/%',$(nodist_libgstrtspinclude_
|
|||
|
||||
GstRtsp-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_MAJORMINOR@.la
|
||||
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
|
||||
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
|
||||
$(INTROSPECTION_SCANNER) -v --namespace GstRtsp \
|
||||
--nsversion=@GST_MAJORMINOR@ \
|
||||
--strip-prefix=Gst \
|
||||
|
|
|
@ -20,6 +20,7 @@ gir_cincludes=$(patsubst %,--c-include='gst/sdp/%',$(libgstsdpinclude_HEADERS))
|
|||
|
||||
GstSdp-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_MAJORMINOR@.la
|
||||
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
|
||||
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
|
||||
$(INTROSPECTION_SCANNER) -v --namespace GstSdp \
|
||||
--nsversion=@GST_MAJORMINOR@ \
|
||||
--strip-prefix=Gst \
|
||||
|
|
|
@ -27,6 +27,7 @@ gir_cincludes=$(patsubst %,--c-include='gst/tag/%',$(libgsttaginclude_HEADERS))
|
|||
|
||||
GstTag-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_MAJORMINOR@.la
|
||||
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
|
||||
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
|
||||
$(INTROSPECTION_SCANNER) -v --namespace GstTag \
|
||||
--nsversion=@GST_MAJORMINOR@ \
|
||||
--strip-prefix=Gst \
|
||||
|
|
|
@ -39,6 +39,7 @@ gir_cincludes+=$(patsubst %,--c-include='gst/video/%',$(nodist_libgstvideo_@GST_
|
|||
|
||||
GstVideo-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_MAJORMINOR@.la
|
||||
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
|
||||
GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
|
||||
$(INTROSPECTION_SCANNER) -v --namespace GstVideo \
|
||||
--nsversion=@GST_MAJORMINOR@ \
|
||||
--strip-prefix=Gst \
|
||||
|
|
Loading…
Reference in a new issue