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
f1caf01d
Commit
f1caf01d
authored
Jan 20, 2012
by
Martin Storsjö
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
libavformat: Add a flag for muxers that support write_packet(NULL) for flushing
Signed-off-by:
Martin Storsjö
<
martin@martin.st
>
parent
83988d58
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
5 deletions
+25
-5
avformat.h
libavformat/avformat.h
+15
-3
utils.c
libavformat/utils.c
+9
-1
version.h
libavformat/version.h
+1
-1
No files found.
libavformat/avformat.h
View file @
f1caf01d
...
...
@@ -380,6 +380,7 @@ typedef struct AVFormatParameters {
#define AVFMT_NOBINSEARCH 0x2000
/**< Format does not allow to fallback to binary search via read_timestamp */
#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. */
/**
* @addtogroup lavf_encoding
...
...
@@ -403,12 +404,19 @@ typedef struct AVOutputFormat {
enum
CodecID
audio_codec
;
/**< default audio codec */
enum
CodecID
video_codec
;
/**< default video codec */
int
(
*
write_header
)(
struct
AVFormatContext
*
);
/**
* Write a packet. If AVFMT_ALLOW_FLUSH is set in flags,
* pkt can be NULL in order to flush data buffered in the muxer.
* When flushing, return 0 if there still is more data to flush,
* or 1 if everything was flushed and there is no more buffered
* data.
*/
int
(
*
write_packet
)(
struct
AVFormatContext
*
,
AVPacket
*
pkt
);
int
(
*
write_trailer
)(
struct
AVFormatContext
*
);
/**
* can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_RAWPICTURE,
* AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS,
* AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS
* AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS
, AVFMT_ALLOW_FLUSH
*/
int
flags
;
/**
...
...
@@ -1685,8 +1693,12 @@ attribute_deprecated int av_write_header(AVFormatContext *s);
*
* @param s media file handle
* @param pkt The packet, which contains the stream_index, buf/buf_size,
dts/pts, ...
* @return < 0 on error, = 0 if OK, 1 if end of stream wanted
* dts/pts, ...
* This can be NULL (at any time, not just at the end), in
* order to immediately flush data buffered within the muxer,
* for muxers that buffer up data internally before writing it
* to the output.
* @return < 0 on error, = 0 if OK, 1 if flushed and there is no more data to flush
*/
int
av_write_frame
(
AVFormatContext
*
s
,
AVPacket
*
pkt
);
...
...
libavformat/utils.c
View file @
f1caf01d
...
...
@@ -3135,7 +3135,15 @@ static int compute_pkt_fields2(AVFormatContext *s, AVStream *st, AVPacket *pkt){
int
av_write_frame
(
AVFormatContext
*
s
,
AVPacket
*
pkt
)
{
int
ret
=
compute_pkt_fields2
(
s
,
s
->
streams
[
pkt
->
stream_index
],
pkt
);
int
ret
;
if
(
!
pkt
)
{
if
(
s
->
oformat
->
flags
&
AVFMT_ALLOW_FLUSH
)
return
s
->
oformat
->
write_packet
(
s
,
pkt
);
return
1
;
}
ret
=
compute_pkt_fields2
(
s
,
s
->
streams
[
pkt
->
stream_index
],
pkt
);
if
(
ret
<
0
&&
!
(
s
->
oformat
->
flags
&
AVFMT_NOTIMESTAMPS
))
return
ret
;
...
...
libavformat/version.h
View file @
f1caf01d
...
...
@@ -30,7 +30,7 @@
#include "libavutil/avutil.h"
#define LIBAVFORMAT_VERSION_MAJOR 53
#define LIBAVFORMAT_VERSION_MINOR 2
1
#define LIBAVFORMAT_VERSION_MINOR 2
2
#define LIBAVFORMAT_VERSION_MICRO 0
#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