Rename find_program_from_stream to av_find_program_from_stream and add it to avformat.h
Also extend the functionality to use the last found program to start the search after that program. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:

committed by
Michael Niedermayer

parent
941bb552c6
commit
dacd827b81
@@ -13,6 +13,9 @@ libavutil: 2011-04-18
|
|||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
|
2011-08-22 - xxxxxx - lavf 53.10.0
|
||||||
|
Add av_find_program_from_stream().
|
||||||
|
|
||||||
2011-08-20 - xxxxxx - lavu 51.13.0
|
2011-08-20 - xxxxxx - lavu 51.13.0
|
||||||
Add av_get_media_type_string().
|
Add av_get_media_type_string().
|
||||||
|
|
||||||
|
@@ -1232,6 +1232,18 @@ int av_find_stream_info(AVFormatContext *ic);
|
|||||||
*/
|
*/
|
||||||
int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options);
|
int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find the programs which belong to a given stream.
|
||||||
|
*
|
||||||
|
* @param ic media file handle
|
||||||
|
* @param last the last found program, the search will start after this
|
||||||
|
* program, or from the beginning if it is NULL
|
||||||
|
* @param s stream index
|
||||||
|
* @return the next program which belongs to s, NULL if no program is found or
|
||||||
|
* the last program is not among the programs of ic.
|
||||||
|
*/
|
||||||
|
AVProgram *av_find_program_from_stream(AVFormatContext *ic, AVProgram *last, int s);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find the "best" stream in the file.
|
* Find the "best" stream in the file.
|
||||||
* The best stream is determined according to various heuristics as the most
|
* The best stream is determined according to various heuristics as the most
|
||||||
|
@@ -2574,14 +2574,20 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static AVProgram *find_program_from_stream(AVFormatContext *ic, int s)
|
AVProgram *av_find_program_from_stream(AVFormatContext *ic, AVProgram *last, int s)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
for (i = 0; i < ic->nb_programs; i++)
|
for (i = 0; i < ic->nb_programs; i++) {
|
||||||
|
if (ic->programs[i] == last) {
|
||||||
|
last = NULL;
|
||||||
|
} else {
|
||||||
|
if (!last)
|
||||||
for (j = 0; j < ic->programs[i]->nb_stream_indexes; j++)
|
for (j = 0; j < ic->programs[i]->nb_stream_indexes; j++)
|
||||||
if (ic->programs[i]->stream_index[j] == s)
|
if (ic->programs[i]->stream_index[j] == s)
|
||||||
return ic->programs[i];
|
return ic->programs[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2598,7 +2604,7 @@ int av_find_best_stream(AVFormatContext *ic,
|
|||||||
AVCodec *decoder = NULL, *best_decoder = NULL;
|
AVCodec *decoder = NULL, *best_decoder = NULL;
|
||||||
|
|
||||||
if (related_stream >= 0 && wanted_stream_nb < 0) {
|
if (related_stream >= 0 && wanted_stream_nb < 0) {
|
||||||
AVProgram *p = find_program_from_stream(ic, related_stream);
|
AVProgram *p = av_find_program_from_stream(ic, NULL, related_stream);
|
||||||
if (p) {
|
if (p) {
|
||||||
program = p->stream_index;
|
program = p->stream_index;
|
||||||
nb_streams = p->nb_stream_indexes;
|
nb_streams = p->nb_stream_indexes;
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
#include "libavutil/avutil.h"
|
#include "libavutil/avutil.h"
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_MAJOR 53
|
#define LIBAVFORMAT_VERSION_MAJOR 53
|
||||||
#define LIBAVFORMAT_VERSION_MINOR 9
|
#define LIBAVFORMAT_VERSION_MINOR 10
|
||||||
#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, \
|
||||||
|
Reference in New Issue
Block a user