mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
ext/dv/gstdvdec.*: Make sure we renegotiate aspect ratio when the camera switches.
Original commit message from CVS: * 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.
This commit is contained in:
parent
cf398c5fad
commit
cda34e6a8d
3 changed files with 19 additions and 5 deletions
|
@ -1,3 +1,10 @@
|
|||
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),
|
||||
|
|
|
@ -400,6 +400,7 @@ gst_dvdec_init (GstDVDec * dvdec)
|
|||
dvdec->height = 0;
|
||||
dvdec->frequency = 0;
|
||||
dvdec->channels = 0;
|
||||
dvdec->wide = FALSE;
|
||||
dvdec->drop_factor = 1;
|
||||
|
||||
dvdec->clamp_luma = FALSE;
|
||||
|
@ -771,7 +772,7 @@ gst_dvdec_video_getcaps (GstPad * pad)
|
|||
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 {
|
||||
|
@ -779,7 +780,7 @@ gst_dvdec_video_getcaps (GstPad * pad)
|
|||
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 {
|
||||
|
@ -882,6 +883,7 @@ gst_dvdec_loop (GstElement * element)
|
|||
guint32 length, got_bytes;
|
||||
GstClockTime ts, duration;
|
||||
gdouble fps;
|
||||
gboolean wide;
|
||||
|
||||
dvdec = GST_DVDEC (element);
|
||||
|
||||
|
@ -912,6 +914,7 @@ gst_dvdec_loop (GstElement * 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;
|
||||
|
@ -1002,9 +1005,11 @@ gst_dvdec_loop (GstElement * element)
|
|||
}
|
||||
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));
|
||||
|
@ -1038,6 +1043,7 @@ gst_dvdec_loop (GstElement * element)
|
|||
} else {
|
||||
dvdec->height = height;
|
||||
dvdec->framerate = fps;
|
||||
dvdec->wide = wide;
|
||||
}
|
||||
|
||||
end:
|
||||
|
|
|
@ -59,8 +59,9 @@ struct _GstDVDec {
|
|||
gboolean PAL;
|
||||
gdouble framerate;
|
||||
gint height;
|
||||
gint frequency;
|
||||
gint channels;
|
||||
gint frequency;
|
||||
gint channels;
|
||||
gboolean wide;
|
||||
|
||||
gint length;
|
||||
gint framecount;
|
||||
|
|
Loading…
Reference in a new issue