mirror of https://git.ffmpeg.org/ffmpeg.git
cavsdec: check for changing w/h.
Our decoder does not support changing w/h. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
ba775a54bc
commit
25715064c2
|
@ -609,12 +609,19 @@ static int decode_pic(AVSContext *h) {
|
||||||
static int decode_seq_header(AVSContext *h) {
|
static int decode_seq_header(AVSContext *h) {
|
||||||
MpegEncContext *s = &h->s;
|
MpegEncContext *s = &h->s;
|
||||||
int frame_rate_code;
|
int frame_rate_code;
|
||||||
|
int width, height;
|
||||||
|
|
||||||
h->profile = get_bits(&s->gb,8);
|
h->profile = get_bits(&s->gb,8);
|
||||||
h->level = get_bits(&s->gb,8);
|
h->level = get_bits(&s->gb,8);
|
||||||
skip_bits1(&s->gb); //progressive sequence
|
skip_bits1(&s->gb); //progressive sequence
|
||||||
s->width = get_bits(&s->gb,14);
|
width = get_bits(&s->gb,14);
|
||||||
s->height = get_bits(&s->gb,14);
|
height = get_bits(&s->gb,14);
|
||||||
|
if ((s->width || s->height) && (s->width != width || s->height != height)) {
|
||||||
|
av_log_missing_feature(s, "Width/height changing in CAVS is", 0);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
s->width = width;
|
||||||
|
s->height = height;
|
||||||
skip_bits(&s->gb,2); //chroma format
|
skip_bits(&s->gb,2); //chroma format
|
||||||
skip_bits(&s->gb,3); //sample_precision
|
skip_bits(&s->gb,3); //sample_precision
|
||||||
h->aspect_ratio = get_bits(&s->gb,4);
|
h->aspect_ratio = get_bits(&s->gb,4);
|
||||||
|
|
Loading…
Reference in New Issue