mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 12:09:55 +00:00
avformat: add ff_get_extradata()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
ac480cb58d
commit
ee4e805093
@ -371,6 +371,15 @@ int ff_generate_avci_extradata(AVStream *st);
|
||||
*/
|
||||
int ff_alloc_extradata(AVCodecContext *avctx, int size);
|
||||
|
||||
/**
|
||||
* Allocate extradata with additional FF_INPUT_BUFFER_PADDING_SIZE at end
|
||||
* which is always set to 0 and fill it from pb.
|
||||
*
|
||||
* @param size size of extradata
|
||||
* @return >= 0 if OK, AVERROR_xxx on error
|
||||
*/
|
||||
int ff_get_extradata(AVCodecContext *avctx, AVIOContext *pb, int size);
|
||||
|
||||
/**
|
||||
* add frame for rfps calculation.
|
||||
*
|
||||
|
@ -2701,6 +2701,22 @@ int ff_alloc_extradata(AVCodecContext *avctx, int size)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ff_get_extradata(AVCodecContext *avctx, AVIOContext *pb, int size)
|
||||
{
|
||||
int ret = ff_alloc_extradata(avctx, size);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = avio_read(pb, avctx->extradata, size);
|
||||
if (ret != size) {
|
||||
av_freep(&avctx->extradata);
|
||||
avctx->extradata_size = 0;
|
||||
av_log(avctx, AV_LOG_ERROR, "Failed to read extradata of size %d\n", size);
|
||||
return ret < 0 ? ret : AVERROR_INVALIDDATA;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ff_rfps_add_frame(AVFormatContext *ic, AVStream *st, int64_t ts)
|
||||
{
|
||||
int i, j;
|
||||
|
Loading…
Reference in New Issue
Block a user