avformat_find_stream_info was introduced in Libav avformat 53.3,
but it was only merged to FFmpeg in avformat 53.6.
In Libav avformat 53.3-53.5 av_find_stream_info is not removed
(only deprecated), so this shouldn't break building with that.
Searching in directory names can yield confusing results; e.g. if
the input is "jpeg2000/image1.jp2", it will infer the pattern
"jpeg%04d/image1.jp2", which is likely not what the user intended.
If the user really desires for the variable part to be in the
directory name, it can always use an explicit pattern.
Our prebuilt FFmpeg Windows binaries don't have PNG support enabled
(because that requires zlib), so that makes a PNG image a bad choice
for this test.
When FFmpeg doesn't support PNG, VideoCapture falls back to the
"image sequence" implementation, which doesn't work for single images.
- crosses initializations in "cap_ximea.cpp" (which also contained some awfull "goto" instructions)
- the "CMAKE_CL_64" variable is not initialized when using mingw
PR#1039 modified to be able to merge on branch 2.4
Previously, VideoCapture::retrieve would return a Mat that referenced
the internal IplImage. Since the latter is rewritten every time a
frame is captured, it means that if the user captures two frames in a row,
the first frame would reference nothing. Similar if a user captures a frame,
then destroys the VideoCapture instance.
Note that the other branch of the if isn't affected, since flip allocates
a new Mat.
From commit dd74a851, to be exact. Now cap_ffmpeg.cpp should actually
build if HAVE_FFMPEG is true.
Also modified some gpu sources in a similar manner.
The gtk3 resize functions fail to shrink the window after it has been
resized. This edit changes this and allows the window to be shrunk
back to its original size.
This edit also cleans up the draw/expose functions.
A new option WITH_GTK3 has been added to the cmake configure system to enable compilation under Gtk version 3.The flag HAVE_GTK3 is also introduced to select the new Gtk3 code in the source files. (Gtk2 is disbled when Gtk3 is selected).
window_gtk.cpp has been modified to remove obsolete (and deleted from libgtk 3) and introduce new Gtk3 code in its place when compiled for Gtk3.
To compile for Gtk2, disable WITH_GTK3 in cmake. To build for Gtk3 both WITH_GTK and WITH_GTK3 must be selected.
This update replaces depreciated Gtk1.x symbols with Gtk2.x symbols in
preparation for adding Gtk3 support. These edits aim to be fully
compatible with Gtk2.x, allowing backward compatibility.
The following symbols have been replaced in this commit:
Gtk symbols that have been moved to the Gdk library:
- GtkType -> Gtype
- GTK_CHECK_CAST -> G_TYPE_CHECK_INSTANCE_CAST
- GTK_CHECK_TYPE -> G_TYPE_CHECK_INSTANCE_TYPE
- gtk_signal_connect -> g_signal_connect
- GTK_SIGNAL_FUNC -> G_CALLBACK
- gtk_type_class -> g_type_class_peek
- gtk_type_new-> g_object_new
- GtkTypeInfo -> GtypeInfo (Not required for
g_type_register_static_simple)
- gtk_type_unique -> g_type_register_static_simple
- gdk_draw_image_rgb -> replaced by gdk_cairo_source_pixbuf
NB: This requires porting to use cairo contexts and GdkPixbufs.
The following gtk symbols are changed for their modern equivalent:
- GTK_WIDGET_REALIZED -> gtk_widget_get_realized
- GTK_OBJECT_FLAGS -> gtk_widget_set_realized
Symbols without replacement:
- gtk_range_set_update_policy -> No replacement; as default policy is
set to continuous we can delete this line.
libpng 1.5+ recommends a call to png_set_interlace_handling() if you use
png_read_update_info and png_read_image. It will generate a warning
without it.