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:
Jan Schmidt 2004-10-30 06:44:03 +00:00
parent edc08f902c
commit eefd35e846
4 changed files with 30 additions and 8 deletions

View file

@ -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>
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>

View file

@ -459,6 +459,8 @@ gst_riff_create_audio_caps_with_data (guint16 codec_id,
{
gint version = (codec_id - GST_RIFF_WAVE_FORMAT_WMAV1) + 1;
channels_max = 6;
block_align = TRUE;
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_WMAV1,
GST_RIFF_WAVE_FORMAT_WMAV2,
GST_RIFF_WAVE_FORMAT_WMAV3,
/* FILL ME */
0
};

View file

@ -585,7 +585,6 @@ gst_asfmux_request_new_pad (GstElement * element,
G_CALLBACK (gst_asfmux_pad_unlink), (gpointer) asfmux);
gst_pad_set_link_function (newpad, linkfunc);
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);
return newpad;

View file

@ -645,11 +645,11 @@ gst_dvd_demux_get_subpicture_stream (GstMPEGDemux * mpeg_demux,
if (str == NULL) {
str = g_new0 (GstMPEGStream, 1);
str->type = GST_DVD_DEMUX_SUBP_UNKNOWN;
name = g_strdup_printf ("subpicture_%02d", stream_nr);
DEMUX_CLASS (dvd_demux)->init_stream (mpeg_demux, type, str, stream_nr,
name, CLASS (dvd_demux)->subpicture_template);
str->type = GST_DVD_DEMUX_SUBP_UNKNOWN;
g_free (name);
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];
if (str != NULL) {
/* (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_audio, caps);
}
@ -898,7 +898,6 @@ static void
gst_dvd_demux_set_cur_subpicture (GstDVDDemux * dvd_demux, gint stream_nr)
{
GstMPEGStream *str;
const GstCaps *caps = NULL;
g_return_if_fail (stream_nr >= -1 &&
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];
if (str != NULL) {
GstCaps *caps = NULL;
/* (Re)set the caps in the "current" pad. */
caps = gst_pad_get_negotiated_caps (str->pad);
if (caps != NULL) {
caps = GST_RPAD_EXPLICIT_CAPS (str->pad);
gst_pad_set_explicit_caps (dvd_demux->cur_subpicture, caps);
}
}
}
gboolean