/*
* Copyright (C) 2010,2011,2012 Samuel Audet
*
* This file is part of JavaCV.
*
* JavaCV is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version (subject to the "Classpath" exception
* as provided in the LICENSE.txt file that accompanied this code).
*
* JavaCV is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with JavaCV. If not, see <http://www.gnu.org/licenses/>.
*
*
* This file was derived from avdevice.h include file from
* FFmpeg 0.11.1, which are covered by the following copyright notice:
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
package com.googlecode.javacv.cpp;
import com.googlecode.javacpp.annotation.Cast;
import com.googlecode.javacpp.annotation.Platform;
import com.googlecode.javacpp.annotation.Properties;
import static com.googlecode.javacpp.Loader.*;
import static com.googlecode.javacv.cpp.avutil.*;
/**
*
* @author Samuel Audet
*/
@Properties({
@Platform(define="__STDC_CONSTANT_MACROS", cinclude="<libavdevice/avdevice.h>",
includepath=genericIncludepath, linkpath=genericLinkpath, link={"avdevice@.54", "avfilter@.2",
"swscale@.2", "swresample@.0", "postproc@.52", "avformat@.54", "avcodec@.54", "avutil@.51"}),
@Platform(value="windows", includepath=windowsIncludepath, linkpath=windowsLinkpath,
preloadpath=windowsPreloadpath, preload="avdevice-54"),
@Platform(value="android", includepath=androidIncludepath, linkpath=androidLinkpath) })
public class avdevice {
static { load(avfilter.class); load(); }
/**
* @file
* @ingroup lavd
* Main libavdevice API header
*/
/**
* @defgroup lavd Special devices muxing/demuxing library
* @{
* Libavdevice is a complementary library to @ref libavf "libavformat". It
* provides various "special" platform-specific muxers and demuxers, e.g. for
* grabbing devices, audio capture and playback etc. As a consequence, the
* (de)muxers in libavdevice are of the AVFMT_NOFILE type (they use their own
* I/O functions). The filename passed to avformat_open_input() often does not
* refer to an actually existing file, but has some special device-specific
* meaning - e.g. for the x11grab device it is the display name.
*
* To use libavdevice, simply call avdevice_register_all() to register all
* compiled muxers and demuxers. They all use standard libavformat API.
* @}
*/
public static final int LIBAVDEVICE_VERSION_MAJOR = 54;
public static final int LIBAVDEVICE_VERSION_MINOR = 0;
public static final int LIBAVDEVICE_VERSION_MICRO = 100;
public static final int LIBAVDEVICE_VERSION_INT = AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR,
LIBAVDEVICE_VERSION_MINOR,
LIBAVDEVICE_VERSION_MICRO);
public static final String LIBAVDEVICE_VERSION = AV_VERSION(LIBAVDEVICE_VERSION_MAJOR,
LIBAVDEVICE_VERSION_MINOR,
LIBAVDEVICE_VERSION_MICRO);
public static final int LIBAVDEVICE_BUILD = LIBAVDEVICE_VERSION_INT;
/**
* Return the LIBAVDEVICE_VERSION_INT constant.
*/
public static native @Cast("unsigned") int avdevice_version();
/**
* Return the libavdevice build-time configuration.
*/
public static native String avdevice_configuration();
/**
* Return the libavdevice license.
*/
public static native String avdevice_license();
/**
* Initialize libavdevice and register all the input and output devices.
* @warning This function is not thread safe.
*/
public static native void avdevice_register_all();
}