+2004-10-18 Wim Taymans <wim@fluendo.com>
+
+ * ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_video_getcaps),
+ (gst_dvdec_video_link), (gst_dvdec_push), (gst_dvdec_loop):
+ * ext/dv/gstdvdec.h:
+ Make sure we renegotiate aspect ratio when the camera switches.
+
2004-10-18 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
dvdec->height = 0;
dvdec->frequency = 0;
dvdec->channels = 0;
+ dvdec->wide = FALSE;
dvdec->drop_factor = 1;
dvdec->clamp_luma = FALSE;
gint par_x, par_y;
if (dvdec->PAL) {
- if (dv_format_wide (dvdec->decoder)) {
+ if (dvdec->wide) {
par_x = PAL_WIDE_PAR_X;
par_y = PAL_WIDE_PAR_Y;
} else {
par_y = PAL_NORMAL_PAR_Y;
}
} else {
- if (dv_format_wide (dvdec->decoder)) {
+ if (dvdec->wide) {
par_x = NTSC_WIDE_PAR_X;
par_y = NTSC_WIDE_PAR_Y;
} else {
guint32 length, got_bytes;
GstClockTime ts, duration;
gdouble fps;
+ gboolean wide;
dvdec = GST_DVDEC (element);
fps = (dvdec->PAL ? PAL_FRAMERATE : NTSC_FRAMERATE);
height = (dvdec->PAL ? PAL_HEIGHT : NTSC_HEIGHT);
length = (dvdec->PAL ? PAL_BUFFER : NTSC_BUFFER);
+ wide = dv_format_wide (dvdec->decoder);
if (length != dvdec->length) {
dvdec->length = length;
}
dvdec->framecount = 0;
- if ((dvdec->framerate != fps) || (dvdec->height != height)) {
+ if ((dvdec->framerate != fps) || (dvdec->height != height)
+ || dvdec->wide != wide) {
dvdec->height = height;
dvdec->framerate = fps;
+ dvdec->wide = wide;
if (GST_PAD_LINK_FAILED (gst_pad_renegotiate (dvdec->videosrcpad))) {
GST_ELEMENT_ERROR (dvdec, CORE, NEGOTIATION, (NULL), (NULL));
} else {
dvdec->height = height;
dvdec->framerate = fps;
+ dvdec->wide = wide;
}
end: