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
f0b769c1
Commit
f0b769c1
authored
Jul 22, 2015
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lavc: add a packet side data type for VBV-like parameters
parent
e63e3797
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
69 additions
and
0 deletions
+69
-0
APIchanges
doc/APIchanges
+1
-0
avcodec.h
libavcodec/avcodec.h
+54
-0
utils.c
libavcodec/utils.c
+14
-0
No files found.
doc/APIchanges
View file @
f0b769c1
...
...
@@ -16,6 +16,7 @@ API changes, most recent first:
2015-xx-xx - xxxxxxx - lavc 57.11.0 - avcodec.h
xxxxxxx - Add av_packet_add_side_data().
xxxxxxx - Add AVCodecContext.coded_side_data.
xxxxxxx - Add AVCPBProperties API.
2015-xx-xx - xxxxxxx - lavc 57.9.1 - avcodec.h
Deprecate rtp_callback without replacement, i.e. it won't be possible to
...
...
libavcodec/avcodec.h
View file @
f0b769c1
...
...
@@ -1036,6 +1036,44 @@ typedef struct AVPanScan{
int16_t
position
[
3
][
2
];
}
AVPanScan
;
/**
* This structure describes the bitrate properties of an encoded bitstream. It
* roughly corresponds to a subset the VBV parameters for MPEG-2 or HRD
* parameters for H.264/HEVC.
*/
typedef
struct
AVCPBProperties
{
/**
* Maximum bitrate of the stream, in bits per second.
* Zero if unknown or unspecified.
*/
int
max_bitrate
;
/**
* Minimum bitrate of the stream, in bits per second.
* Zero if unknown or unspecified.
*/
int
min_bitrate
;
/**
* Average bitrate of the stream, in bits per second.
* Zero if unknown or unspecified.
*/
int
avg_bitrate
;
/**
* The size of the buffer to which the ratecontrol is applied, in bits.
* Zero if unknown or unspecified.
*/
int
buffer_size
;
/**
* The delay between the time the packet this structure is associated with
* is received and the time when it should be decoded, in periods of a 27MHz
* clock.
*
* UINT64_MAX when unknown or unspecified.
*/
uint64_t
vbv_delay
;
}
AVCPBProperties
;
#if FF_API_QSCALE_TYPE
#define FF_QSCALE_TYPE_MPEG1 0
#define FF_QSCALE_TYPE_MPEG2 1
...
...
@@ -1137,6 +1175,11 @@ enum AVPacketSideDataType {
* e.g. no decoder available for codec.
*/
AV_PKT_DATA_FALLBACK_TRACK
,
/**
* This side data corresponds to the AVCPBProperties struct.
*/
AV_PKT_DATA_CPB_PROPERTIES
,
};
typedef
struct
AVPacketSideData
{
...
...
@@ -4630,6 +4673,17 @@ const AVCodecDescriptor *avcodec_descriptor_next(const AVCodecDescriptor *prev);
*/
const
AVCodecDescriptor
*
avcodec_descriptor_get_by_name
(
const
char
*
name
);
/**
* Allocate a CPB properties structure and initialize its fields to default
* values.
*
* @param size if non-NULL, the size of the allocated struct will be written
* here. This is useful for embedding it in side data.
*
* @return the newly allocated struct or NULL on failure
*/
AVCPBProperties
*
av_cpb_properties_alloc
(
size_t
*
size
);
/**
* @}
*/
...
...
libavcodec/utils.c
View file @
f0b769c1
...
...
@@ -2369,3 +2369,17 @@ const uint8_t *avpriv_find_start_code(const uint8_t *restrict p,
return
p
+
4
;
}
AVCPBProperties
*
av_cpb_properties_alloc
(
size_t
*
size
)
{
AVCPBProperties
*
props
=
av_mallocz
(
sizeof
(
AVCPBProperties
));
if
(
!
props
)
return
NULL
;
if
(
size
)
*
size
=
sizeof
(
*
props
);
props
->
vbv_delay
=
UINT64_MAX
;
return
props
;
}
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