Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
external
ffmpeg
Commits
e9cef897
Commit
e9cef897
authored
May 26, 2011
by
James Zern
Committed by
Justin Ruggles
May 20, 2012
Browse files
avformat: Add a flag to mark muxers that allow (non strict) monotone timestamps.
Signed-off-by:
Justin Ruggles
<
justin.ruggles@gmail.com
>
parent
5d603f1b
Changes
11
Hide whitespace changes
Inline
Side-by-side
doc/APIchanges
View file @
e9cef897
...
...
@@ -13,6 +13,10 @@ libavutil: 2011-04-18
API changes, most recent first:
2012-05-xx - xxxxxxx - lavf 54.3.0
Add AVFMT_TS_NONSTRICT format flag to indicate that a muxer supports
non-increasing monotone timestamps.
2012-05-15 - lavfi 2.17.0
Add support for audio filters
ac71230/a2cd9be - add video/audio buffer sink in a new installed
...
...
libavformat/avformat.h
View file @
e9cef897
...
...
@@ -351,6 +351,9 @@ typedef struct AVProbeData {
#define AVFMT_NOGENSEARCH 0x4000
/**< Format does not allow to fallback to generic search */
#define AVFMT_NO_BYTE_SEEK 0x8000
/**< Format does not allow seeking by bytes */
#define AVFMT_ALLOW_FLUSH 0x10000
/**< Format allows flushing. If not set, the muxer will not receive a NULL packet in the write_packet function. */
#define AVFMT_TS_NONSTRICT 0x20000
/**< Format does not require strictly
increasing timestamps, but they must
still be monotonic */
/**
* @addtogroup lavf_encoding
...
...
@@ -373,7 +376,8 @@ typedef struct AVOutputFormat {
/**
* can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_RAWPICTURE,
* AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS,
* AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH
* AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH,
* AVFMT_TS_NONSTRICT
*/
int
flags
;
...
...
libavformat/flvenc.c
View file @
e9cef897
...
...
@@ -488,5 +488,6 @@ AVOutputFormat ff_flv_muxer = {
.
codec_tag
=
(
const
AVCodecTag
*
const
[]){
flv_video_codec_ids
,
flv_audio_codec_ids
,
0
},
.
flags
=
AVFMT_GLOBALHEADER
|
AVFMT_VARIABLE_FPS
,
.
flags
=
AVFMT_GLOBALHEADER
|
AVFMT_VARIABLE_FPS
|
AVFMT_TS_NONSTRICT
,
};
libavformat/framecrcenc.c
View file @
e9cef897
...
...
@@ -43,5 +43,5 @@ AVOutputFormat ff_framecrc_muxer = {
.
video_codec
=
CODEC_ID_RAWVIDEO
,
.
write_header
=
ff_framehash_write_header
,
.
write_packet
=
framecrc_write_packet
,
.
flags
=
AVFMT_VARIABLE_FPS
,
.
flags
=
AVFMT_VARIABLE_FPS
|
AVFMT_TS_NONSTRICT
,
};
libavformat/matroskaenc.c
View file @
e9cef897
...
...
@@ -1305,7 +1305,8 @@ AVOutputFormat ff_matroska_muxer = {
.
write_header
=
mkv_write_header
,
.
write_packet
=
mkv_write_packet
,
.
write_trailer
=
mkv_write_trailer
,
.
flags
=
AVFMT_GLOBALHEADER
|
AVFMT_VARIABLE_FPS
,
.
flags
=
AVFMT_GLOBALHEADER
|
AVFMT_VARIABLE_FPS
|
AVFMT_TS_NONSTRICT
,
.
codec_tag
=
(
const
AVCodecTag
*
const
[]){
ff_codec_bmp_tags
,
ff_codec_wav_tags
,
0
},
...
...
@@ -1326,7 +1327,8 @@ AVOutputFormat ff_webm_muxer = {
.
write_header
=
mkv_write_header
,
.
write_packet
=
mkv_write_packet
,
.
write_trailer
=
mkv_write_trailer
,
.
flags
=
AVFMT_GLOBALHEADER
|
AVFMT_VARIABLE_FPS
,
.
flags
=
AVFMT_GLOBALHEADER
|
AVFMT_VARIABLE_FPS
|
AVFMT_TS_NONSTRICT
,
};
#endif
...
...
@@ -1346,7 +1348,7 @@ AVOutputFormat ff_matroska_audio_muxer = {
.
write_header
=
mkv_write_header
,
.
write_packet
=
mkv_write_packet
,
.
write_trailer
=
mkv_write_trailer
,
.
flags
=
AVFMT_GLOBALHEADER
,
.
flags
=
AVFMT_GLOBALHEADER
|
AVFMT_TS_NONSTRICT
,
.
codec_tag
=
(
const
AVCodecTag
*
const
[]){
ff_codec_wav_tags
,
0
},
};
#endif
libavformat/md5enc.c
View file @
e9cef897
...
...
@@ -106,6 +106,6 @@ AVOutputFormat ff_framemd5_muxer = {
.
video_codec
=
CODEC_ID_RAWVIDEO
,
.
write_header
=
ff_framehash_write_header
,
.
write_packet
=
framemd5_write_packet
,
.
flags
=
AVFMT_VARIABLE_FPS
,
.
flags
=
AVFMT_VARIABLE_FPS
|
AVFMT_TS_NONSTRICT
,
};
#endif
libavformat/smjpegenc.c
View file @
e9cef897
...
...
@@ -144,6 +144,6 @@ AVOutputFormat ff_smjpeg_muxer = {
.
write_header
=
smjpeg_write_header
,
.
write_packet
=
smjpeg_write_packet
,
.
write_trailer
=
smjpeg_write_trailer
,
.
flags
=
AVFMT_GLOBALHEADER
,
.
flags
=
AVFMT_GLOBALHEADER
|
AVFMT_TS_NONSTRICT
,
.
codec_tag
=
(
const
AVCodecTag
*
const
[]){
ff_codec_smjpeg_video_tags
,
ff_codec_smjpeg_audio_tags
,
0
},
};
libavformat/swfenc.c
View file @
e9cef897
...
...
@@ -513,6 +513,7 @@ AVOutputFormat ff_swf_muxer = {
.
write_header
=
swf_write_header
,
.
write_packet
=
swf_write_packet
,
.
write_trailer
=
swf_write_trailer
,
.
flags
=
AVFMT_TS_NONSTRICT
,
};
#endif
#if CONFIG_AVM2_MUXER
...
...
@@ -526,5 +527,6 @@ AVOutputFormat ff_avm2_muxer = {
.
write_header
=
swf_write_header
,
.
write_packet
=
swf_write_packet
,
.
write_trailer
=
swf_write_trailer
,
.
flags
=
AVFMT_TS_NONSTRICT
,
};
#endif
libavformat/utils.c
View file @
e9cef897
...
...
@@ -2962,7 +2962,9 @@ static int compute_pkt_fields2(AVFormatContext *s, AVStream *st, AVPacket *pkt){
pkt
->
dts
=
st
->
pts_buffer
[
0
];
}
if
(
st
->
cur_dts
&&
st
->
cur_dts
!=
AV_NOPTS_VALUE
&&
st
->
cur_dts
>=
pkt
->
dts
){
if
(
st
->
cur_dts
&&
st
->
cur_dts
!=
AV_NOPTS_VALUE
&&
((
!
(
s
->
oformat
->
flags
&
AVFMT_TS_NONSTRICT
)
&&
st
->
cur_dts
>=
pkt
->
dts
)
||
st
->
cur_dts
>
pkt
->
dts
))
{
av_log
(
s
,
AV_LOG_ERROR
,
"Application provided invalid, non monotonically increasing dts to muxer in stream %d: %"
PRId64
" >= %"
PRId64
"
\n
"
,
st
->
index
,
st
->
cur_dts
,
pkt
->
dts
);
...
...
libavformat/version.h
View file @
e9cef897
...
...
@@ -30,7 +30,7 @@
#include "libavutil/avutil.h"
#define LIBAVFORMAT_VERSION_MAJOR 54
#define LIBAVFORMAT_VERSION_MINOR
2
#define LIBAVFORMAT_VERSION_MINOR
3
#define LIBAVFORMAT_VERSION_MICRO 0
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
...
...
libavformat/wav.c
View file @
e9cef897
...
...
@@ -216,6 +216,7 @@ AVOutputFormat ff_wav_muxer = {
.
write_header
=
wav_write_header
,
.
write_packet
=
wav_write_packet
,
.
write_trailer
=
wav_write_trailer
,
.
flags
=
AVFMT_TS_NONSTRICT
,
.
codec_tag
=
(
const
AVCodecTag
*
const
[]){
ff_codec_wav_tags
,
0
},
.
priv_class
=
&
wav_muxer_class
,
};
...
...
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