ext/aalib/gstaasink.c: Add fixate function. (bug #131128)

Original commit message from CVS:
* ext/aalib/gstaasink.c: (gst_aasink_fixate), (gst_aasink_init):
Add fixate function. (bug #131128)
* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_init),
(gst_sdlvideosink_fixate):  Add fixate function.
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
Fix attempt to print a non-pointer using GST_PTR_FORMAT.
* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt):
Fix missing break that was causing ulaw to be interpreted as
raw int.
This commit is contained in:
David Schleef 2004-03-06 04:51:15 +00:00
parent 1586deb833
commit a6b4e965a8
2 changed files with 41 additions and 0 deletions

View file

@ -1,3 +1,15 @@
2004-03-05 David Schleef <ds@schleef.org>
* ext/aalib/gstaasink.c: (gst_aasink_fixate), (gst_aasink_init):
Add fixate function. (bug #131128)
* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_init),
(gst_sdlvideosink_fixate): Add fixate function.
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
Fix attempt to print a non-pointer using GST_PTR_FORMAT.
* gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt):
Fix missing break that was causing ulaw to be interpreted as
raw int.
2004-03-05 David Schleef <ds@schleef.org>
* gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_add_slice):

View file

@ -65,6 +65,7 @@ static void gst_sdlvideosink_destroy (GstSDLVideoSink *sdl);
static GstPadLinkReturn
gst_sdlvideosink_sinkconnect (GstPad *pad,
const GstCaps *caps);
static GstCaps * gst_sdlvideosink_fixate (GstPad *pad, const GstCaps *caps);
static void gst_sdlvideosink_chain (GstPad *pad,
GstData *data);
@ -266,6 +267,8 @@ gst_sdlvideosink_init (GstSDLVideoSink *sdlvideosink)
gst_sdlvideosink_chain);
gst_pad_set_link_function (GST_VIDEOSINK_PAD (sdlvideosink),
gst_sdlvideosink_sinkconnect);
gst_pad_set_fixate_function (GST_VIDEOSINK_PAD (sdlvideosink),
gst_sdlvideosink_fixate);
sdlvideosink->width = -1;
sdlvideosink->height = -1;
@ -506,6 +509,32 @@ gst_sdlvideosink_create (GstSDLVideoSink *sdlvideosink)
return TRUE;
}
static GstCaps *
gst_sdlvideosink_fixate (GstPad *pad, const GstCaps *caps)
{
GstStructure *structure;
GstCaps *newcaps;
if (gst_caps_get_size (caps) > 1) return NULL;
newcaps = gst_caps_copy (caps);
structure = gst_caps_get_structure (newcaps, 0);
if (gst_caps_structure_fixate_field_nearest_int (structure, "width", 320)) {
return newcaps;
}
if (gst_caps_structure_fixate_field_nearest_int (structure, "height", 240)) {
return newcaps;
}
if (gst_caps_structure_fixate_field_nearest_double (structure, "framerate",
30.0)) {
return newcaps;
}
gst_caps_free (newcaps);
return NULL;
}
static GstPadLinkReturn
gst_sdlvideosink_sinkconnect (GstPad *pad,
const GstCaps *vscapslist)