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
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
Show 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