Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
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