mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 22:36:33 +00:00
ext/ffmpeg/gstffmpegdec.c: Add property for controlling of motion vectors. Fixes #515811.
Original commit message from CVS: Patch by: Damien Lespiau <damien dot lespiau at gmail dot com> * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_class_init), (gst_ffmpegdec_init), (gst_ffmpegdec_setcaps), (gst_ffmpegdec_set_property), (gst_ffmpegdec_get_property): Add property for controlling of motion vectors. Fixes #515811. API: GstFFMpegDec::debug-mv
This commit is contained in:
parent
d5df61ccb7
commit
bebde6f878
3 changed files with 32 additions and 2 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
||||||
|
2008-02-11 Wim Taymans <wim.taymans@collabora.co.uk>
|
||||||
|
|
||||||
|
Patch by: Damien Lespiau <damien dot lespiau at gmail dot com>
|
||||||
|
|
||||||
|
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_class_init),
|
||||||
|
(gst_ffmpegdec_init), (gst_ffmpegdec_setcaps),
|
||||||
|
(gst_ffmpegdec_set_property), (gst_ffmpegdec_get_property):
|
||||||
|
Add property for controlling of motion vectors. Fixes #515811.
|
||||||
|
API: GstFFMpegDec::debug-mv
|
||||||
|
|
||||||
2008-02-08 Edward Hervey <edward.hervey@collabora.co.uk>
|
2008-02-08 Edward Hervey <edward.hervey@collabora.co.uk>
|
||||||
|
|
||||||
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop):
|
* ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop):
|
||||||
|
|
2
common
2
common
|
@ -1 +1 @@
|
||||||
Subproject commit df7f73bd454e0b0ee7870d8c85874aba9329fd2e
|
Subproject commit 05a617c9043ddb78f8578195b18c166d7e1d4c2e
|
|
@ -89,6 +89,7 @@ struct _GstFFMpegDec
|
||||||
gint lowres;
|
gint lowres;
|
||||||
gboolean direct_rendering;
|
gboolean direct_rendering;
|
||||||
gboolean do_padding;
|
gboolean do_padding;
|
||||||
|
gboolean debug_mv;
|
||||||
|
|
||||||
/* QoS stuff *//* with LOCK */
|
/* QoS stuff *//* with LOCK */
|
||||||
gdouble proportion;
|
gdouble proportion;
|
||||||
|
@ -136,6 +137,7 @@ struct _GstFFMpegDecClassParams
|
||||||
#define DEFAULT_SKIPFRAME 0
|
#define DEFAULT_SKIPFRAME 0
|
||||||
#define DEFAULT_DIRECT_RENDERING FALSE
|
#define DEFAULT_DIRECT_RENDERING FALSE
|
||||||
#define DEFAULT_DO_PADDING TRUE
|
#define DEFAULT_DO_PADDING TRUE
|
||||||
|
#define DEFAULT_DEBUG_MV FALSE
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
@ -143,7 +145,9 @@ enum
|
||||||
PROP_LOWRES,
|
PROP_LOWRES,
|
||||||
PROP_SKIPFRAME,
|
PROP_SKIPFRAME,
|
||||||
PROP_DIRECT_RENDERING,
|
PROP_DIRECT_RENDERING,
|
||||||
PROP_DO_PADDING
|
PROP_DO_PADDING,
|
||||||
|
PROP_DEBUG_MV,
|
||||||
|
PROP_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
/* A number of function prototypes are given so we can refer to them later. */
|
/* A number of function prototypes are given so we can refer to them later. */
|
||||||
|
@ -294,6 +298,10 @@ gst_ffmpegdec_class_init (GstFFMpegDecClass * klass)
|
||||||
g_param_spec_boolean ("do-padding", "Do Padding",
|
g_param_spec_boolean ("do-padding", "Do Padding",
|
||||||
"Add 0 padding before decoding data",
|
"Add 0 padding before decoding data",
|
||||||
DEFAULT_DO_PADDING, G_PARAM_READWRITE));
|
DEFAULT_DO_PADDING, G_PARAM_READWRITE));
|
||||||
|
g_object_class_install_property (gobject_class, PROP_DEBUG_MV,
|
||||||
|
g_param_spec_boolean ("debug-mv", "Debug motion vectors",
|
||||||
|
"Whether ffmpeg should print motion vectors on top of the image",
|
||||||
|
DEFAULT_DEBUG_MV, G_PARAM_READWRITE));
|
||||||
}
|
}
|
||||||
|
|
||||||
gstelement_class->change_state = gst_ffmpegdec_change_state;
|
gstelement_class->change_state = gst_ffmpegdec_change_state;
|
||||||
|
@ -335,6 +343,7 @@ gst_ffmpegdec_init (GstFFMpegDec * ffmpegdec)
|
||||||
ffmpegdec->hurry_up = ffmpegdec->lowres = 0;
|
ffmpegdec->hurry_up = ffmpegdec->lowres = 0;
|
||||||
ffmpegdec->direct_rendering = DEFAULT_DIRECT_RENDERING;
|
ffmpegdec->direct_rendering = DEFAULT_DIRECT_RENDERING;
|
||||||
ffmpegdec->do_padding = DEFAULT_DO_PADDING;
|
ffmpegdec->do_padding = DEFAULT_DO_PADDING;
|
||||||
|
ffmpegdec->debug_mv = DEFAULT_DEBUG_MV;
|
||||||
|
|
||||||
ffmpegdec->format.video.fps_n = -1;
|
ffmpegdec->format.video.fps_n = -1;
|
||||||
ffmpegdec->format.video.old_fps_n = -1;
|
ffmpegdec->format.video.old_fps_n = -1;
|
||||||
|
@ -679,6 +688,10 @@ gst_ffmpegdec_setcaps (GstPad * pad, GstCaps * caps)
|
||||||
ffmpegdec->context->lowres = ffmpegdec->lowres;
|
ffmpegdec->context->lowres = ffmpegdec->lowres;
|
||||||
ffmpegdec->context->hurry_up = ffmpegdec->hurry_up;
|
ffmpegdec->context->hurry_up = ffmpegdec->hurry_up;
|
||||||
|
|
||||||
|
/* ffmpeg can draw motion vectors on top of the image (not every decoder
|
||||||
|
* supports it) */
|
||||||
|
ffmpegdec->context->debug_mv = ffmpegdec->debug_mv;
|
||||||
|
|
||||||
/* open codec - we don't select an output pix_fmt yet,
|
/* open codec - we don't select an output pix_fmt yet,
|
||||||
* simply because we don't know! We only get it
|
* simply because we don't know! We only get it
|
||||||
* during playback... */
|
* during playback... */
|
||||||
|
@ -2284,6 +2297,10 @@ gst_ffmpegdec_set_property (GObject * object,
|
||||||
case PROP_DO_PADDING:
|
case PROP_DO_PADDING:
|
||||||
ffmpegdec->do_padding = g_value_get_boolean (value);
|
ffmpegdec->do_padding = g_value_get_boolean (value);
|
||||||
break;
|
break;
|
||||||
|
case PROP_DEBUG_MV:
|
||||||
|
ffmpegdec->debug_mv = ffmpegdec->context->debug_mv =
|
||||||
|
g_value_get_boolean (value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
@ -2309,6 +2326,9 @@ gst_ffmpegdec_get_property (GObject * object,
|
||||||
case PROP_DO_PADDING:
|
case PROP_DO_PADDING:
|
||||||
g_value_set_boolean (value, ffmpegdec->do_padding);
|
g_value_set_boolean (value, ffmpegdec->do_padding);
|
||||||
break;
|
break;
|
||||||
|
case PROP_DEBUG_MV:
|
||||||
|
g_value_set_boolean (value, ffmpegdec->context->debug_mv);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue