*: use latest ffmpeg-sys using bindgen
* Update bindings to newest ffmpeg version for new ffmpeg-sys, which is mostly generated by bindgen * Bring back removed feature flags * Fix whitespace formating * Remove prepended enum names to enum variants * Remove unneeded allows
This commit is contained in:
parent
8cf47c7ec6
commit
5ac0527bdc
@ -1,4 +1,5 @@
|
|||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVAudioServiceType::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
||||||
pub enum AudioService {
|
pub enum AudioService {
|
||||||
|
@ -54,7 +54,7 @@ impl Codec {
|
|||||||
|
|
||||||
pub fn medium(&self) -> media::Type {
|
pub fn medium(&self) -> media::Type {
|
||||||
unsafe {
|
unsafe {
|
||||||
media::Type::from((*self.as_ptr()).kind)
|
media::Type::from((*self.as_ptr()).type_)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ impl Subtitle {
|
|||||||
unsafe {
|
unsafe {
|
||||||
let mut got: c_int = 0;
|
let mut got: c_int = 0;
|
||||||
|
|
||||||
match avcodec_decode_subtitle2(self.as_mut_ptr(), out.as_mut_ptr(), &mut got, packet.as_ptr()) {
|
match avcodec_decode_subtitle2(self.as_mut_ptr(), out.as_mut_ptr(), &mut got, packet.as_ptr() as *mut _) {
|
||||||
e if e < 0 => Err(Error::from(e)),
|
e if e < 0 => Err(Error::from(e)),
|
||||||
_ => Ok(got != 0)
|
_ => Ok(got != 0)
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVDiscard::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
||||||
pub enum Discard {
|
pub enum Discard {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVFieldOrder::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
||||||
pub enum FieldOrder {
|
pub enum FieldOrder {
|
||||||
|
@ -2,6 +2,7 @@ use std::ffi::CStr;
|
|||||||
use std::str::from_utf8_unchecked;
|
use std::str::from_utf8_unchecked;
|
||||||
|
|
||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVCodecID::*;
|
||||||
use ::util::media;
|
use ::util::media;
|
||||||
|
|
||||||
#[allow(non_camel_case_types)]
|
#[allow(non_camel_case_types)]
|
||||||
@ -458,6 +459,19 @@ pub enum Id {
|
|||||||
MPEG4SYSTEMS,
|
MPEG4SYSTEMS,
|
||||||
FFMETADATA,
|
FFMETADATA,
|
||||||
WRAPPED_AVFRAME,
|
WRAPPED_AVFRAME,
|
||||||
|
|
||||||
|
PSD,
|
||||||
|
PIXLET,
|
||||||
|
SPEEDHQ,
|
||||||
|
CLEARVIDEO,
|
||||||
|
FMVC,
|
||||||
|
SCPR,
|
||||||
|
XPM,
|
||||||
|
AV1,
|
||||||
|
PCM_F16LE,
|
||||||
|
PCM_F24LE,
|
||||||
|
ATRAC3AL,
|
||||||
|
ATRAC3PAL,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Id {
|
impl Id {
|
||||||
@ -925,6 +939,18 @@ impl From<AVCodecID> for Id {
|
|||||||
AV_CODEC_ID_MPEG4SYSTEMS => Id::MPEG4SYSTEMS,
|
AV_CODEC_ID_MPEG4SYSTEMS => Id::MPEG4SYSTEMS,
|
||||||
AV_CODEC_ID_FFMETADATA => Id::FFMETADATA,
|
AV_CODEC_ID_FFMETADATA => Id::FFMETADATA,
|
||||||
AV_CODEC_ID_WRAPPED_AVFRAME => Id::WRAPPED_AVFRAME,
|
AV_CODEC_ID_WRAPPED_AVFRAME => Id::WRAPPED_AVFRAME,
|
||||||
|
AV_CODEC_ID_PSD => Id::PSD,
|
||||||
|
AV_CODEC_ID_PIXLET => Id::PIXLET,
|
||||||
|
AV_CODEC_ID_SPEEDHQ => Id::SPEEDHQ,
|
||||||
|
AV_CODEC_ID_CLEARVIDEO => Id::CLEARVIDEO,
|
||||||
|
AV_CODEC_ID_FMVC => Id::FMVC,
|
||||||
|
AV_CODEC_ID_SCPR => Id::SCPR,
|
||||||
|
AV_CODEC_ID_XPM => Id::XPM,
|
||||||
|
AV_CODEC_ID_AV1 => Id::AV1,
|
||||||
|
AV_CODEC_ID_PCM_F16LE => Id::PCM_F16LE,
|
||||||
|
AV_CODEC_ID_PCM_F24LE => Id::PCM_F24LE,
|
||||||
|
AV_CODEC_ID_ATRAC3AL => Id::ATRAC3AL,
|
||||||
|
AV_CODEC_ID_ATRAC3PAL => Id::ATRAC3PAL,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1073,7 +1099,7 @@ impl Into<AVCodecID> for Id {
|
|||||||
Id::ANM => AV_CODEC_ID_ANM,
|
Id::ANM => AV_CODEC_ID_ANM,
|
||||||
Id::BINKVIDEO => AV_CODEC_ID_BINKVIDEO,
|
Id::BINKVIDEO => AV_CODEC_ID_BINKVIDEO,
|
||||||
Id::IFF_ILBM => AV_CODEC_ID_IFF_ILBM,
|
Id::IFF_ILBM => AV_CODEC_ID_IFF_ILBM,
|
||||||
Id::IFF_BYTERUN1 => AV_CODEC_ID_IFF_BYTERUN1,
|
Id::IFF_BYTERUN1 => AV_CODEC_ID_IFF_ILBM,
|
||||||
Id::KGV1 => AV_CODEC_ID_KGV1,
|
Id::KGV1 => AV_CODEC_ID_KGV1,
|
||||||
Id::YOP => AV_CODEC_ID_YOP,
|
Id::YOP => AV_CODEC_ID_YOP,
|
||||||
Id::VP8 => AV_CODEC_ID_VP8,
|
Id::VP8 => AV_CODEC_ID_VP8,
|
||||||
@ -1111,7 +1137,7 @@ impl Into<AVCodecID> for Id {
|
|||||||
Id::WEBP => AV_CODEC_ID_WEBP,
|
Id::WEBP => AV_CODEC_ID_WEBP,
|
||||||
Id::HNM4_VIDEO => AV_CODEC_ID_HNM4_VIDEO,
|
Id::HNM4_VIDEO => AV_CODEC_ID_HNM4_VIDEO,
|
||||||
Id::HEVC => AV_CODEC_ID_HEVC,
|
Id::HEVC => AV_CODEC_ID_HEVC,
|
||||||
Id::H265 => AV_CODEC_ID_H265,
|
Id::H265 => AV_CODEC_ID_HEVC,
|
||||||
Id::FIC => AV_CODEC_ID_FIC,
|
Id::FIC => AV_CODEC_ID_FIC,
|
||||||
Id::ALIAS_PIX => AV_CODEC_ID_ALIAS_PIX,
|
Id::ALIAS_PIX => AV_CODEC_ID_ALIAS_PIX,
|
||||||
Id::BRENDER_PIX => AV_CODEC_ID_BRENDER_PIX,
|
Id::BRENDER_PIX => AV_CODEC_ID_BRENDER_PIX,
|
||||||
@ -1383,6 +1409,19 @@ impl Into<AVCodecID> for Id {
|
|||||||
Id::MPEG4SYSTEMS => AV_CODEC_ID_MPEG4SYSTEMS,
|
Id::MPEG4SYSTEMS => AV_CODEC_ID_MPEG4SYSTEMS,
|
||||||
Id::FFMETADATA => AV_CODEC_ID_FFMETADATA,
|
Id::FFMETADATA => AV_CODEC_ID_FFMETADATA,
|
||||||
Id::WRAPPED_AVFRAME => AV_CODEC_ID_WRAPPED_AVFRAME,
|
Id::WRAPPED_AVFRAME => AV_CODEC_ID_WRAPPED_AVFRAME,
|
||||||
|
|
||||||
|
Id::PSD => AV_CODEC_ID_PSD,
|
||||||
|
Id::PIXLET => AV_CODEC_ID_PIXLET,
|
||||||
|
Id::SPEEDHQ => AV_CODEC_ID_SPEEDHQ,
|
||||||
|
Id::FMVC => AV_CODEC_ID_FMVC,
|
||||||
|
Id::CLEARVIDEO => AV_CODEC_ID_CLEARVIDEO,
|
||||||
|
Id::SCPR => AV_CODEC_ID_SCPR,
|
||||||
|
Id::XPM => AV_CODEC_ID_XPM,
|
||||||
|
Id::AV1 => AV_CODEC_ID_AV1,
|
||||||
|
Id::PCM_F16LE => AV_CODEC_ID_PCM_F16LE,
|
||||||
|
Id::PCM_F24LE => AV_CODEC_ID_PCM_F24LE,
|
||||||
|
Id::ATRAC3AL => AV_CODEC_ID_ATRAC3AL,
|
||||||
|
Id::ATRAC3PAL => AV_CODEC_ID_ATRAC3PAL,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -208,7 +208,7 @@ impl Packet {
|
|||||||
return Err(Error::InvalidData);
|
return Err(Error::InvalidData);
|
||||||
}
|
}
|
||||||
|
|
||||||
match av_write_frame(format.as_mut_ptr(), self.as_ptr()) {
|
match av_write_frame(format.as_mut_ptr(), self.as_ptr() as *mut _) {
|
||||||
1 => Ok(true),
|
1 => Ok(true),
|
||||||
0 => Ok(false),
|
0 => Ok(false),
|
||||||
e => Err(Error::from(e))
|
e => Err(Error::from(e))
|
||||||
@ -223,7 +223,7 @@ impl Packet {
|
|||||||
return Err(Error::InvalidData);
|
return Err(Error::InvalidData);
|
||||||
}
|
}
|
||||||
|
|
||||||
match av_interleaved_write_frame(format.as_mut_ptr(), self.as_ptr()) {
|
match av_interleaved_write_frame(format.as_mut_ptr(), self.as_ptr() as *mut _) {
|
||||||
1 => Ok(true),
|
1 => Ok(true),
|
||||||
0 => Ok(false),
|
0 => Ok(false),
|
||||||
e => Err(Error::from(e))
|
e => Err(Error::from(e))
|
||||||
|
@ -2,6 +2,7 @@ use std::marker::PhantomData;
|
|||||||
use std::slice;
|
use std::slice;
|
||||||
|
|
||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVPacketSideDataType::*;
|
||||||
use super::Packet;
|
use super::Packet;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
||||||
@ -26,7 +27,9 @@ pub enum Type {
|
|||||||
WebVTTSettings,
|
WebVTTSettings,
|
||||||
MetadataUpdate,
|
MetadataUpdate,
|
||||||
MPEGTSStreamID,
|
MPEGTSStreamID,
|
||||||
MasteringDisplayMetadata
|
MasteringDisplayMetadata,
|
||||||
|
DataSpherical,
|
||||||
|
DataNb,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<AVPacketSideDataType> for Type {
|
impl From<AVPacketSideDataType> for Type {
|
||||||
@ -52,7 +55,9 @@ impl From<AVPacketSideDataType> for Type {
|
|||||||
AV_PKT_DATA_WEBVTT_SETTINGS => Type::WebVTTSettings,
|
AV_PKT_DATA_WEBVTT_SETTINGS => Type::WebVTTSettings,
|
||||||
AV_PKT_DATA_METADATA_UPDATE => Type::MetadataUpdate,
|
AV_PKT_DATA_METADATA_UPDATE => Type::MetadataUpdate,
|
||||||
AV_PKT_DATA_MPEGTS_STREAM_ID => Type::MPEGTSStreamID,
|
AV_PKT_DATA_MPEGTS_STREAM_ID => Type::MPEGTSStreamID,
|
||||||
AV_PKT_DATA_MASTERING_DISPLAY_METADATA => Type::MasteringDisplayMetadata
|
AV_PKT_DATA_MASTERING_DISPLAY_METADATA => Type::MasteringDisplayMetadata,
|
||||||
|
AV_PKT_DATA_SPHERICAL => Type::DataSpherical,
|
||||||
|
AV_PKT_DATA_NB => Type::DataNb,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -80,7 +85,9 @@ impl Into<AVPacketSideDataType> for Type {
|
|||||||
Type::WebVTTSettings => AV_PKT_DATA_WEBVTT_SETTINGS,
|
Type::WebVTTSettings => AV_PKT_DATA_WEBVTT_SETTINGS,
|
||||||
Type::MetadataUpdate => AV_PKT_DATA_METADATA_UPDATE,
|
Type::MetadataUpdate => AV_PKT_DATA_METADATA_UPDATE,
|
||||||
Type::MPEGTSStreamID => AV_PKT_DATA_MPEGTS_STREAM_ID,
|
Type::MPEGTSStreamID => AV_PKT_DATA_MPEGTS_STREAM_ID,
|
||||||
Type::MasteringDisplayMetadata => AV_PKT_DATA_MASTERING_DISPLAY_METADATA
|
Type::MasteringDisplayMetadata => AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
|
||||||
|
Type::DataSpherical => AV_PKT_DATA_SPHERICAL,
|
||||||
|
Type::DataNb => AV_PKT_DATA_NB,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -104,7 +111,7 @@ impl<'a> SideData<'a> {
|
|||||||
impl<'a> SideData<'a> {
|
impl<'a> SideData<'a> {
|
||||||
pub fn kind(&self) -> Type {
|
pub fn kind(&self) -> Type {
|
||||||
unsafe {
|
unsafe {
|
||||||
Type::from((*self.as_ptr()).kind)
|
Type::from((*self.as_ptr()).type_)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ use std::mem;
|
|||||||
|
|
||||||
use libc::{c_uint, uint32_t, size_t};
|
use libc::{c_uint, uint32_t, size_t};
|
||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVSubtitleType::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
||||||
pub enum Type {
|
pub enum Type {
|
||||||
@ -105,7 +106,7 @@ impl Subtitle {
|
|||||||
as *mut _;
|
as *mut _;
|
||||||
|
|
||||||
let mut rect = av_mallocz(mem::size_of::<AVSubtitleRect>() as size_t) as *mut AVSubtitleRect;
|
let mut rect = av_mallocz(mem::size_of::<AVSubtitleRect>() as size_t) as *mut AVSubtitleRect;
|
||||||
(*rect).kind = kind.into();
|
(*rect).type_ = kind.into();
|
||||||
|
|
||||||
*self.0.rects.offset((self.0.num_rects - 1) as isize) = rect;
|
*self.0.rects.offset((self.0.num_rects - 1) as isize) = rect;
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ pub enum Rect<'a> {
|
|||||||
|
|
||||||
impl<'a> Rect<'a> {
|
impl<'a> Rect<'a> {
|
||||||
pub unsafe fn wrap(ptr: *const AVSubtitleRect) -> Self {
|
pub unsafe fn wrap(ptr: *const AVSubtitleRect) -> Self {
|
||||||
match Type::from((*ptr).kind) {
|
match Type::from((*ptr).type_) {
|
||||||
Type::None => Rect::None(ptr),
|
Type::None => Rect::None(ptr),
|
||||||
Type::Bitmap => Rect::Bitmap(Bitmap::wrap(ptr)),
|
Type::Bitmap => Rect::Bitmap(Bitmap::wrap(ptr)),
|
||||||
Type::Text => Rect::Text(Text::wrap(ptr)),
|
Type::Text => Rect::Text(Text::wrap(ptr)),
|
||||||
|
@ -14,7 +14,7 @@ pub enum RectMut<'a> {
|
|||||||
|
|
||||||
impl<'a> RectMut<'a> {
|
impl<'a> RectMut<'a> {
|
||||||
pub unsafe fn wrap(ptr: *mut AVSubtitleRect) -> Self {
|
pub unsafe fn wrap(ptr: *mut AVSubtitleRect) -> Self {
|
||||||
match Type::from((*ptr).kind) {
|
match Type::from((*ptr).type_) {
|
||||||
Type::None => RectMut::None(ptr),
|
Type::None => RectMut::None(ptr),
|
||||||
Type::Bitmap => RectMut::Bitmap(BitmapMut::wrap(ptr)),
|
Type::Bitmap => RectMut::Bitmap(BitmapMut::wrap(ptr)),
|
||||||
Type::Text => RectMut::Text(TextMut::wrap(ptr)),
|
Type::Text => RectMut::Text(TextMut::wrap(ptr)),
|
||||||
@ -62,7 +62,7 @@ impl<'a> BitmapMut<'a> {
|
|||||||
pub unsafe fn wrap(ptr: *mut AVSubtitleRect) -> Self {
|
pub unsafe fn wrap(ptr: *mut AVSubtitleRect) -> Self {
|
||||||
BitmapMut { immutable: Bitmap::wrap(ptr as *const _) }
|
BitmapMut { immutable: Bitmap::wrap(ptr as *const _) }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub unsafe fn as_mut_ptr(&mut self) -> *mut AVSubtitleRect {
|
pub unsafe fn as_mut_ptr(&mut self) -> *mut AVSubtitleRect {
|
||||||
self.as_ptr() as *mut _
|
self.as_ptr() as *mut _
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ impl<'a> DeviceIter<'a> {
|
|||||||
pub unsafe fn wrap(ctx: *const AVFormatContext) -> Result<Self, Error> {
|
pub unsafe fn wrap(ctx: *const AVFormatContext) -> Result<Self, Error> {
|
||||||
let mut ptr: *mut AVDeviceInfoList = ptr::null_mut();
|
let mut ptr: *mut AVDeviceInfoList = ptr::null_mut();
|
||||||
|
|
||||||
match avdevice_list_devices(ctx, &mut ptr) {
|
match avdevice_list_devices(ctx as *mut _, &mut ptr) {
|
||||||
n if n < 0 =>
|
n if n < 0 =>
|
||||||
Err(Error::from(n)),
|
Err(Error::from(n)),
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ impl<'a> Source<'a> {
|
|||||||
impl<'a> Source<'a> {
|
impl<'a> Source<'a> {
|
||||||
pub fn failed_requests(&self) -> usize {
|
pub fn failed_requests(&self) -> usize {
|
||||||
unsafe {
|
unsafe {
|
||||||
av_buffersrc_get_nb_failed_requests(self.ctx.as_ptr()) as usize
|
av_buffersrc_get_nb_failed_requests(self.ctx.as_ptr() as *mut _) as usize
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ impl Graph {
|
|||||||
|
|
||||||
pub fn dump(&self) -> String {
|
pub fn dump(&self) -> String {
|
||||||
unsafe {
|
unsafe {
|
||||||
let ptr = avfilter_graph_dump(self.as_ptr(), ptr::null());
|
let ptr = avfilter_graph_dump(self.as_ptr() as *mut _, ptr::null());
|
||||||
let cstr = from_utf8_unchecked(CStr::from_ptr((ptr)).to_bytes());
|
let cstr = from_utf8_unchecked(CStr::from_ptr((ptr)).to_bytes());
|
||||||
let string = cstr.to_owned();
|
let string = cstr.to_owned();
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ pub fn register_all() {
|
|||||||
|
|
||||||
pub fn register(filter: &Filter) -> Result<(), Error> {
|
pub fn register(filter: &Filter) -> Result<(), Error> {
|
||||||
unsafe {
|
unsafe {
|
||||||
match avfilter_register(filter.as_ptr()) {
|
match avfilter_register(filter.as_ptr() as *mut _) {
|
||||||
0 => Ok(()),
|
0 => Ok(()),
|
||||||
_ => Err(Error::InvalidData),
|
_ => Err(Error::InvalidData),
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,7 @@ impl<'a> Best<'a> {
|
|||||||
pub fn best<'b>(self, kind: media::Type) -> Option<Stream<'b>> where 'a: 'b {
|
pub fn best<'b>(self, kind: media::Type) -> Option<Stream<'b>> where 'a: 'b {
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut decoder = ptr::null_mut();
|
let mut decoder = ptr::null_mut();
|
||||||
let index = av_find_best_stream(self.context.as_ptr(),
|
let index = av_find_best_stream(self.context.ptr,
|
||||||
kind.into(), self.wanted as c_int, self.related as c_int,
|
kind.into(), self.wanted as c_int, self.related as c_int,
|
||||||
&mut decoder, 0);
|
&mut decoder, 0);
|
||||||
|
|
||||||
|
@ -182,7 +182,7 @@ pub fn dump(ctx: &Input, index: i32, url: Option<&str>) {
|
|||||||
let url = url.map(|u| CString::new(u).unwrap());
|
let url = url.map(|u| CString::new(u).unwrap());
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
av_dump_format(ctx.as_ptr(), index,
|
av_dump_format(ctx.as_ptr() as *mut _, index,
|
||||||
url.map(|u| u.as_ptr()).unwrap_or(ptr::null()), 0);
|
url.map(|u| u.as_ptr()).unwrap_or(ptr::null()), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,7 @@ pub fn dump(ctx: &Output, index: i32, url: Option<&str>) {
|
|||||||
let url = url.map(|u| CString::new(u).unwrap());
|
let url = url.map(|u| CString::new(u).unwrap());
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
av_dump_format(ctx.as_ptr(), index,
|
av_dump_format(ctx.as_ptr() as *mut _, index,
|
||||||
url.map(|u| u.as_ptr()).unwrap_or(ptr::null()), 1);
|
url.map(|u| u.as_ptr()).unwrap_or(ptr::null()), 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ impl Output {
|
|||||||
let path = CString::new(path.as_ref().as_os_str().to_str().unwrap()).unwrap();
|
let path = CString::new(path.as_ref().as_os_str().to_str().unwrap()).unwrap();
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
codec::Id::from(av_guess_codec(self.as_ptr(), ptr::null(), path.as_ptr(), ptr::null(), kind.into()))
|
codec::Id::from(av_guess_codec(self.as_ptr() as *mut _, ptr::null(), path.as_ptr(), ptr::null(), kind.into()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,11 +29,11 @@ pub fn register_all() {
|
|||||||
pub fn register(format: &Format) {
|
pub fn register(format: &Format) {
|
||||||
match format {
|
match format {
|
||||||
&Format::Input(ref format) => unsafe {
|
&Format::Input(ref format) => unsafe {
|
||||||
av_register_input_format(format.as_ptr());
|
av_register_input_format(format.as_ptr() as *mut _);
|
||||||
},
|
},
|
||||||
|
|
||||||
&Format::Output(ref format) => unsafe {
|
&Format::Output(ref format) => unsafe {
|
||||||
av_register_output_format(format.as_ptr());
|
av_register_output_format(format.as_ptr() as *mut _);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -69,7 +69,7 @@ pub fn open<P: AsRef<Path>>(path: &P, format: &Format) -> Result<Context, Error>
|
|||||||
|
|
||||||
match format {
|
match format {
|
||||||
&Format::Input(ref format) => {
|
&Format::Input(ref format) => {
|
||||||
match avformat_open_input(&mut ps, path.as_ptr(), format.as_ptr(), ptr::null_mut()) {
|
match avformat_open_input(&mut ps, path.as_ptr(), format.as_ptr() as *mut _, ptr::null_mut()) {
|
||||||
0 => {
|
0 => {
|
||||||
match avformat_find_stream_info(ps, ptr::null_mut()) {
|
match avformat_find_stream_info(ps, ptr::null_mut()) {
|
||||||
r if r >= 0 => Ok(Context::Input(context::Input::wrap(ps))),
|
r if r >= 0 => Ok(Context::Input(context::Input::wrap(ps))),
|
||||||
@ -82,7 +82,7 @@ pub fn open<P: AsRef<Path>>(path: &P, format: &Format) -> Result<Context, Error>
|
|||||||
}
|
}
|
||||||
|
|
||||||
&Format::Output(ref format) => {
|
&Format::Output(ref format) => {
|
||||||
match avformat_alloc_output_context2(&mut ps, format.as_ptr(), ptr::null(), path.as_ptr()) {
|
match avformat_alloc_output_context2(&mut ps, format.as_ptr() as *mut _, ptr::null(), path.as_ptr()) {
|
||||||
0 => {
|
0 => {
|
||||||
match avio_open(&mut (*ps).pb, path.as_ptr(), AVIO_FLAG_WRITE) {
|
match avio_open(&mut (*ps).pb, path.as_ptr(), AVIO_FLAG_WRITE) {
|
||||||
0 => Ok(Context::Output(context::Output::wrap(ps))),
|
0 => Ok(Context::Output(context::Output::wrap(ps))),
|
||||||
@ -105,7 +105,7 @@ pub fn open_with<P: AsRef<Path>>(path: &P, format: &Format, options: Dictionary)
|
|||||||
|
|
||||||
match format {
|
match format {
|
||||||
&Format::Input(ref format) => {
|
&Format::Input(ref format) => {
|
||||||
let res = avformat_open_input(&mut ps, path.as_ptr(), format.as_ptr(), &mut opts);
|
let res = avformat_open_input(&mut ps, path.as_ptr(), format.as_ptr() as *mut _, &mut opts);
|
||||||
|
|
||||||
Dictionary::own(opts);
|
Dictionary::own(opts);
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ pub fn open_with<P: AsRef<Path>>(path: &P, format: &Format, options: Dictionary)
|
|||||||
}
|
}
|
||||||
|
|
||||||
&Format::Output(ref format) => {
|
&Format::Output(ref format) => {
|
||||||
match avformat_alloc_output_context2(&mut ps, format.as_ptr(), ptr::null(), path.as_ptr()) {
|
match avformat_alloc_output_context2(&mut ps, format.as_ptr() as *mut _, ptr::null(), path.as_ptr()) {
|
||||||
0 => {
|
0 => {
|
||||||
match avio_open(&mut (*ps).pb, path.as_ptr(), AVIO_FLAG_WRITE) {
|
match avio_open(&mut (*ps).pb, path.as_ptr(), AVIO_FLAG_WRITE) {
|
||||||
0 => Ok(Context::Output(context::Output::wrap(ps))),
|
0 => Ok(Context::Output(context::Output::wrap(ps))),
|
||||||
|
@ -84,7 +84,7 @@ impl Context {
|
|||||||
/// Get the remaining delay.
|
/// Get the remaining delay.
|
||||||
pub fn delay(&self) -> Option<Delay> {
|
pub fn delay(&self) -> Option<Delay> {
|
||||||
unsafe {
|
unsafe {
|
||||||
match swr_get_delay(self.as_ptr(), 1) {
|
match swr_get_delay(self.as_ptr() as *mut _, 1) {
|
||||||
0 => None,
|
0 => None,
|
||||||
_ => Some(Delay::from(self))
|
_ => Some(Delay::from(self))
|
||||||
}
|
}
|
||||||
|
@ -14,10 +14,10 @@ impl Delay {
|
|||||||
pub fn from(context: &Context) -> Self {
|
pub fn from(context: &Context) -> Self {
|
||||||
unsafe {
|
unsafe {
|
||||||
Delay {
|
Delay {
|
||||||
seconds: swr_get_delay(context.as_ptr(), 1),
|
seconds: swr_get_delay(context.as_ptr() as *mut _, 1),
|
||||||
milliseconds: swr_get_delay(context.as_ptr(), 1000),
|
milliseconds: swr_get_delay(context.as_ptr() as *mut _, 1000),
|
||||||
input: swr_get_delay(context.as_ptr(), context.input().rate as int64_t),
|
input: swr_get_delay(context.as_ptr() as *mut _, context.input().rate as int64_t),
|
||||||
output: swr_get_delay(context.as_ptr(), context.output().rate as int64_t),
|
output: swr_get_delay(context.as_ptr() as *mut _, context.output().rate as int64_t),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::SwrDitherType::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
||||||
pub enum Dither {
|
pub enum Dither {
|
||||||
@ -23,7 +24,7 @@ impl From<SwrDitherType> for Dither {
|
|||||||
SWR_DITHER_RECTANGULAR => Dither::Rectangular,
|
SWR_DITHER_RECTANGULAR => Dither::Rectangular,
|
||||||
SWR_DITHER_TRIANGULAR => Dither::Triangular,
|
SWR_DITHER_TRIANGULAR => Dither::Triangular,
|
||||||
SWR_DITHER_TRIANGULAR_HIGHPASS => Dither::TriangularHighPass,
|
SWR_DITHER_TRIANGULAR_HIGHPASS => Dither::TriangularHighPass,
|
||||||
|
|
||||||
SWR_DITHER_NS => Dither::None,
|
SWR_DITHER_NS => Dither::None,
|
||||||
SWR_DITHER_NS_LIPSHITZ => Dither::NoiseShapingLipshitz,
|
SWR_DITHER_NS_LIPSHITZ => Dither::NoiseShapingLipshitz,
|
||||||
SWR_DITHER_NS_F_WEIGHTED => Dither::NoiseShapingFWeighted,
|
SWR_DITHER_NS_F_WEIGHTED => Dither::NoiseShapingFWeighted,
|
||||||
@ -44,7 +45,7 @@ impl Into<SwrDitherType> for Dither {
|
|||||||
Dither::Rectangular => SWR_DITHER_RECTANGULAR,
|
Dither::Rectangular => SWR_DITHER_RECTANGULAR,
|
||||||
Dither::Triangular => SWR_DITHER_TRIANGULAR,
|
Dither::Triangular => SWR_DITHER_TRIANGULAR,
|
||||||
Dither::TriangularHighPass => SWR_DITHER_TRIANGULAR_HIGHPASS,
|
Dither::TriangularHighPass => SWR_DITHER_TRIANGULAR_HIGHPASS,
|
||||||
|
|
||||||
Dither::NoiseShapingLipshitz => SWR_DITHER_NS_LIPSHITZ,
|
Dither::NoiseShapingLipshitz => SWR_DITHER_NS_LIPSHITZ,
|
||||||
Dither::NoiseShapingFWeighted => SWR_DITHER_NS_F_WEIGHTED,
|
Dither::NoiseShapingFWeighted => SWR_DITHER_NS_F_WEIGHTED,
|
||||||
Dither::NoiseShapingModifiedEWeighted => SWR_DITHER_NS_MODIFIED_E_WEIGHTED,
|
Dither::NoiseShapingModifiedEWeighted => SWR_DITHER_NS_MODIFIED_E_WEIGHTED,
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use sys::SwrEngine::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
||||||
pub enum Engine {
|
pub enum Engine {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::SwrFilterType::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
||||||
pub enum Filter {
|
pub enum Filter {
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
use libc::c_uint;
|
|
||||||
use ffi::*;
|
|
||||||
|
|
||||||
bitflags! {
|
|
||||||
pub flags Capabilities: c_uint {
|
|
||||||
const MMX = SWS_CPU_CAPS_MMX,
|
|
||||||
const MMXEXT = SWS_CPU_CAPS_MMXEXT,
|
|
||||||
const MMX2 = SWS_CPU_CAPS_MMX2,
|
|
||||||
const _3DNOW = SWS_CPU_CAPS_3DNOW,
|
|
||||||
const ALTIVEC = SWS_CPU_CAPS_ALTIVEC,
|
|
||||||
const BFIN = SWS_CPU_CAPS_BFIN,
|
|
||||||
const SSE2 = SWS_CPU_CAPS_SSE2,
|
|
||||||
}
|
|
||||||
}
|
|
@ -104,7 +104,7 @@ impl Context {
|
|||||||
if input.format() != self.input.format || input.width() != self.input.width || input.height() != self.input.height {
|
if input.format() != self.input.format || input.width() != self.input.width || input.height() != self.input.height {
|
||||||
return Err(Error::InputChanged);
|
return Err(Error::InputChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
if output.is_empty() {
|
if output.is_empty() {
|
||||||
output.alloc(self.output.format, self.output.width, self.output.height);
|
output.alloc(self.output.format, self.output.width, self.output.height);
|
||||||
@ -119,7 +119,7 @@ impl Context {
|
|||||||
sws_scale(self.as_mut_ptr(),
|
sws_scale(self.as_mut_ptr(),
|
||||||
(*input.as_ptr()).data.as_ptr() as *const *const _, (*input.as_ptr()).linesize.as_ptr() as *const _,
|
(*input.as_ptr()).data.as_ptr() as *const *const _, (*input.as_ptr()).linesize.as_ptr() as *const _,
|
||||||
0, self.output.height as c_int,
|
0, self.output.height as c_int,
|
||||||
(*output.as_mut_ptr()).data.as_ptr() as *mut *mut _, (*output.as_mut_ptr()).linesize.as_ptr() as *mut _);
|
(*output.as_mut_ptr()).data.as_ptr() as *const *const _, (*output.as_mut_ptr()).linesize.as_ptr() as *mut _);
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
pub mod flag;
|
pub mod flag;
|
||||||
pub use self::flag::Flags;
|
pub use self::flag::Flags;
|
||||||
|
|
||||||
pub mod capability;
|
|
||||||
pub use self::capability::Capabilities;
|
|
||||||
|
|
||||||
pub mod color_space;
|
pub mod color_space;
|
||||||
pub use self::color_space::ColorSpace;
|
pub use self::color_space::ColorSpace;
|
||||||
|
|
||||||
|
@ -64,19 +64,19 @@ impl<'a> Vector<'a> {
|
|||||||
|
|
||||||
pub fn conv(&mut self, other: &Vector) {
|
pub fn conv(&mut self, other: &Vector) {
|
||||||
unsafe {
|
unsafe {
|
||||||
sws_convVec(self.as_mut_ptr(), other.as_ptr());
|
sws_convVec(self.as_mut_ptr(), other.as_ptr() as *mut _);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn add(&mut self, other: &Vector) {
|
pub fn add(&mut self, other: &Vector) {
|
||||||
unsafe {
|
unsafe {
|
||||||
sws_addVec(self.as_mut_ptr(), other.as_ptr());
|
sws_addVec(self.as_mut_ptr(), other.as_ptr() as *mut _);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn sub(&mut self, other: &Vector) {
|
pub fn sub(&mut self, other: &Vector) {
|
||||||
unsafe {
|
unsafe {
|
||||||
sws_subVec(self.as_mut_ptr(), other.as_ptr());
|
sws_subVec(self.as_mut_ptr(), other.as_ptr() as *mut _);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,7 +104,7 @@ impl<'a> Vector<'a> {
|
|||||||
impl<'a> Clone for Vector<'a> {
|
impl<'a> Clone for Vector<'a> {
|
||||||
fn clone(&self) -> Self {
|
fn clone(&self) -> Self {
|
||||||
unsafe {
|
unsafe {
|
||||||
Vector { ptr: sws_cloneVec(self.as_ptr()), _own: true, _marker: PhantomData }
|
Vector { ptr: sws_cloneVec(self.as_ptr() as *mut _), _own: true, _marker: PhantomData }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVChromaLocation::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
||||||
pub enum Location {
|
pub enum Location {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVColorPrimaries::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
||||||
pub enum Primaries {
|
pub enum Primaries {
|
||||||
@ -13,6 +14,11 @@ pub enum Primaries {
|
|||||||
SMPTE240M,
|
SMPTE240M,
|
||||||
Film,
|
Film,
|
||||||
BT2020,
|
BT2020,
|
||||||
|
|
||||||
|
SMPTE428,
|
||||||
|
SMPTE431,
|
||||||
|
SMPTE432,
|
||||||
|
JEDEC_P22,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<AVColorPrimaries> for Primaries {
|
impl From<AVColorPrimaries> for Primaries {
|
||||||
@ -29,7 +35,12 @@ impl From<AVColorPrimaries> for Primaries {
|
|||||||
AVCOL_PRI_SMPTE240M => Primaries::SMPTE240M,
|
AVCOL_PRI_SMPTE240M => Primaries::SMPTE240M,
|
||||||
AVCOL_PRI_FILM => Primaries::Film,
|
AVCOL_PRI_FILM => Primaries::Film,
|
||||||
AVCOL_PRI_BT2020 => Primaries::BT2020,
|
AVCOL_PRI_BT2020 => Primaries::BT2020,
|
||||||
AVCOL_PRI_NB => Primaries::Reserved0
|
AVCOL_PRI_NB => Primaries::Reserved0,
|
||||||
|
|
||||||
|
AVCOL_PRI_SMPTE428 => Primaries::SMPTE428,
|
||||||
|
AVCOL_PRI_SMPTE431 => Primaries::SMPTE431,
|
||||||
|
AVCOL_PRI_SMPTE432 => Primaries::SMPTE432,
|
||||||
|
AVCOL_PRI_JEDEC_P22 => Primaries::JEDEC_P22,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -48,6 +59,11 @@ impl Into<AVColorPrimaries> for Primaries {
|
|||||||
Primaries::SMPTE240M => AVCOL_PRI_SMPTE240M,
|
Primaries::SMPTE240M => AVCOL_PRI_SMPTE240M,
|
||||||
Primaries::Film => AVCOL_PRI_FILM,
|
Primaries::Film => AVCOL_PRI_FILM,
|
||||||
Primaries::BT2020 => AVCOL_PRI_BT2020,
|
Primaries::BT2020 => AVCOL_PRI_BT2020,
|
||||||
|
|
||||||
|
Primaries::SMPTE428 => AVCOL_PRI_SMPTE428,
|
||||||
|
Primaries::SMPTE431 => AVCOL_PRI_SMPTE431,
|
||||||
|
Primaries::SMPTE432 => AVCOL_PRI_SMPTE432,
|
||||||
|
Primaries::JEDEC_P22 => AVCOL_PRI_JEDEC_P22,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVColorRange::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
||||||
pub enum Range {
|
pub enum Range {
|
||||||
|
@ -2,6 +2,7 @@ use std::ffi::CStr;
|
|||||||
use std::str::from_utf8_unchecked;
|
use std::str::from_utf8_unchecked;
|
||||||
|
|
||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVColorSpace::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
||||||
pub enum Space {
|
pub enum Space {
|
||||||
@ -17,6 +18,7 @@ pub enum Space {
|
|||||||
YCGCO,
|
YCGCO,
|
||||||
BT2020NCL,
|
BT2020NCL,
|
||||||
BT2020CL,
|
BT2020CL,
|
||||||
|
SMPTE2085,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Space {
|
impl Space {
|
||||||
@ -41,7 +43,8 @@ impl From<AVColorSpace> for Space {
|
|||||||
AVCOL_SPC_YCOCG => Space::YCOCG,
|
AVCOL_SPC_YCOCG => Space::YCOCG,
|
||||||
AVCOL_SPC_BT2020_NCL => Space::BT2020NCL,
|
AVCOL_SPC_BT2020_NCL => Space::BT2020NCL,
|
||||||
AVCOL_SPC_BT2020_CL => Space::BT2020CL,
|
AVCOL_SPC_BT2020_CL => Space::BT2020CL,
|
||||||
AVCOL_SPC_NB => Space::Unspecified
|
AVCOL_SPC_SMPTE2085 => Space::SMPTE2085,
|
||||||
|
AVCOL_SPC_NB => Space::Unspecified,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -60,7 +63,8 @@ impl Into<AVColorSpace> for Space {
|
|||||||
Space::YCOCG => AVCOL_SPC_YCOCG,
|
Space::YCOCG => AVCOL_SPC_YCOCG,
|
||||||
Space::YCGCO => AVCOL_SPC_YCGCO,
|
Space::YCGCO => AVCOL_SPC_YCGCO,
|
||||||
Space::BT2020NCL => AVCOL_SPC_BT2020_NCL,
|
Space::BT2020NCL => AVCOL_SPC_BT2020_NCL,
|
||||||
Space::BT2020CL => AVCOL_SPC_BT2020_CL
|
Space::BT2020CL => AVCOL_SPC_BT2020_CL,
|
||||||
|
Space::SMPTE2085 => AVCOL_SPC_SMPTE2085,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVColorTransferCharacteristic::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
||||||
pub enum TransferCharacteristic {
|
pub enum TransferCharacteristic {
|
||||||
@ -18,6 +19,9 @@ pub enum TransferCharacteristic {
|
|||||||
IEC61966_2_1,
|
IEC61966_2_1,
|
||||||
BT2020_10,
|
BT2020_10,
|
||||||
BT2020_12,
|
BT2020_12,
|
||||||
|
SMPTE2084,
|
||||||
|
SMPTE428,
|
||||||
|
ARIB_STD_B67,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<AVColorTransferCharacteristic> for TransferCharacteristic {
|
impl From<AVColorTransferCharacteristic> for TransferCharacteristic {
|
||||||
@ -39,7 +43,10 @@ impl From<AVColorTransferCharacteristic> for TransferCharacteristic {
|
|||||||
AVCOL_TRC_IEC61966_2_1 => TransferCharacteristic::IEC61966_2_1,
|
AVCOL_TRC_IEC61966_2_1 => TransferCharacteristic::IEC61966_2_1,
|
||||||
AVCOL_TRC_BT2020_10 => TransferCharacteristic::BT2020_10,
|
AVCOL_TRC_BT2020_10 => TransferCharacteristic::BT2020_10,
|
||||||
AVCOL_TRC_BT2020_12 => TransferCharacteristic::BT2020_12,
|
AVCOL_TRC_BT2020_12 => TransferCharacteristic::BT2020_12,
|
||||||
AVCOL_TRC_NB => TransferCharacteristic::Reserved0
|
AVCOL_TRC_NB => TransferCharacteristic::Reserved0,
|
||||||
|
AVCOL_TRC_SMPTE2084 => TransferCharacteristic::SMPTE2084,
|
||||||
|
AVCOL_TRC_SMPTE428 => TransferCharacteristic::SMPTE428,
|
||||||
|
AVCOL_TRC_ARIB_STD_B67 => TransferCharacteristic::ARIB_STD_B67,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -62,7 +69,10 @@ impl Into<AVColorTransferCharacteristic> for TransferCharacteristic {
|
|||||||
TransferCharacteristic::BT1361_ECG => AVCOL_TRC_BT1361_ECG,
|
TransferCharacteristic::BT1361_ECG => AVCOL_TRC_BT1361_ECG,
|
||||||
TransferCharacteristic::IEC61966_2_1 => AVCOL_TRC_IEC61966_2_1,
|
TransferCharacteristic::IEC61966_2_1 => AVCOL_TRC_IEC61966_2_1,
|
||||||
TransferCharacteristic::BT2020_10 => AVCOL_TRC_BT2020_10,
|
TransferCharacteristic::BT2020_10 => AVCOL_TRC_BT2020_10,
|
||||||
TransferCharacteristic::BT2020_12 => AVCOL_TRC_BT2020_12
|
TransferCharacteristic::BT2020_12 => AVCOL_TRC_BT2020_12,
|
||||||
|
TransferCharacteristic::SMPTE2084 => AVCOL_TRC_SMPTE2084,
|
||||||
|
TransferCharacteristic::SMPTE428 => AVCOL_TRC_SMPTE428,
|
||||||
|
TransferCharacteristic::ARIB_STD_B67 => AVCOL_TRC_ARIB_STD_B67,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ use std::fmt;
|
|||||||
use std::str::{FromStr, from_utf8_unchecked};
|
use std::str::{FromStr, from_utf8_unchecked};
|
||||||
|
|
||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVPixelFormat::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
||||||
pub enum Pixel {
|
pub enum Pixel {
|
||||||
@ -122,9 +123,6 @@ pub enum Pixel {
|
|||||||
GBRP16BE,
|
GBRP16BE,
|
||||||
GBRP16LE,
|
GBRP16LE,
|
||||||
|
|
||||||
YUVA422P_LIBAV,
|
|
||||||
YUVA444P_LIBAV,
|
|
||||||
|
|
||||||
YUVA420P9BE,
|
YUVA420P9BE,
|
||||||
YUVA420P9LE,
|
YUVA420P9LE,
|
||||||
YUVA422P9BE,
|
YUVA422P9BE,
|
||||||
@ -152,10 +150,10 @@ pub enum Pixel {
|
|||||||
NV20LE,
|
NV20LE,
|
||||||
NV20BE,
|
NV20BE,
|
||||||
|
|
||||||
RGBA64BE_LIBAV,
|
RGBA64BE,
|
||||||
RGBA64LE_LIBAV,
|
RGBA64LE,
|
||||||
BGRA64BE_LIBAV,
|
BGRA64BE,
|
||||||
BGRA64LE_LIBAV,
|
BGRA64LE,
|
||||||
|
|
||||||
YVYU422,
|
YVYU422,
|
||||||
|
|
||||||
@ -164,9 +162,6 @@ pub enum Pixel {
|
|||||||
YA16BE,
|
YA16BE,
|
||||||
YA16LE,
|
YA16LE,
|
||||||
|
|
||||||
GBRAP_LIBAV,
|
|
||||||
GBRAP16BE_LIBAV,
|
|
||||||
GBRAP16LE_LIBAV,
|
|
||||||
QSV,
|
QSV,
|
||||||
MMAL,
|
MMAL,
|
||||||
|
|
||||||
@ -292,6 +287,20 @@ pub enum Pixel {
|
|||||||
XYZ12,
|
XYZ12,
|
||||||
NV20,
|
NV20,
|
||||||
AYUV64,
|
AYUV64,
|
||||||
|
|
||||||
|
P010LE,
|
||||||
|
P010BE,
|
||||||
|
GBRAP12BE,
|
||||||
|
GBRAP12LE,
|
||||||
|
GBRAP10LE,
|
||||||
|
GBRAP10BE,
|
||||||
|
MEDIACODEC,
|
||||||
|
GRAY12BE,
|
||||||
|
GRAY12LE,
|
||||||
|
GRAY10BE,
|
||||||
|
GRAY10LE,
|
||||||
|
P016LE,
|
||||||
|
P016BE,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, PartialEq, Eq)]
|
#[derive(Clone, Copy, PartialEq, Eq)]
|
||||||
@ -418,9 +427,6 @@ impl From<AVPixelFormat> for Pixel {
|
|||||||
#[cfg(feature = "ff_api_vaapi")]
|
#[cfg(feature = "ff_api_vaapi")]
|
||||||
AV_PIX_FMT_VAAPI_VLD => Pixel::VAAPI_VLD,
|
AV_PIX_FMT_VAAPI_VLD => Pixel::VAAPI_VLD,
|
||||||
|
|
||||||
#[cfg(not(feature = "ff_api_vaapi"))]
|
|
||||||
AV_PIX_FMT_VAAPI => Pixel::VAAPI,
|
|
||||||
|
|
||||||
AV_PIX_FMT_YUV420P16LE => Pixel::YUV420P16LE,
|
AV_PIX_FMT_YUV420P16LE => Pixel::YUV420P16LE,
|
||||||
AV_PIX_FMT_YUV420P16BE => Pixel::YUV420P16BE,
|
AV_PIX_FMT_YUV420P16BE => Pixel::YUV420P16BE,
|
||||||
AV_PIX_FMT_YUV422P16LE => Pixel::YUV422P16LE,
|
AV_PIX_FMT_YUV422P16LE => Pixel::YUV422P16LE,
|
||||||
@ -462,9 +468,6 @@ impl From<AVPixelFormat> for Pixel {
|
|||||||
AV_PIX_FMT_GBRP16BE => Pixel::GBRP16BE,
|
AV_PIX_FMT_GBRP16BE => Pixel::GBRP16BE,
|
||||||
AV_PIX_FMT_GBRP16LE => Pixel::GBRP16LE,
|
AV_PIX_FMT_GBRP16LE => Pixel::GBRP16LE,
|
||||||
|
|
||||||
AV_PIX_FMT_YUVA422P_LIBAV => Pixel::YUVA422P_LIBAV,
|
|
||||||
AV_PIX_FMT_YUVA444P_LIBAV => Pixel::YUVA444P_LIBAV,
|
|
||||||
|
|
||||||
AV_PIX_FMT_YUVA420P9BE => Pixel::YUVA420P9BE,
|
AV_PIX_FMT_YUVA420P9BE => Pixel::YUVA420P9BE,
|
||||||
AV_PIX_FMT_YUVA420P9LE => Pixel::YUVA420P9LE,
|
AV_PIX_FMT_YUVA420P9LE => Pixel::YUVA420P9LE,
|
||||||
AV_PIX_FMT_YUVA422P9BE => Pixel::YUVA422P9BE,
|
AV_PIX_FMT_YUVA422P9BE => Pixel::YUVA422P9BE,
|
||||||
@ -492,10 +495,10 @@ impl From<AVPixelFormat> for Pixel {
|
|||||||
AV_PIX_FMT_NV20LE => Pixel::NV20LE,
|
AV_PIX_FMT_NV20LE => Pixel::NV20LE,
|
||||||
AV_PIX_FMT_NV20BE => Pixel::NV20BE,
|
AV_PIX_FMT_NV20BE => Pixel::NV20BE,
|
||||||
|
|
||||||
AV_PIX_FMT_RGBA64BE_LIBAV => Pixel::RGBA64BE_LIBAV,
|
AV_PIX_FMT_RGBA64BE => Pixel::RGBA64BE,
|
||||||
AV_PIX_FMT_RGBA64LE_LIBAV => Pixel::RGBA64LE_LIBAV,
|
AV_PIX_FMT_RGBA64LE => Pixel::RGBA64LE,
|
||||||
AV_PIX_FMT_BGRA64BE_LIBAV => Pixel::BGRA64BE_LIBAV,
|
AV_PIX_FMT_BGRA64BE => Pixel::BGRA64BE,
|
||||||
AV_PIX_FMT_BGRA64LE_LIBAV => Pixel::BGRA64LE_LIBAV,
|
AV_PIX_FMT_BGRA64LE => Pixel::BGRA64LE,
|
||||||
|
|
||||||
AV_PIX_FMT_YVYU422 => Pixel::YVYU422,
|
AV_PIX_FMT_YVYU422 => Pixel::YVYU422,
|
||||||
|
|
||||||
@ -504,9 +507,6 @@ impl From<AVPixelFormat> for Pixel {
|
|||||||
AV_PIX_FMT_YA16BE => Pixel::YA16BE,
|
AV_PIX_FMT_YA16BE => Pixel::YA16BE,
|
||||||
AV_PIX_FMT_YA16LE => Pixel::YA16LE,
|
AV_PIX_FMT_YA16LE => Pixel::YA16LE,
|
||||||
|
|
||||||
AV_PIX_FMT_GBRAP_LIBAV => Pixel::GBRAP_LIBAV,
|
|
||||||
AV_PIX_FMT_GBRAP16BE_LIBAV => Pixel::GBRAP16BE_LIBAV,
|
|
||||||
AV_PIX_FMT_GBRAP16LE_LIBAV => Pixel::GBRAP16LE_LIBAV,
|
|
||||||
AV_PIX_FMT_QSV => Pixel::QSV,
|
AV_PIX_FMT_QSV => Pixel::QSV,
|
||||||
AV_PIX_FMT_MMAL => Pixel::MMAL,
|
AV_PIX_FMT_MMAL => Pixel::MMAL,
|
||||||
|
|
||||||
@ -564,7 +564,21 @@ impl From<AVPixelFormat> for Pixel {
|
|||||||
|
|
||||||
AV_PIX_FMT_VIDEOTOOLBOX => Pixel::VIDEOTOOLBOX,
|
AV_PIX_FMT_VIDEOTOOLBOX => Pixel::VIDEOTOOLBOX,
|
||||||
|
|
||||||
AV_PIX_FMT_NB => Pixel::None
|
AV_PIX_FMT_P010LE => Pixel::P010LE,
|
||||||
|
AV_PIX_FMT_P010BE => Pixel::P010BE,
|
||||||
|
AV_PIX_FMT_GBRAP12BE => Pixel::GBRAP12BE,
|
||||||
|
AV_PIX_FMT_GBRAP12LE => Pixel::GBRAP12LE,
|
||||||
|
AV_PIX_FMT_GBRAP10LE => Pixel::GBRAP10LE,
|
||||||
|
AV_PIX_FMT_GBRAP10BE => Pixel::GBRAP10BE,
|
||||||
|
AV_PIX_FMT_MEDIACODEC => Pixel::MEDIACODEC,
|
||||||
|
AV_PIX_FMT_GRAY12BE => Pixel::GRAY12BE,
|
||||||
|
AV_PIX_FMT_GRAY12LE => Pixel::GRAY12LE,
|
||||||
|
AV_PIX_FMT_GRAY10BE => Pixel::GRAY10BE,
|
||||||
|
AV_PIX_FMT_GRAY10LE => Pixel::GRAY10LE,
|
||||||
|
AV_PIX_FMT_P016LE => Pixel::P016LE,
|
||||||
|
AV_PIX_FMT_P016BE => Pixel::P016BE,
|
||||||
|
|
||||||
|
AV_PIX_FMT_NB => Pixel::None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -688,9 +702,6 @@ impl Into<AVPixelFormat> for Pixel {
|
|||||||
Pixel::GBRP16BE => AV_PIX_FMT_GBRP16BE,
|
Pixel::GBRP16BE => AV_PIX_FMT_GBRP16BE,
|
||||||
Pixel::GBRP16LE => AV_PIX_FMT_GBRP16LE,
|
Pixel::GBRP16LE => AV_PIX_FMT_GBRP16LE,
|
||||||
|
|
||||||
Pixel::YUVA422P_LIBAV => AV_PIX_FMT_YUVA422P_LIBAV,
|
|
||||||
Pixel::YUVA444P_LIBAV => AV_PIX_FMT_YUVA444P_LIBAV,
|
|
||||||
|
|
||||||
Pixel::YUVA420P9BE => AV_PIX_FMT_YUVA420P9BE,
|
Pixel::YUVA420P9BE => AV_PIX_FMT_YUVA420P9BE,
|
||||||
Pixel::YUVA420P9LE => AV_PIX_FMT_YUVA420P9LE,
|
Pixel::YUVA420P9LE => AV_PIX_FMT_YUVA420P9LE,
|
||||||
Pixel::YUVA422P9BE => AV_PIX_FMT_YUVA422P9BE,
|
Pixel::YUVA422P9BE => AV_PIX_FMT_YUVA422P9BE,
|
||||||
@ -718,10 +729,10 @@ impl Into<AVPixelFormat> for Pixel {
|
|||||||
Pixel::NV20LE => AV_PIX_FMT_NV20LE,
|
Pixel::NV20LE => AV_PIX_FMT_NV20LE,
|
||||||
Pixel::NV20BE => AV_PIX_FMT_NV20BE,
|
Pixel::NV20BE => AV_PIX_FMT_NV20BE,
|
||||||
|
|
||||||
Pixel::RGBA64BE_LIBAV => AV_PIX_FMT_RGBA64BE_LIBAV,
|
Pixel::RGBA64BE => AV_PIX_FMT_RGBA64BE,
|
||||||
Pixel::RGBA64LE_LIBAV => AV_PIX_FMT_RGBA64LE_LIBAV,
|
Pixel::RGBA64LE => AV_PIX_FMT_RGBA64LE,
|
||||||
Pixel::BGRA64BE_LIBAV => AV_PIX_FMT_BGRA64BE_LIBAV,
|
Pixel::BGRA64BE => AV_PIX_FMT_BGRA64BE,
|
||||||
Pixel::BGRA64LE_LIBAV => AV_PIX_FMT_BGRA64LE_LIBAV,
|
Pixel::BGRA64LE => AV_PIX_FMT_BGRA64LE,
|
||||||
|
|
||||||
Pixel::YVYU422 => AV_PIX_FMT_YVYU422,
|
Pixel::YVYU422 => AV_PIX_FMT_YVYU422,
|
||||||
|
|
||||||
@ -730,9 +741,6 @@ impl Into<AVPixelFormat> for Pixel {
|
|||||||
Pixel::YA16BE => AV_PIX_FMT_YA16BE,
|
Pixel::YA16BE => AV_PIX_FMT_YA16BE,
|
||||||
Pixel::YA16LE => AV_PIX_FMT_YA16LE,
|
Pixel::YA16LE => AV_PIX_FMT_YA16LE,
|
||||||
|
|
||||||
Pixel::GBRAP_LIBAV => AV_PIX_FMT_GBRAP_LIBAV,
|
|
||||||
Pixel::GBRAP16BE_LIBAV => AV_PIX_FMT_GBRAP16BE_LIBAV,
|
|
||||||
Pixel::GBRAP16LE_LIBAV => AV_PIX_FMT_GBRAP16LE_LIBAV,
|
|
||||||
Pixel::QSV => AV_PIX_FMT_QSV,
|
Pixel::QSV => AV_PIX_FMT_QSV,
|
||||||
Pixel::MMAL => AV_PIX_FMT_MMAL,
|
Pixel::MMAL => AV_PIX_FMT_MMAL,
|
||||||
|
|
||||||
@ -791,7 +799,6 @@ impl Into<AVPixelFormat> for Pixel {
|
|||||||
Pixel::VIDEOTOOLBOX => AV_PIX_FMT_VIDEOTOOLBOX,
|
Pixel::VIDEOTOOLBOX => AV_PIX_FMT_VIDEOTOOLBOX,
|
||||||
|
|
||||||
// --- defaults
|
// --- defaults
|
||||||
#[cfg(feature = "ff_api_xvmc")]
|
|
||||||
Pixel::XVMC => AV_PIX_FMT_XVMC,
|
Pixel::XVMC => AV_PIX_FMT_XVMC,
|
||||||
Pixel::Y400A => AV_PIX_FMT_Y400A,
|
Pixel::Y400A => AV_PIX_FMT_Y400A,
|
||||||
Pixel::GRAY8A => AV_PIX_FMT_GRAY8A,
|
Pixel::GRAY8A => AV_PIX_FMT_GRAY8A,
|
||||||
@ -858,6 +865,20 @@ impl Into<AVPixelFormat> for Pixel {
|
|||||||
Pixel::XYZ12 => AV_PIX_FMT_XYZ12,
|
Pixel::XYZ12 => AV_PIX_FMT_XYZ12,
|
||||||
Pixel::NV20 => AV_PIX_FMT_NV20,
|
Pixel::NV20 => AV_PIX_FMT_NV20,
|
||||||
Pixel::AYUV64 => AV_PIX_FMT_AYUV64,
|
Pixel::AYUV64 => AV_PIX_FMT_AYUV64,
|
||||||
|
|
||||||
|
Pixel::P010LE => AV_PIX_FMT_P010LE,
|
||||||
|
Pixel::P010BE => AV_PIX_FMT_P010BE,
|
||||||
|
Pixel::GBRAP12BE => AV_PIX_FMT_GBRAP12BE,
|
||||||
|
Pixel::GBRAP12LE => AV_PIX_FMT_GBRAP12LE,
|
||||||
|
Pixel::GBRAP10LE => AV_PIX_FMT_GBRAP10LE,
|
||||||
|
Pixel::GBRAP10BE => AV_PIX_FMT_GBRAP10BE,
|
||||||
|
Pixel::MEDIACODEC => AV_PIX_FMT_MEDIACODEC,
|
||||||
|
Pixel::GRAY12BE => AV_PIX_FMT_GRAY12BE,
|
||||||
|
Pixel::GRAY12LE => AV_PIX_FMT_GRAY12LE,
|
||||||
|
Pixel::GRAY10BE => AV_PIX_FMT_GRAY10BE,
|
||||||
|
Pixel::GRAY10LE => AV_PIX_FMT_GRAY10LE,
|
||||||
|
Pixel::P016LE => AV_PIX_FMT_P016LE,
|
||||||
|
Pixel::P016BE => AV_PIX_FMT_P016BE,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ use std::mem;
|
|||||||
|
|
||||||
use libc::{c_int, uint8_t};
|
use libc::{c_int, uint8_t};
|
||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVSampleFormat::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
#[derive(Eq, PartialEq, Copy, Clone, Debug)]
|
||||||
pub enum Sample {
|
pub enum Sample {
|
||||||
@ -15,6 +16,7 @@ pub enum Sample {
|
|||||||
U8(Type),
|
U8(Type),
|
||||||
I16(Type),
|
I16(Type),
|
||||||
I32(Type),
|
I32(Type),
|
||||||
|
I64(Type),
|
||||||
F32(Type),
|
F32(Type),
|
||||||
F64(Type),
|
F64(Type),
|
||||||
}
|
}
|
||||||
@ -81,12 +83,14 @@ impl From<AVSampleFormat> for Sample {
|
|||||||
AV_SAMPLE_FMT_U8 => Sample::U8(Type::Packed),
|
AV_SAMPLE_FMT_U8 => Sample::U8(Type::Packed),
|
||||||
AV_SAMPLE_FMT_S16 => Sample::I16(Type::Packed),
|
AV_SAMPLE_FMT_S16 => Sample::I16(Type::Packed),
|
||||||
AV_SAMPLE_FMT_S32 => Sample::I32(Type::Packed),
|
AV_SAMPLE_FMT_S32 => Sample::I32(Type::Packed),
|
||||||
|
AV_SAMPLE_FMT_S64 => Sample::I64(Type::Packed),
|
||||||
AV_SAMPLE_FMT_FLT => Sample::F32(Type::Packed),
|
AV_SAMPLE_FMT_FLT => Sample::F32(Type::Packed),
|
||||||
AV_SAMPLE_FMT_DBL => Sample::F64(Type::Packed),
|
AV_SAMPLE_FMT_DBL => Sample::F64(Type::Packed),
|
||||||
|
|
||||||
AV_SAMPLE_FMT_U8P => Sample::U8(Type::Planar),
|
AV_SAMPLE_FMT_U8P => Sample::U8(Type::Planar),
|
||||||
AV_SAMPLE_FMT_S16P => Sample::I16(Type::Planar),
|
AV_SAMPLE_FMT_S16P => Sample::I16(Type::Planar),
|
||||||
AV_SAMPLE_FMT_S32P => Sample::I32(Type::Planar),
|
AV_SAMPLE_FMT_S32P => Sample::I32(Type::Planar),
|
||||||
|
AV_SAMPLE_FMT_S64P => Sample::I64(Type::Planar),
|
||||||
AV_SAMPLE_FMT_FLTP => Sample::F32(Type::Planar),
|
AV_SAMPLE_FMT_FLTP => Sample::F32(Type::Planar),
|
||||||
AV_SAMPLE_FMT_DBLP => Sample::F64(Type::Planar),
|
AV_SAMPLE_FMT_DBLP => Sample::F64(Type::Planar),
|
||||||
|
|
||||||
@ -115,12 +119,14 @@ impl Into<AVSampleFormat> for Sample {
|
|||||||
Sample::U8(Type::Packed) => AV_SAMPLE_FMT_U8,
|
Sample::U8(Type::Packed) => AV_SAMPLE_FMT_U8,
|
||||||
Sample::I16(Type::Packed) => AV_SAMPLE_FMT_S16,
|
Sample::I16(Type::Packed) => AV_SAMPLE_FMT_S16,
|
||||||
Sample::I32(Type::Packed) => AV_SAMPLE_FMT_S32,
|
Sample::I32(Type::Packed) => AV_SAMPLE_FMT_S32,
|
||||||
|
Sample::I64(Type::Packed) => AV_SAMPLE_FMT_S64,
|
||||||
Sample::F32(Type::Packed) => AV_SAMPLE_FMT_FLT,
|
Sample::F32(Type::Packed) => AV_SAMPLE_FMT_FLT,
|
||||||
Sample::F64(Type::Packed) => AV_SAMPLE_FMT_DBL,
|
Sample::F64(Type::Packed) => AV_SAMPLE_FMT_DBL,
|
||||||
|
|
||||||
Sample::U8(Type::Planar) => AV_SAMPLE_FMT_U8P,
|
Sample::U8(Type::Planar) => AV_SAMPLE_FMT_U8P,
|
||||||
Sample::I16(Type::Planar) => AV_SAMPLE_FMT_S16P,
|
Sample::I16(Type::Planar) => AV_SAMPLE_FMT_S16P,
|
||||||
Sample::I32(Type::Planar) => AV_SAMPLE_FMT_S32P,
|
Sample::I32(Type::Planar) => AV_SAMPLE_FMT_S32P,
|
||||||
|
Sample::I64(Type::Planar) => AV_SAMPLE_FMT_S64P,
|
||||||
Sample::F32(Type::Planar) => AV_SAMPLE_FMT_FLTP,
|
Sample::F32(Type::Planar) => AV_SAMPLE_FMT_FLTP,
|
||||||
Sample::F64(Type::Planar) => AV_SAMPLE_FMT_DBLP,
|
Sample::F64(Type::Planar) => AV_SAMPLE_FMT_DBLP,
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ use std::ffi::CStr;
|
|||||||
use std::str::from_utf8_unchecked;
|
use std::str::from_utf8_unchecked;
|
||||||
|
|
||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVFrameSideDataType::*;
|
||||||
use super::Frame;
|
use super::Frame;
|
||||||
use ::DictionaryRef;
|
use ::DictionaryRef;
|
||||||
|
|
||||||
@ -22,6 +23,7 @@ pub enum Type {
|
|||||||
AudioServiceType,
|
AudioServiceType,
|
||||||
MasteringDisplayMetadata,
|
MasteringDisplayMetadata,
|
||||||
GOPTimecode,
|
GOPTimecode,
|
||||||
|
Spherical,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Type {
|
impl Type {
|
||||||
@ -50,6 +52,7 @@ impl From<AVFrameSideDataType> for Type {
|
|||||||
AV_FRAME_DATA_AUDIO_SERVICE_TYPE => Type::AudioServiceType,
|
AV_FRAME_DATA_AUDIO_SERVICE_TYPE => Type::AudioServiceType,
|
||||||
AV_FRAME_DATA_MASTERING_DISPLAY_METADATA => Type::MasteringDisplayMetadata,
|
AV_FRAME_DATA_MASTERING_DISPLAY_METADATA => Type::MasteringDisplayMetadata,
|
||||||
AV_FRAME_DATA_GOP_TIMECODE => Type::GOPTimecode,
|
AV_FRAME_DATA_GOP_TIMECODE => Type::GOPTimecode,
|
||||||
|
AV_FRAME_DATA_SPHERICAL => Type::Spherical,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -71,6 +74,7 @@ impl Into<AVFrameSideDataType> for Type {
|
|||||||
Type::AudioServiceType => AV_FRAME_DATA_AUDIO_SERVICE_TYPE,
|
Type::AudioServiceType => AV_FRAME_DATA_AUDIO_SERVICE_TYPE,
|
||||||
Type::MasteringDisplayMetadata => AV_FRAME_DATA_MASTERING_DISPLAY_METADATA,
|
Type::MasteringDisplayMetadata => AV_FRAME_DATA_MASTERING_DISPLAY_METADATA,
|
||||||
Type::GOPTimecode => AV_FRAME_DATA_GOP_TIMECODE,
|
Type::GOPTimecode => AV_FRAME_DATA_GOP_TIMECODE,
|
||||||
|
Type::Spherical => AV_FRAME_DATA_SPHERICAL,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -102,7 +106,7 @@ impl<'a> SideData<'a> {
|
|||||||
#[inline]
|
#[inline]
|
||||||
pub fn kind(&self) -> Type {
|
pub fn kind(&self) -> Type {
|
||||||
unsafe {
|
unsafe {
|
||||||
Type::from((*self.as_ptr()).kind)
|
Type::from((*self.as_ptr()).type_)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVRounding::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
||||||
pub enum Rounding {
|
pub enum Rounding {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVMediaType::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
||||||
pub enum Type {
|
pub enum Type {
|
||||||
|
@ -2,6 +2,7 @@ mod traits;
|
|||||||
pub use self::traits::{Target, Settable, Gettable, Iterable};
|
pub use self::traits::{Target, Settable, Gettable, Iterable};
|
||||||
|
|
||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVOptionType::*;
|
||||||
|
|
||||||
#[derive(PartialEq, Eq, Copy, Clone, Debug)]
|
#[derive(PartialEq, Eq, Copy, Clone, Debug)]
|
||||||
pub enum Type {
|
pub enum Type {
|
||||||
@ -23,6 +24,8 @@ pub enum Type {
|
|||||||
Duration,
|
Duration,
|
||||||
Color,
|
Color,
|
||||||
ChannelLayout,
|
ChannelLayout,
|
||||||
|
c_ulong,
|
||||||
|
bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<AVOptionType> for Type {
|
impl From<AVOptionType> for Type {
|
||||||
@ -38,6 +41,8 @@ impl From<AVOptionType> for Type {
|
|||||||
AV_OPT_TYPE_BINARY => Type::Binary,
|
AV_OPT_TYPE_BINARY => Type::Binary,
|
||||||
AV_OPT_TYPE_DICT => Type::Dictionary,
|
AV_OPT_TYPE_DICT => Type::Dictionary,
|
||||||
AV_OPT_TYPE_CONST => Type::Constant,
|
AV_OPT_TYPE_CONST => Type::Constant,
|
||||||
|
AV_OPT_TYPE_UINT64 => Type::c_ulong,
|
||||||
|
AV_OPT_TYPE_BOOL => Type::bool,
|
||||||
|
|
||||||
AV_OPT_TYPE_IMAGE_SIZE => Type::ImageSize,
|
AV_OPT_TYPE_IMAGE_SIZE => Type::ImageSize,
|
||||||
AV_OPT_TYPE_PIXEL_FMT => Type::PixelFormat,
|
AV_OPT_TYPE_PIXEL_FMT => Type::PixelFormat,
|
||||||
@ -63,6 +68,8 @@ impl Into<AVOptionType> for Type {
|
|||||||
Type::Binary => AV_OPT_TYPE_BINARY,
|
Type::Binary => AV_OPT_TYPE_BINARY,
|
||||||
Type::Dictionary => AV_OPT_TYPE_DICT,
|
Type::Dictionary => AV_OPT_TYPE_DICT,
|
||||||
Type::Constant => AV_OPT_TYPE_CONST,
|
Type::Constant => AV_OPT_TYPE_CONST,
|
||||||
|
Type::c_ulong => AV_OPT_TYPE_UINT64,
|
||||||
|
Type::bool => AV_OPT_TYPE_BOOL,
|
||||||
|
|
||||||
Type::ImageSize => AV_OPT_TYPE_IMAGE_SIZE,
|
Type::ImageSize => AV_OPT_TYPE_IMAGE_SIZE,
|
||||||
Type::PixelFormat => AV_OPT_TYPE_PIXEL_FMT,
|
Type::PixelFormat => AV_OPT_TYPE_PIXEL_FMT,
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use ffi::*;
|
use ffi::*;
|
||||||
|
use ffi::AVPictureType::*;
|
||||||
|
|
||||||
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
#[derive(Eq, PartialEq, Clone, Copy, Debug)]
|
||||||
pub enum Type {
|
pub enum Type {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user