mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-06 23:48:53 +00:00
ext/dv/gstdvdec.c: Set EOS on the element when processing an EOS event.
Original commit message from CVS: * ext/dv/gstdvdec.c: (gst_dvdec_handle_sink_event): Set EOS on the element when processing an EOS event. * ext/speex/gstspeexdec.h: * ext/speex/gstspeexenc.h: Only keep a const ptr to the mode * gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps_with_data), (gst_riff_create_audio_template_caps): Allow WMAV3, with up to 6 channels. * gst/asfdemux/gstasfmux.c: (gst_asfmux_request_new_pad): Don't call gst_pad_set_event_function on a sink pad. * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_subpicture_stream), (gst_dvd_demux_set_cur_audio), (gst_dvd_demux_set_cur_subpicture): Copy the explicit caps that were set across to the cur_* pads, instead of trying to use a possibly non-existent negotiated caps. Reset the type of subpicture pads to UNKNOWN after calling init_stream, so that the caps get set.
This commit is contained in:
parent
edc08f902c
commit
eefd35e846
4 changed files with 30 additions and 8 deletions
21
ChangeLog
21
ChangeLog
|
@ -1,3 +1,24 @@
|
||||||
|
2004-10-30 Jan Schmidt <thaytan@mad.scientist.com>
|
||||||
|
|
||||||
|
* ext/dv/gstdvdec.c: (gst_dvdec_handle_sink_event):
|
||||||
|
Set EOS on the element when processing an EOS event.
|
||||||
|
* ext/speex/gstspeexdec.h:
|
||||||
|
* ext/speex/gstspeexenc.h:
|
||||||
|
Only keep a const ptr to the mode
|
||||||
|
* gst-libs/gst/riff/riff-media.c:
|
||||||
|
(gst_riff_create_audio_caps_with_data),
|
||||||
|
(gst_riff_create_audio_template_caps):
|
||||||
|
Allow WMAV3, with up to 6 channels.
|
||||||
|
* gst/asfdemux/gstasfmux.c: (gst_asfmux_request_new_pad):
|
||||||
|
Don't call gst_pad_set_event_function on a sink pad.
|
||||||
|
* gst/mpegstream/gstdvddemux.c:
|
||||||
|
(gst_dvd_demux_get_subpicture_stream),
|
||||||
|
(gst_dvd_demux_set_cur_audio), (gst_dvd_demux_set_cur_subpicture):
|
||||||
|
Copy the explicit caps that were set across to the cur_* pads,
|
||||||
|
instead of trying to use a possibly non-existent negotiated caps.
|
||||||
|
Reset the type of subpicture pads to UNKNOWN after calling init_stream,
|
||||||
|
so that the caps get set.
|
||||||
|
|
||||||
2004-10-29 Martin Pitt <martin.pitt@canonical.com>
|
2004-10-29 Martin Pitt <martin.pitt@canonical.com>
|
||||||
|
|
||||||
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
|
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
|
||||||
|
|
|
@ -459,6 +459,8 @@ gst_riff_create_audio_caps_with_data (guint16 codec_id,
|
||||||
{
|
{
|
||||||
gint version = (codec_id - GST_RIFF_WAVE_FORMAT_WMAV1) + 1;
|
gint version = (codec_id - GST_RIFF_WAVE_FORMAT_WMAV1) + 1;
|
||||||
|
|
||||||
|
channels_max = 6;
|
||||||
|
|
||||||
block_align = TRUE;
|
block_align = TRUE;
|
||||||
|
|
||||||
caps = gst_caps_new_simple ("audio/x-wma",
|
caps = gst_caps_new_simple ("audio/x-wma",
|
||||||
|
@ -613,6 +615,7 @@ gst_riff_create_audio_template_caps (void)
|
||||||
GST_RIFF_WAVE_FORMAT_DVI_ADPCM,
|
GST_RIFF_WAVE_FORMAT_DVI_ADPCM,
|
||||||
GST_RIFF_WAVE_FORMAT_WMAV1,
|
GST_RIFF_WAVE_FORMAT_WMAV1,
|
||||||
GST_RIFF_WAVE_FORMAT_WMAV2,
|
GST_RIFF_WAVE_FORMAT_WMAV2,
|
||||||
|
GST_RIFF_WAVE_FORMAT_WMAV3,
|
||||||
/* FILL ME */
|
/* FILL ME */
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
|
@ -585,7 +585,6 @@ gst_asfmux_request_new_pad (GstElement * element,
|
||||||
G_CALLBACK (gst_asfmux_pad_unlink), (gpointer) asfmux);
|
G_CALLBACK (gst_asfmux_pad_unlink), (gpointer) asfmux);
|
||||||
gst_pad_set_link_function (newpad, linkfunc);
|
gst_pad_set_link_function (newpad, linkfunc);
|
||||||
gst_element_add_pad (element, newpad);
|
gst_element_add_pad (element, newpad);
|
||||||
gst_pad_set_event_function (newpad, gst_asfmux_handle_event);
|
|
||||||
gst_pad_set_event_mask_function (newpad, gst_asfmux_get_event_masks);
|
gst_pad_set_event_mask_function (newpad, gst_asfmux_get_event_masks);
|
||||||
|
|
||||||
return newpad;
|
return newpad;
|
||||||
|
|
|
@ -645,11 +645,11 @@ gst_dvd_demux_get_subpicture_stream (GstMPEGDemux * mpeg_demux,
|
||||||
|
|
||||||
if (str == NULL) {
|
if (str == NULL) {
|
||||||
str = g_new0 (GstMPEGStream, 1);
|
str = g_new0 (GstMPEGStream, 1);
|
||||||
str->type = GST_DVD_DEMUX_SUBP_UNKNOWN;
|
|
||||||
|
|
||||||
name = g_strdup_printf ("subpicture_%02d", stream_nr);
|
name = g_strdup_printf ("subpicture_%02d", stream_nr);
|
||||||
DEMUX_CLASS (dvd_demux)->init_stream (mpeg_demux, type, str, stream_nr,
|
DEMUX_CLASS (dvd_demux)->init_stream (mpeg_demux, type, str, stream_nr,
|
||||||
name, CLASS (dvd_demux)->subpicture_template);
|
name, CLASS (dvd_demux)->subpicture_template);
|
||||||
|
str->type = GST_DVD_DEMUX_SUBP_UNKNOWN;
|
||||||
g_free (name);
|
g_free (name);
|
||||||
add_pad = TRUE;
|
add_pad = TRUE;
|
||||||
|
|
||||||
|
@ -886,7 +886,7 @@ gst_dvd_demux_set_cur_audio (GstDVDDemux * dvd_demux, gint stream_nr)
|
||||||
str = mpeg_demux->audio_stream[stream_nr];
|
str = mpeg_demux->audio_stream[stream_nr];
|
||||||
if (str != NULL) {
|
if (str != NULL) {
|
||||||
/* (Re)set the caps in the "current" pad. */
|
/* (Re)set the caps in the "current" pad. */
|
||||||
caps = gst_pad_get_negotiated_caps (str->pad);
|
caps = GST_RPAD_EXPLICIT_CAPS (str->pad);
|
||||||
if (caps != NULL) {
|
if (caps != NULL) {
|
||||||
gst_pad_set_explicit_caps (dvd_demux->cur_audio, caps);
|
gst_pad_set_explicit_caps (dvd_demux->cur_audio, caps);
|
||||||
}
|
}
|
||||||
|
@ -898,7 +898,6 @@ static void
|
||||||
gst_dvd_demux_set_cur_subpicture (GstDVDDemux * dvd_demux, gint stream_nr)
|
gst_dvd_demux_set_cur_subpicture (GstDVDDemux * dvd_demux, gint stream_nr)
|
||||||
{
|
{
|
||||||
GstMPEGStream *str;
|
GstMPEGStream *str;
|
||||||
const GstCaps *caps = NULL;
|
|
||||||
|
|
||||||
g_return_if_fail (stream_nr >= -1 &&
|
g_return_if_fail (stream_nr >= -1 &&
|
||||||
stream_nr < GST_DVD_DEMUX_NUM_SUBPICTURE_STREAMS);
|
stream_nr < GST_DVD_DEMUX_NUM_SUBPICTURE_STREAMS);
|
||||||
|
@ -914,13 +913,13 @@ gst_dvd_demux_set_cur_subpicture (GstDVDDemux * dvd_demux, gint stream_nr)
|
||||||
|
|
||||||
str = dvd_demux->subpicture_stream[stream_nr];
|
str = dvd_demux->subpicture_stream[stream_nr];
|
||||||
if (str != NULL) {
|
if (str != NULL) {
|
||||||
|
GstCaps *caps = NULL;
|
||||||
|
|
||||||
/* (Re)set the caps in the "current" pad. */
|
/* (Re)set the caps in the "current" pad. */
|
||||||
caps = gst_pad_get_negotiated_caps (str->pad);
|
caps = GST_RPAD_EXPLICIT_CAPS (str->pad);
|
||||||
if (caps != NULL) {
|
|
||||||
gst_pad_set_explicit_caps (dvd_demux->cur_subpicture, caps);
|
gst_pad_set_explicit_caps (dvd_demux->cur_subpicture, caps);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
|
|
Loading…
Reference in a new issue