Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
672946c7
Commit
672946c7
authored
Apr 07, 2020
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avcodec.h: split AVCodecDescriptor API into its own header
parent
c6978418
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
134 additions
and
93 deletions
+134
-93
APIchanges
doc/APIchanges
+2
-1
avcodec.h
libavcodec/avcodec.h
+1
-91
codec_desc.c
libavcodec/codec_desc.c
+3
-1
codec_desc.h
libavcodec/codec_desc.h
+128
-0
No files found.
doc/APIchanges
View file @
672946c7
...
...
@@ -15,7 +15,8 @@ libavutil: 2017-10-21
API changes, most recent first:
2020-xx-xx - xxxxxxxxxx - lavc 58.78.100 - avcodec.h codec_id.h packet.h
2020-xx-xx - xxxxxxxxxx - lavc 58.78.100 - avcodec.h codec_desc.h codec_id.h packet.h
Move AVCodecDesc-related public API to new header codec_desc.h.
Move AVCodecID enum to new header codec_id.h.
Move AVPacket-related public API to new header packet.h.
...
...
libavcodec/avcodec.h
View file @
672946c7
...
...
@@ -41,6 +41,7 @@
#include "libavutil/pixfmt.h"
#include "libavutil/rational.h"
#include "codec_desc.h"
#include "codec_id.h"
#include "packet.h"
#include "version.h"
...
...
@@ -200,77 +201,6 @@
* @{
*/
/**
* This struct describes the properties of a single codec described by an
* AVCodecID.
* @see avcodec_descriptor_get()
*/
typedef
struct
AVCodecDescriptor
{
enum
AVCodecID
id
;
enum
AVMediaType
type
;
/**
* Name of the codec described by this descriptor. It is non-empty and
* unique for each codec descriptor. It should contain alphanumeric
* characters and '_' only.
*/
const
char
*
name
;
/**
* A more descriptive name for this codec. May be NULL.
*/
const
char
*
long_name
;
/**
* Codec properties, a combination of AV_CODEC_PROP_* flags.
*/
int
props
;
/**
* MIME type(s) associated with the codec.
* May be NULL; if not, a NULL-terminated array of MIME types.
* The first item is always non-NULL and is the preferred MIME type.
*/
const
char
*
const
*
mime_types
;
/**
* If non-NULL, an array of profiles recognized for this codec.
* Terminated with FF_PROFILE_UNKNOWN.
*/
const
struct
AVProfile
*
profiles
;
}
AVCodecDescriptor
;
/**
* Codec uses only intra compression.
* Video and audio codecs only.
*/
#define AV_CODEC_PROP_INTRA_ONLY (1 << 0)
/**
* Codec supports lossy compression. Audio and video codecs only.
* @note a codec may support both lossy and lossless
* compression modes
*/
#define AV_CODEC_PROP_LOSSY (1 << 1)
/**
* Codec supports lossless compression. Audio and video codecs only.
*/
#define AV_CODEC_PROP_LOSSLESS (1 << 2)
/**
* Codec supports frame reordering. That is, the coded order (the order in which
* the encoded packets are output by the encoders / stored / input to the
* decoders) may be different from the presentation order of the corresponding
* frames.
*
* For codecs that do not have this property set, PTS and DTS should always be
* equal.
*/
#define AV_CODEC_PROP_REORDER (1 << 3)
/**
* Subtitle codec is bitmap based
* Decoded AVSubtitle data can be read from the AVSubtitleRect->pict field.
*/
#define AV_CODEC_PROP_BITMAP_SUB (1 << 16)
/**
* Subtitle codec is text based.
* Decoded AVSubtitle data can be read from the AVSubtitleRect->ass field.
*/
#define AV_CODEC_PROP_TEXT_SUB (1 << 17)
/**
* @ingroup lavc_decoding
* Required number of additionally allocated bytes at the end of the input bitstream for decoding.
...
...
@@ -5059,26 +4989,6 @@ int av_codec_is_encoder(const AVCodec *codec);
*/
int
av_codec_is_decoder
(
const
AVCodec
*
codec
);
/**
* @return descriptor for given codec ID or NULL if no descriptor exists.
*/
const
AVCodecDescriptor
*
avcodec_descriptor_get
(
enum
AVCodecID
id
);
/**
* Iterate over all codec descriptors known to libavcodec.
*
* @param prev previous descriptor. NULL to get the first descriptor.
*
* @return next descriptor or NULL after the last descriptor
*/
const
AVCodecDescriptor
*
avcodec_descriptor_next
(
const
AVCodecDescriptor
*
prev
);
/**
* @return codec descriptor with the given name or NULL if no such descriptor
* exists.
*/
const
AVCodecDescriptor
*
avcodec_descriptor_get_by_name
(
const
char
*
name
);
/**
* Allocate a CPB properties structure and initialize its fields to default
* values.
...
...
libavcodec/codec_desc.c
View file @
672946c7
...
...
@@ -23,7 +23,9 @@
#include "libavutil/common.h"
#include "libavutil/internal.h"
#include "avcodec.h"
#include "codec_id.h"
#include "codec_desc.h"
#include "profiles.h"
#include "version.h"
...
...
libavcodec/codec_desc.h
0 → 100644
View file @
672946c7
/*
* Codec descriptors 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_CODEC_DESC_H
#define AVCODEC_CODEC_DESC_H
#include "libavutil/avutil.h"
#include "codec_id.h"
/**
* @addtogroup lavc_core
* @{
*/
/**
* This struct describes the properties of a single codec described by an
* AVCodecID.
* @see avcodec_descriptor_get()
*/
typedef
struct
AVCodecDescriptor
{
enum
AVCodecID
id
;
enum
AVMediaType
type
;
/**
* Name of the codec described by this descriptor. It is non-empty and
* unique for each codec descriptor. It should contain alphanumeric
* characters and '_' only.
*/
const
char
*
name
;
/**
* A more descriptive name for this codec. May be NULL.
*/
const
char
*
long_name
;
/**
* Codec properties, a combination of AV_CODEC_PROP_* flags.
*/
int
props
;
/**
* MIME type(s) associated with the codec.
* May be NULL; if not, a NULL-terminated array of MIME types.
* The first item is always non-NULL and is the preferred MIME type.
*/
const
char
*
const
*
mime_types
;
/**
* If non-NULL, an array of profiles recognized for this codec.
* Terminated with FF_PROFILE_UNKNOWN.
*/
const
struct
AVProfile
*
profiles
;
}
AVCodecDescriptor
;
/**
* Codec uses only intra compression.
* Video and audio codecs only.
*/
#define AV_CODEC_PROP_INTRA_ONLY (1 << 0)
/**
* Codec supports lossy compression. Audio and video codecs only.
* @note a codec may support both lossy and lossless
* compression modes
*/
#define AV_CODEC_PROP_LOSSY (1 << 1)
/**
* Codec supports lossless compression. Audio and video codecs only.
*/
#define AV_CODEC_PROP_LOSSLESS (1 << 2)
/**
* Codec supports frame reordering. That is, the coded order (the order in which
* the encoded packets are output by the encoders / stored / input to the
* decoders) may be different from the presentation order of the corresponding
* frames.
*
* For codecs that do not have this property set, PTS and DTS should always be
* equal.
*/
#define AV_CODEC_PROP_REORDER (1 << 3)
/**
* Subtitle codec is bitmap based
* Decoded AVSubtitle data can be read from the AVSubtitleRect->pict field.
*/
#define AV_CODEC_PROP_BITMAP_SUB (1 << 16)
/**
* Subtitle codec is text based.
* Decoded AVSubtitle data can be read from the AVSubtitleRect->ass field.
*/
#define AV_CODEC_PROP_TEXT_SUB (1 << 17)
/**
* @return descriptor for given codec ID or NULL if no descriptor exists.
*/
const
AVCodecDescriptor
*
avcodec_descriptor_get
(
enum
AVCodecID
id
);
/**
* Iterate over all codec descriptors known to libavcodec.
*
* @param prev previous descriptor. NULL to get the first descriptor.
*
* @return next descriptor or NULL after the last descriptor
*/
const
AVCodecDescriptor
*
avcodec_descriptor_next
(
const
AVCodecDescriptor
*
prev
);
/**
* @return codec descriptor with the given name or NULL if no such descriptor
* exists.
*/
const
AVCodecDescriptor
*
avcodec_descriptor_get_by_name
(
const
char
*
name
);
/**
* @}
*/
#endif // AVCODEC_CODEC_DESC_H
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment