lavc: add support for codec-specific defaults.
This commit is contained in:
parent
71a861cf40
commit
84626b364b
@ -2860,6 +2860,8 @@ typedef struct AVProfile {
|
||||
const char *name; ///< short name for the profile
|
||||
} AVProfile;
|
||||
|
||||
typedef struct AVCodecDefault AVCodecDefault;
|
||||
|
||||
/**
|
||||
* AVCodec.
|
||||
*/
|
||||
@ -2922,6 +2924,11 @@ typedef struct AVCodec {
|
||||
*/
|
||||
int (*update_thread_context)(AVCodecContext *dst, const AVCodecContext *src);
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* Private codec-specific defaults.
|
||||
*/
|
||||
const AVCodecDefault *defaults;
|
||||
} AVCodec;
|
||||
|
||||
/**
|
||||
|
@ -27,6 +27,11 @@
|
||||
#include <stdint.h>
|
||||
#include "avcodec.h"
|
||||
|
||||
struct AVCodecDefault {
|
||||
const uint8_t *key;
|
||||
const uint8_t *value;
|
||||
};
|
||||
|
||||
/**
|
||||
* Determine whether pix_fmt is a hardware accelerated format.
|
||||
*/
|
||||
|
@ -25,6 +25,8 @@
|
||||
*/
|
||||
|
||||
#include "avcodec.h"
|
||||
#include "internal.h"
|
||||
#include "libavutil/avassert.h"
|
||||
#include "libavutil/opt.h"
|
||||
#include <float.h> /* FLT_MIN, FLT_MAX */
|
||||
|
||||
@ -524,6 +526,15 @@ int avcodec_get_context_defaults3(AVCodecContext *s, AVCodec *codec){
|
||||
av_opt_set_defaults(s->priv_data);
|
||||
}
|
||||
}
|
||||
if (codec && codec->defaults) {
|
||||
int ret;
|
||||
AVCodecDefault *d = codec->defaults;
|
||||
while (d->key) {
|
||||
ret = av_set_string3(s, d->key, d->value, 0, NULL);
|
||||
av_assert0(ret >= 0);
|
||||
d++;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user