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
5f847bf6
Commit
5f847bf6
authored
Jul 07, 2011
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lavf: deprecate AVFormatContext.timestamp
It's replaced by 'creation_time' metadata tag.
parent
b12c2592
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
71 additions
and
14 deletions
+71
-14
ffmpeg.c
ffmpeg.c
+8
-7
avformat.h
libavformat/avformat.h
+6
-1
dvenc.c
libavformat/dvenc.c
+12
-2
gxfenc.c
libavformat/gxfenc.c
+16
-2
movenc.c
libavformat/movenc.c
+13
-1
mxfenc.c
libavformat/mxfenc.c
+13
-1
version.h
libavformat/version.h
+3
-0
No files found.
ffmpeg.c
View file @
5f847bf6
...
@@ -183,7 +183,6 @@ static float mux_max_delay= 0.7;
...
@@ -183,7 +183,6 @@ static float mux_max_delay= 0.7;
static
int64_t
recording_time
=
INT64_MAX
;
static
int64_t
recording_time
=
INT64_MAX
;
static
int64_t
start_time
=
0
;
static
int64_t
start_time
=
0
;
static
int64_t
recording_timestamp
=
0
;
static
int64_t
input_ts_offset
=
0
;
static
int64_t
input_ts_offset
=
0
;
static
int
file_overwrite
=
0
;
static
int
file_overwrite
=
0
;
static
AVDictionary
*
metadata
;
static
AVDictionary
*
metadata
;
...
@@ -712,9 +711,6 @@ static int read_ffserver_streams(AVFormatContext *s, const char *filename)
...
@@ -712,9 +711,6 @@ static int read_ffserver_streams(AVFormatContext *s, const char *filename)
nopts
=
1
;
nopts
=
1
;
}
}
if
(
!
nopts
)
s
->
timestamp
=
av_gettime
();
av_close_input_file
(
ic
);
av_close_input_file
(
ic
);
return
0
;
return
0
;
}
}
...
@@ -3109,7 +3105,14 @@ static int opt_start_time(const char *opt, const char *arg)
...
@@ -3109,7 +3105,14 @@ static int opt_start_time(const char *opt, const char *arg)
static
int
opt_recording_timestamp
(
const
char
*
opt
,
const
char
*
arg
)
static
int
opt_recording_timestamp
(
const
char
*
opt
,
const
char
*
arg
)
{
{
recording_timestamp
=
parse_time_or_die
(
opt
,
arg
,
0
)
/
1000000
;
char
buf
[
128
];
int64_t
recording_timestamp
=
parse_time_or_die
(
opt
,
arg
,
0
)
/
1E6
;
struct
tm
time
=
*
gmtime
((
time_t
*
)
&
recording_timestamp
);
strftime
(
buf
,
sizeof
(
buf
),
"creation_time=%FT%T%z"
,
&
time
);
opt_metadata
(
"metadata"
,
buf
);
av_log
(
NULL
,
AV_LOG_WARNING
,
"%s is deprecated, set the 'creation_time' metadata "
"tag instead.
\n
"
,
opt
);
return
0
;
return
0
;
}
}
...
@@ -3823,8 +3826,6 @@ static void opt_output_file(const char *filename)
...
@@ -3823,8 +3826,6 @@ static void opt_output_file(const char *filename)
if
(
use_subtitle
)
new_subtitle_stream
(
oc
,
nb_output_files
);
if
(
use_subtitle
)
new_subtitle_stream
(
oc
,
nb_output_files
);
if
(
use_data
)
new_data_stream
(
oc
,
nb_output_files
);
if
(
use_data
)
new_data_stream
(
oc
,
nb_output_files
);
oc
->
timestamp
=
recording_timestamp
;
av_dict_copy
(
&
oc
->
metadata
,
metadata
,
0
);
av_dict_copy
(
&
oc
->
metadata
,
metadata
,
0
);
av_dict_free
(
&
metadata
);
av_dict_free
(
&
metadata
);
}
}
...
...
libavformat/avformat.h
View file @
5f847bf6
...
@@ -674,7 +674,12 @@ typedef struct AVFormatContext {
...
@@ -674,7 +674,12 @@ typedef struct AVFormatContext {
AVStream
**
streams
;
AVStream
**
streams
;
char
filename
[
1024
];
/**< input or output filename */
char
filename
[
1024
];
/**< input or output filename */
/* stream info */
/* stream info */
int64_t
timestamp
;
#if FF_API_TIMESTAMP
/**
* @deprecated use 'creation_time' metadata tag instead
*/
attribute_deprecated
int64_t
timestamp
;
#endif
int
ctx_flags
;
/**< Format-specific flags, see AVFMTCTX_xx */
int
ctx_flags
;
/**< Format-specific flags, see AVFMTCTX_xx */
/* private data for pts handling (do not modify directly). */
/* private data for pts handling (do not modify directly). */
...
...
libavformat/dvenc.c
View file @
5f847bf6
...
@@ -43,7 +43,7 @@ struct DVMuxContext {
...
@@ -43,7 +43,7 @@ struct DVMuxContext {
AVStream
*
ast
[
2
];
/* stereo audio streams */
AVStream
*
ast
[
2
];
/* stereo audio streams */
AVFifoBuffer
*
audio_data
[
2
];
/* FIFO for storing excessive amounts of PCM */
AVFifoBuffer
*
audio_data
[
2
];
/* FIFO for storing excessive amounts of PCM */
int
frames
;
/* current frame number */
int
frames
;
/* current frame number */
time_t
start_time
;
/* recording start time */
int64_t
start_time
;
/* recording start time */
int
has_audio
;
/* frame under contruction has audio */
int
has_audio
;
/* frame under contruction has audio */
int
has_video
;
/* frame under contruction has video */
int
has_video
;
/* frame under contruction has video */
uint8_t
frame_buf
[
DV_MAX_FRAME_SIZE
];
/* frame under contruction */
uint8_t
frame_buf
[
DV_MAX_FRAME_SIZE
];
/* frame under contruction */
...
@@ -290,6 +290,7 @@ static DVMuxContext* dv_init_mux(AVFormatContext* s)
...
@@ -290,6 +290,7 @@ static DVMuxContext* dv_init_mux(AVFormatContext* s)
{
{
DVMuxContext
*
c
=
s
->
priv_data
;
DVMuxContext
*
c
=
s
->
priv_data
;
AVStream
*
vst
=
NULL
;
AVStream
*
vst
=
NULL
;
AVDictionaryEntry
*
t
;
int
i
;
int
i
;
/* we support at most 1 video and 2 audio streams */
/* we support at most 1 video and 2 audio streams */
...
@@ -337,7 +338,16 @@ static DVMuxContext* dv_init_mux(AVFormatContext* s)
...
@@ -337,7 +338,16 @@ static DVMuxContext* dv_init_mux(AVFormatContext* s)
c
->
frames
=
0
;
c
->
frames
=
0
;
c
->
has_audio
=
0
;
c
->
has_audio
=
0
;
c
->
has_video
=
0
;
c
->
has_video
=
0
;
c
->
start_time
=
(
time_t
)
s
->
timestamp
;
#if FF_API_TIMESTAMP
if
(
s
->
timestamp
)
c
->
start_time
=
s
->
timestamp
;
else
#endif
if
(
t
=
av_dict_get
(
s
->
metadata
,
"creation_time"
,
NULL
,
0
))
{
struct
tm
time
=
{
0
};
strptime
(
t
->
value
,
"%Y - %m - %dT%T"
,
&
time
);
c
->
start_time
=
mktime
(
&
time
);
}
for
(
i
=
0
;
i
<
c
->
n_ast
;
i
++
)
{
for
(
i
=
0
;
i
<
c
->
n_ast
;
i
++
)
{
if
(
c
->
ast
[
i
]
&&
!
(
c
->
audio_data
[
i
]
=
av_fifo_alloc
(
100
*
AVCODEC_MAX_AUDIO_FRAME_SIZE
)))
{
if
(
c
->
ast
[
i
]
&&
!
(
c
->
audio_data
[
i
]
=
av_fifo_alloc
(
100
*
AVCODEC_MAX_AUDIO_FRAME_SIZE
)))
{
...
...
libavformat/gxfenc.c
View file @
5f847bf6
...
@@ -394,6 +394,20 @@ static int gxf_write_umf_material_description(AVFormatContext *s)
...
@@ -394,6 +394,20 @@ static int gxf_write_umf_material_description(AVFormatContext *s)
GXFContext
*
gxf
=
s
->
priv_data
;
GXFContext
*
gxf
=
s
->
priv_data
;
AVIOContext
*
pb
=
s
->
pb
;
AVIOContext
*
pb
=
s
->
pb
;
int
timecode_base
=
gxf
->
time_base
.
den
==
60000
?
60
:
50
;
int
timecode_base
=
gxf
->
time_base
.
den
==
60000
?
60
:
50
;
int64_t
timestamp
=
0
;
AVDictionaryEntry
*
t
;
#if FF_API_TIMESTAMP
if
(
s
->
timestamp
)
timestamp
=
s
->
timestamp
;
else
#endif
if
(
t
=
av_dict_get
(
s
->
metadata
,
"creation_time"
,
NULL
,
0
))
{
struct
tm
time
=
{
0
};
strptime
(
t
->
value
,
"%Y - %m - %dT%T"
,
&
time
);
timestamp
=
mktime
(
&
time
);
}
// XXX drop frame
// XXX drop frame
uint32_t
timecode
=
uint32_t
timecode
=
...
@@ -409,8 +423,8 @@ static int gxf_write_umf_material_description(AVFormatContext *s)
...
@@ -409,8 +423,8 @@ static int gxf_write_umf_material_description(AVFormatContext *s)
avio_wl32
(
pb
,
gxf
->
nb_fields
);
/* mark out */
avio_wl32
(
pb
,
gxf
->
nb_fields
);
/* mark out */
avio_wl32
(
pb
,
0
);
/* timecode mark in */
avio_wl32
(
pb
,
0
);
/* timecode mark in */
avio_wl32
(
pb
,
timecode
);
/* timecode mark out */
avio_wl32
(
pb
,
timecode
);
/* timecode mark out */
avio_wl64
(
pb
,
s
->
timestamp
);
/* modification time */
avio_wl64
(
pb
,
timestamp
);
/* modification time */
avio_wl64
(
pb
,
s
->
timestamp
);
/* creation time */
avio_wl64
(
pb
,
timestamp
);
/* creation time */
avio_wl16
(
pb
,
0
);
/* reserved */
avio_wl16
(
pb
,
0
);
/* reserved */
avio_wl16
(
pb
,
0
);
/* reserved */
avio_wl16
(
pb
,
0
);
/* reserved */
avio_wl16
(
pb
,
gxf
->
audio_tracks
);
avio_wl16
(
pb
,
gxf
->
audio_tracks
);
...
...
libavformat/movenc.c
View file @
5f847bf6
...
@@ -2129,6 +2129,7 @@ static int mov_write_header(AVFormatContext *s)
...
@@ -2129,6 +2129,7 @@ static int mov_write_header(AVFormatContext *s)
{
{
AVIOContext
*
pb
=
s
->
pb
;
AVIOContext
*
pb
=
s
->
pb
;
MOVMuxContext
*
mov
=
s
->
priv_data
;
MOVMuxContext
*
mov
=
s
->
priv_data
;
AVDictionaryEntry
*
t
;
int
i
,
hint_track
=
0
;
int
i
,
hint_track
=
0
;
if
(
!
s
->
pb
->
seekable
)
{
if
(
!
s
->
pb
->
seekable
)
{
...
@@ -2259,7 +2260,18 @@ static int mov_write_header(AVFormatContext *s)
...
@@ -2259,7 +2260,18 @@ static int mov_write_header(AVFormatContext *s)
}
}
mov_write_mdat_tag
(
pb
,
mov
);
mov_write_mdat_tag
(
pb
,
mov
);
mov
->
time
=
s
->
timestamp
+
0x7C25B080
;
//1970 based -> 1904 based
#if FF_API_TIMESTAMP
if
(
s
->
timestamp
)
mov
->
time
=
s
->
timestamp
;
else
#endif
if
(
t
=
av_dict_get
(
s
->
metadata
,
"creation_time"
,
NULL
,
0
))
{
struct
tm
time
=
{
0
};
strptime
(
t
->
value
,
"%Y - %m - %dT%T"
,
&
time
);
mov
->
time
=
mktime
(
&
time
);
}
mov
->
time
+=
0x7C25B080
;
//1970 based -> 1904 based
if
(
mov
->
chapter_track
)
if
(
mov
->
chapter_track
)
mov_create_chapter_track
(
s
,
mov
->
chapter_track
);
mov_create_chapter_track
(
s
,
mov
->
chapter_track
);
...
...
libavformat/mxfenc.c
View file @
5f847bf6
...
@@ -1407,6 +1407,8 @@ static int mxf_write_header(AVFormatContext *s)
...
@@ -1407,6 +1407,8 @@ static int mxf_write_header(AVFormatContext *s)
int
i
;
int
i
;
uint8_t
present
[
FF_ARRAY_ELEMS
(
mxf_essence_container_uls
)]
=
{
0
};
uint8_t
present
[
FF_ARRAY_ELEMS
(
mxf_essence_container_uls
)]
=
{
0
};
const
int
*
samples_per_frame
=
NULL
;
const
int
*
samples_per_frame
=
NULL
;
AVDictionaryEntry
*
t
;
int64_t
timestamp
=
0
;
if
(
!
s
->
nb_streams
)
if
(
!
s
->
nb_streams
)
return
-
1
;
return
-
1
;
...
@@ -1512,8 +1514,18 @@ static int mxf_write_header(AVFormatContext *s)
...
@@ -1512,8 +1514,18 @@ static int mxf_write_header(AVFormatContext *s)
sc
->
order
=
AV_RB32
(
sc
->
track_essence_element_key
+
12
);
sc
->
order
=
AV_RB32
(
sc
->
track_essence_element_key
+
12
);
}
}
#if FF_API_TIMESTAMP
if
(
s
->
timestamp
)
if
(
s
->
timestamp
)
mxf
->
timestamp
=
mxf_parse_timestamp
(
s
->
timestamp
);
timestamp
=
s
->
timestamp
;
else
#endif
if
(
t
=
av_dict_get
(
s
->
metadata
,
"creation_time"
,
NULL
,
0
))
{
struct
tm
time
=
{
0
};
strptime
(
t
->
value
,
"%Y - %m - %dT%T"
,
&
time
);
timestamp
=
mktime
(
&
time
);
}
if
(
timestamp
)
mxf
->
timestamp
=
mxf_parse_timestamp
(
timestamp
);
mxf
->
duration
=
-
1
;
mxf
->
duration
=
-
1
;
mxf
->
timecode_track
=
av_mallocz
(
sizeof
(
*
mxf
->
timecode_track
));
mxf
->
timecode_track
=
av_mallocz
(
sizeof
(
*
mxf
->
timecode_track
));
...
...
libavformat/version.h
View file @
5f847bf6
...
@@ -83,5 +83,8 @@
...
@@ -83,5 +83,8 @@
#ifndef FF_API_LOOP_OUTPUT
#ifndef FF_API_LOOP_OUTPUT
#define FF_API_LOOP_OUTPUT (LIBAVFORMAT_VERSION_MAJOR < 54)
#define FF_API_LOOP_OUTPUT (LIBAVFORMAT_VERSION_MAJOR < 54)
#endif
#endif
#ifndef FF_API_TIMESTAMP
#define FF_API_TIMESTAMP (LIBAVFORMAT_VERSION_MAJOR < 54)
#endif
#endif
/* AVFORMAT_VERSION_H */
#endif
/* AVFORMAT_VERSION_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