-
Notifications
You must be signed in to change notification settings - Fork 72
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #37 from unknownbrackets/ios
Update iOS build to latest
- Loading branch information
Showing
74 changed files
with
5,160 additions
and
934 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
/* | ||
* Direct3D11 HW acceleration | ||
* | ||
* copyright (c) 2009 Laurent Aimar | ||
* copyright (c) 2015 Steve Lhomme | ||
* | ||
* 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 | ||
*/ | ||
|
||
#ifndef AVCODEC_D3D11VA_H | ||
#define AVCODEC_D3D11VA_H | ||
|
||
/** | ||
* @file | ||
* @ingroup lavc_codec_hwaccel_d3d11va | ||
* Public libavcodec D3D11VA header. | ||
*/ | ||
|
||
#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600 | ||
#undef _WIN32_WINNT | ||
#define _WIN32_WINNT 0x0600 | ||
#endif | ||
|
||
#include <stdint.h> | ||
#include <d3d11.h> | ||
|
||
/** | ||
* @defgroup lavc_codec_hwaccel_d3d11va Direct3D11 | ||
* @ingroup lavc_codec_hwaccel | ||
* | ||
* @{ | ||
*/ | ||
|
||
#define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG 1 ///< Work around for Direct3D11 and old UVD/UVD+ ATI video cards | ||
#define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 ///< Work around for Direct3D11 and old Intel GPUs with ClearVideo interface | ||
|
||
/** | ||
* This structure is used to provides the necessary configurations and data | ||
* to the Direct3D11 FFmpeg HWAccel implementation. | ||
* | ||
* The application must make it available as AVCodecContext.hwaccel_context. | ||
*/ | ||
struct AVD3D11VAContext { | ||
/** | ||
* D3D11 decoder object | ||
*/ | ||
ID3D11VideoDecoder *decoder; | ||
|
||
/** | ||
* D3D11 VideoContext | ||
*/ | ||
ID3D11VideoContext *video_context; | ||
|
||
/** | ||
* D3D11 configuration used to create the decoder | ||
*/ | ||
D3D11_VIDEO_DECODER_CONFIG *cfg; | ||
|
||
/** | ||
* The number of surface in the surface array | ||
*/ | ||
unsigned surface_count; | ||
|
||
/** | ||
* The array of Direct3D surfaces used to create the decoder | ||
*/ | ||
ID3D11VideoDecoderOutputView **surface; | ||
|
||
/** | ||
* A bit field configuring the workarounds needed for using the decoder | ||
*/ | ||
uint64_t workaround; | ||
|
||
/** | ||
* Private to the FFmpeg AVHWAccel implementation | ||
*/ | ||
unsigned report_id; | ||
}; | ||
|
||
/** | ||
* @} | ||
*/ | ||
|
||
#endif /* AVCODEC_D3D11VA_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
/* | ||
* 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 | ||
*/ | ||
|
||
#ifndef AVCODEC_DV_PROFILE_H | ||
#define AVCODEC_DV_PROFILE_H | ||
|
||
#include <stdint.h> | ||
|
||
#include "libavutil/pixfmt.h" | ||
#include "libavutil/rational.h" | ||
#include "avcodec.h" | ||
|
||
/* minimum number of bytes to read from a DV stream in order to | ||
* determine the profile */ | ||
#define DV_PROFILE_BYTES (6 * 80) /* 6 DIF blocks */ | ||
|
||
|
||
/* | ||
* AVDVProfile is used to express the differences between various | ||
* DV flavors. For now it's primarily used for differentiating | ||
* 525/60 and 625/50, but the plans are to use it for various | ||
* DV specs as well (e.g. SMPTE314M vs. IEC 61834). | ||
*/ | ||
typedef struct AVDVProfile { | ||
int dsf; /* value of the dsf in the DV header */ | ||
int video_stype; /* stype for VAUX source pack */ | ||
int frame_size; /* total size of one frame in bytes */ | ||
int difseg_size; /* number of DIF segments per DIF channel */ | ||
int n_difchan; /* number of DIF channels per frame */ | ||
AVRational time_base; /* 1/framerate */ | ||
int ltc_divisor; /* FPS from the LTS standpoint */ | ||
int height; /* picture height in pixels */ | ||
int width; /* picture width in pixels */ | ||
AVRational sar[2]; /* sample aspect ratios for 4:3 and 16:9 */ | ||
enum AVPixelFormat pix_fmt; /* picture pixel format */ | ||
int bpm; /* blocks per macroblock */ | ||
const uint8_t *block_sizes; /* AC block sizes, in bits */ | ||
int audio_stride; /* size of audio_shuffle table */ | ||
int audio_min_samples[3]; /* min amount of audio samples */ | ||
/* for 48kHz, 44.1kHz and 32kHz */ | ||
int audio_samples_dist[5]; /* how many samples are supposed to be */ | ||
/* in each frame in a 5 frames window */ | ||
const uint8_t (*audio_shuffle)[9]; /* PCM shuffling table */ | ||
} AVDVProfile; | ||
|
||
#if FF_API_DV_FRAME_PROFILE | ||
/** | ||
* @deprecated use av_dv_frame_profile() | ||
*/ | ||
attribute_deprecated | ||
const AVDVProfile* avpriv_dv_frame_profile2(AVCodecContext* codec, const AVDVProfile *sys, | ||
const uint8_t* frame, unsigned buf_size); | ||
#endif | ||
|
||
/** | ||
* Get a DV profile for the provided compressed frame. | ||
* | ||
* @param sys the profile used for the previous frame, may be NULL | ||
* @param frame the compressed data buffer | ||
* @param buf_size size of the buffer in bytes | ||
* @return the DV profile for the supplied data or NULL on failure | ||
*/ | ||
const AVDVProfile *av_dv_frame_profile(const AVDVProfile *sys, | ||
const uint8_t *frame, unsigned buf_size); | ||
|
||
/** | ||
* Get a DV profile for the provided stream parameters. | ||
*/ | ||
const AVDVProfile *av_dv_codec_profile(int width, int height, enum AVPixelFormat pix_fmt); | ||
|
||
/** | ||
* Get a DV profile for the provided stream parameters. | ||
* The frame rate is used as a best-effort parameter. | ||
*/ | ||
const AVDVProfile *av_dv_codec_profile2(int width, int height, enum AVPixelFormat pix_fmt, AVRational frame_rate); | ||
|
||
#endif /* AVCODEC_DV_PROFILE_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
/* | ||
* Intel MediaSDK QSV public API | ||
* | ||
* 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 | ||
*/ | ||
|
||
#ifndef AVCODEC_QSV_H | ||
#define AVCODEC_QSV_H | ||
|
||
#include <mfx/mfxvideo.h> | ||
|
||
typedef struct AVQSVContext { | ||
mfxSession session; | ||
int iopattern; | ||
|
||
mfxExtBuffer **ext_buffers; | ||
int nb_ext_buffers; | ||
} AVQSVContext; | ||
|
||
/** | ||
* Allocate a new context. | ||
* | ||
* It must be freed by the caller with av_free(). | ||
*/ | ||
AVQSVContext *av_qsv_alloc_context(void); | ||
|
||
#endif /* AVCODEC_QSV_H */ |
Oops, something went wrong.