mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
lavf: add an AVStream field for exporting stream-global side data
This commit is contained in:
parent
0e2c3ee9a3
commit
25b3258656
@ -13,6 +13,10 @@ libavutil: 2013-12-xx
|
|||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
|
2014-02-xx - xxxxxxx - lavf 55.13.0 - avformat.h
|
||||||
|
Add AVStream.side_data and AVStream.nb_side_data for exporting stream-global
|
||||||
|
side data (e.g. replaygain tags, video rotation)
|
||||||
|
|
||||||
2014-02-xx - xxxxxxx - lavc 55.35.0 - avcodec.h
|
2014-02-xx - xxxxxxx - lavc 55.35.0 - avcodec.h
|
||||||
Give the name AVPacketSideData to the previously anonymous struct used for
|
Give the name AVPacketSideData to the previously anonymous struct used for
|
||||||
AVPacket.side_data.
|
AVPacket.side_data.
|
||||||
|
@ -755,6 +755,28 @@ typedef struct AVStream {
|
|||||||
*/
|
*/
|
||||||
AVPacket attached_pic;
|
AVPacket attached_pic;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An array of side data that applies to the whole stream (i.e. the
|
||||||
|
* container does not allow it to change between packets).
|
||||||
|
*
|
||||||
|
* There may be no overlap between the side data in this array and side data
|
||||||
|
* in the packets. I.e. a given side data is either exported by the muxer
|
||||||
|
* (demuxing) / set by the caller (muxing) in this array, then it never
|
||||||
|
* appears in the packets, or the side data is exported / sent through
|
||||||
|
* the packets (always in the first packet where the value becomes known or
|
||||||
|
* changes), then it does not appear in this array.
|
||||||
|
*
|
||||||
|
* - demuxing: Set by libavformat when the stream is created.
|
||||||
|
* - muxing: May be set by the caller before avformat_write_header().
|
||||||
|
*
|
||||||
|
* Freed by libavformat in avformat_free_context().
|
||||||
|
*/
|
||||||
|
AVPacketSideData *side_data;
|
||||||
|
/**
|
||||||
|
* The number of elements in the AVStream.side_data array.
|
||||||
|
*/
|
||||||
|
int nb_side_data;
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* All fields below this line are not part of the public API. They
|
* All fields below this line are not part of the public API. They
|
||||||
* may not be used outside of libavformat and can be changed and
|
* may not be used outside of libavformat and can be changed and
|
||||||
|
@ -2595,7 +2595,7 @@ int av_read_pause(AVFormatContext *s)
|
|||||||
|
|
||||||
void avformat_free_context(AVFormatContext *s)
|
void avformat_free_context(AVFormatContext *s)
|
||||||
{
|
{
|
||||||
int i;
|
int i, j;
|
||||||
AVStream *st;
|
AVStream *st;
|
||||||
|
|
||||||
av_opt_free(s);
|
av_opt_free(s);
|
||||||
@ -2605,6 +2605,12 @@ void avformat_free_context(AVFormatContext *s)
|
|||||||
for (i = 0; i < s->nb_streams; i++) {
|
for (i = 0; i < s->nb_streams; i++) {
|
||||||
/* free all data in a stream component */
|
/* free all data in a stream component */
|
||||||
st = s->streams[i];
|
st = s->streams[i];
|
||||||
|
|
||||||
|
for (j = 0; j < st->nb_side_data; j++)
|
||||||
|
av_freep(&st->side_data[j].data);
|
||||||
|
av_freep(&st->side_data);
|
||||||
|
st->nb_side_data = 0;
|
||||||
|
|
||||||
if (st->parser) {
|
if (st->parser) {
|
||||||
av_parser_close(st->parser);
|
av_parser_close(st->parser);
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
#include "libavutil/version.h"
|
#include "libavutil/version.h"
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_MAJOR 55
|
#define LIBAVFORMAT_VERSION_MAJOR 55
|
||||||
#define LIBAVFORMAT_VERSION_MINOR 12
|
#define LIBAVFORMAT_VERSION_MINOR 13
|
||||||
#define LIBAVFORMAT_VERSION_MICRO 0
|
#define LIBAVFORMAT_VERSION_MICRO 0
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||||
|
Loading…
Reference in New Issue
Block a user