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
31f9032b
Commit
31f9032b
authored
Oct 26, 2011
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lavf: add audio_preload option, this allows interleaving audio earlier
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
54e40b9c
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
1 deletion
+19
-1
avformat.h
libavformat/avformat.h
+7
-0
options.c
libavformat/options.c
+1
-0
utils.c
libavformat/utils.c
+10
-0
version.h
libavformat/version.h
+1
-1
No files found.
libavformat/avformat.h
View file @
31f9032b
...
@@ -1078,6 +1078,13 @@ typedef struct AVFormatContext {
...
@@ -1078,6 +1078,13 @@ typedef struct AVFormatContext {
*/
*/
int
ts_id
;
int
ts_id
;
/**
* Audio preload in microseconds.
* Note, not all formats support this and unpredictable things may happen if it is used when not supported.
* - encoding: Set by user via AVOptions (NO direct access)
* - decoding: unused
*/
int
audio_preload
;
/*****************************************************************
/*****************************************************************
* All fields below this line are not part of the public API. They
* All fields below this line are not part of the public API. They
...
...
libavformat/options.c
View file @
31f9032b
...
@@ -116,6 +116,7 @@ static const AVOption options[]={
...
@@ -116,6 +116,7 @@ static const AVOption options[]={
{
"careful"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{.
dbl
=
FF_ER_CAREFUL
},
INT_MIN
,
INT_MAX
,
D
,
"fer"
},
{
"careful"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{.
dbl
=
FF_ER_CAREFUL
},
INT_MIN
,
INT_MAX
,
D
,
"fer"
},
{
"explode"
,
"abort decoding on error recognition"
,
0
,
AV_OPT_TYPE_CONST
,
{.
dbl
=
FF_ER_EXPLODE
},
INT_MIN
,
INT_MAX
,
D
,
"fer"
},
{
"explode"
,
"abort decoding on error recognition"
,
0
,
AV_OPT_TYPE_CONST
,
{.
dbl
=
FF_ER_EXPLODE
},
INT_MIN
,
INT_MAX
,
D
,
"fer"
},
{
"fpsprobesize"
,
"number of frames used to probe fps"
,
OFFSET
(
fps_probe_size
),
AV_OPT_TYPE_INT
,
{.
dbl
=
-
1
},
-
1
,
INT_MAX
-
1
,
D
},
{
"fpsprobesize"
,
"number of frames used to probe fps"
,
OFFSET
(
fps_probe_size
),
AV_OPT_TYPE_INT
,
{.
dbl
=
-
1
},
-
1
,
INT_MAX
-
1
,
D
},
{
"audio_preload"
,
"microseconds by which audio packets should be interleaved earlier"
,
OFFSET
(
audio_preload
),
AV_OPT_TYPE_INT
,
{.
dbl
=
0
},
0
,
INT_MAX
-
1
,
E
},
{
NULL
},
{
NULL
},
};
};
...
...
libavformat/utils.c
View file @
31f9032b
...
@@ -3308,6 +3308,16 @@ static int ff_interleave_compare_dts(AVFormatContext *s, AVPacket *next, AVPacke
...
@@ -3308,6 +3308,16 @@ static int ff_interleave_compare_dts(AVFormatContext *s, AVPacket *next, AVPacke
AVStream
*
st2
=
s
->
streams
[
next
->
stream_index
];
AVStream
*
st2
=
s
->
streams
[
next
->
stream_index
];
int
comp
=
av_compare_ts
(
next
->
dts
,
st2
->
time_base
,
pkt
->
dts
,
int
comp
=
av_compare_ts
(
next
->
dts
,
st2
->
time_base
,
pkt
->
dts
,
st
->
time_base
);
st
->
time_base
);
if
(
s
->
audio_preload
&&
((
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_AUDIO
)
!=
(
st2
->
codec
->
codec_type
==
AVMEDIA_TYPE_AUDIO
))){
int64_t
ts
=
av_rescale_q
(
pkt
->
dts
,
st
->
time_base
,
AV_TIME_BASE_Q
)
-
s
->
audio_preload
*
(
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_AUDIO
);
int64_t
ts2
=
av_rescale_q
(
next
->
dts
,
st2
->
time_base
,
AV_TIME_BASE_Q
)
-
s
->
audio_preload
*
(
st2
->
codec
->
codec_type
==
AVMEDIA_TYPE_AUDIO
);
if
(
ts
==
ts2
){
ts
=
(
pkt
->
dts
*
st
->
time_base
.
num
*
AV_TIME_BASE
-
s
->
audio_preload
*
(
int64_t
)(
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_AUDIO
)
*
st
->
time_base
.
den
)
*
st2
->
time_base
.
den
-
(
next
->
dts
*
st2
->
time_base
.
num
*
AV_TIME_BASE
-
s
->
audio_preload
*
(
int64_t
)(
st2
->
codec
->
codec_type
==
AVMEDIA_TYPE_AUDIO
)
*
st2
->
time_base
.
den
)
*
st
->
time_base
.
den
;
ts2
=
0
;
}
comp
=
(
ts
>
ts2
)
-
(
ts
<
ts2
);
}
if
(
comp
==
0
)
if
(
comp
==
0
)
return
pkt
->
stream_index
<
next
->
stream_index
;
return
pkt
->
stream_index
<
next
->
stream_index
;
...
...
libavformat/version.h
View file @
31f9032b
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
#include "libavutil/avutil.h"
#include "libavutil/avutil.h"
#define LIBAVFORMAT_VERSION_MAJOR 53
#define LIBAVFORMAT_VERSION_MAJOR 53
#define LIBAVFORMAT_VERSION_MINOR 2
2
#define LIBAVFORMAT_VERSION_MINOR 2
3
#define LIBAVFORMAT_VERSION_MICRO 0
#define LIBAVFORMAT_VERSION_MICRO 0
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
...
...
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