mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-06 15:21:15 +00:00
lavf: add an API to get output timestamps.
This commit is contained in:
parent
d1b029dec9
commit
b442ca69d9
@ -316,6 +316,9 @@ typedef struct AVOutputFormat {
|
|||||||
|
|
||||||
const AVClass *priv_class; ///< AVClass for the private context
|
const AVClass *priv_class; ///< AVClass for the private context
|
||||||
|
|
||||||
|
void (*get_output_timestamp)(struct AVFormatContext *s, int stream,
|
||||||
|
int64_t *dts, int64_t *wall);
|
||||||
|
|
||||||
/* private fields */
|
/* private fields */
|
||||||
struct AVOutputFormat *next;
|
struct AVOutputFormat *next;
|
||||||
} AVOutputFormat;
|
} AVOutputFormat;
|
||||||
@ -1518,6 +1521,24 @@ int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
|
|||||||
*/
|
*/
|
||||||
int av_write_trailer(AVFormatContext *s);
|
int av_write_trailer(AVFormatContext *s);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get timing information for the data currently output.
|
||||||
|
* The exact meaning of "currently output" depends on the format.
|
||||||
|
* It is mostly relevant for devices that have an internal buffer and/or
|
||||||
|
* work in real time.
|
||||||
|
* @param s media file handle
|
||||||
|
* @param stream stream in the media file
|
||||||
|
* @param dts[out] DTS of the last packet output for the stream, in stream
|
||||||
|
* time_base units
|
||||||
|
* @param wall[out] absolute time when that packet whas output,
|
||||||
|
* in microsecond
|
||||||
|
* @return 0 if OK, AVERROR(ENOSYS) if the format does not support it
|
||||||
|
* Note: some formats or devices may not allow to measure dts and wall
|
||||||
|
* atomically.
|
||||||
|
*/
|
||||||
|
int av_get_output_timestamp(struct AVFormatContext *s, int stream,
|
||||||
|
int64_t *dts, int64_t *wall);
|
||||||
|
|
||||||
#if FF_API_DUMP_FORMAT
|
#if FF_API_DUMP_FORMAT
|
||||||
/**
|
/**
|
||||||
* @deprecated Deprecated in favor of av_dump_format().
|
* @deprecated Deprecated in favor of av_dump_format().
|
||||||
|
@ -3285,6 +3285,15 @@ fail:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int av_get_output_timestamp(struct AVFormatContext *s, int stream,
|
||||||
|
int64_t *dts, int64_t *wall)
|
||||||
|
{
|
||||||
|
if (!s->oformat || !s->oformat->get_output_timestamp)
|
||||||
|
return AVERROR(ENOSYS);
|
||||||
|
s->oformat->get_output_timestamp(s, stream, dts, wall);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void ff_program_add_stream_index(AVFormatContext *ac, int progid, unsigned int idx)
|
void ff_program_add_stream_index(AVFormatContext *ac, int progid, unsigned int idx)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
Loading…
Reference in New Issue
Block a user