mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +02:00
nut: add do {} while (0) to GET_V
Make it consistent with the other function-like macros.
This commit is contained in:
parent
b92dfb56d4
commit
72d30b2792
@ -177,13 +177,15 @@ static int nut_probe(AVProbeData *p)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define GET_V(dst, check) \
|
||||
tmp = ffio_read_varlen(bc); \
|
||||
if (!(check)) { \
|
||||
av_log(s, AV_LOG_ERROR, "Error " #dst " is (%"PRId64")\n", tmp); \
|
||||
return -1; \
|
||||
} \
|
||||
dst = tmp;
|
||||
#define GET_V(dst, check) \
|
||||
do { \
|
||||
tmp = ffio_read_varlen(bc); \
|
||||
if (!(check)) { \
|
||||
av_log(s, AV_LOG_ERROR, "Error " #dst " is (%"PRId64")\n", tmp); \
|
||||
return -1; \
|
||||
} \
|
||||
dst = tmp; \
|
||||
} while (0)
|
||||
|
||||
static int skip_reserved(AVIOContext *bc, int64_t pos)
|
||||
{
|
||||
@ -210,8 +212,8 @@ static int decode_main_header(NUTContext *nut)
|
||||
end = get_packetheader(nut, bc, 1, MAIN_STARTCODE);
|
||||
end += avio_tell(bc);
|
||||
|
||||
GET_V(tmp, tmp >= 2 && tmp <= 3)
|
||||
GET_V(stream_count, tmp > 0 && tmp <= NUT_MAX_STREAMS)
|
||||
GET_V(tmp, tmp >= 2 && tmp <= 3);
|
||||
GET_V(stream_count, tmp > 0 && tmp <= NUT_MAX_STREAMS);
|
||||
|
||||
nut->max_distance = ffio_read_varlen(bc);
|
||||
if (nut->max_distance > 65536) {
|
||||
@ -219,12 +221,12 @@ static int decode_main_header(NUTContext *nut)
|
||||
nut->max_distance = 65536;
|
||||
}
|
||||
|
||||
GET_V(nut->time_base_count, tmp > 0 && tmp < INT_MAX / sizeof(AVRational))
|
||||
GET_V(nut->time_base_count, tmp > 0 && tmp < INT_MAX / sizeof(AVRational));
|
||||
nut->time_base = av_malloc(nut->time_base_count * sizeof(AVRational));
|
||||
|
||||
for (i = 0; i < nut->time_base_count; i++) {
|
||||
GET_V(nut->time_base[i].num, tmp > 0 && tmp < (1ULL << 31))
|
||||
GET_V(nut->time_base[i].den, tmp > 0 && tmp < (1ULL << 31))
|
||||
GET_V(nut->time_base[i].num, tmp > 0 && tmp < (1ULL << 31));
|
||||
GET_V(nut->time_base[i].den, tmp > 0 && tmp < (1ULL << 31));
|
||||
if (av_gcd(nut->time_base[i].num, nut->time_base[i].den) != 1) {
|
||||
av_log(s, AV_LOG_ERROR, "time base invalid\n");
|
||||
return AVERROR_INVALIDDATA;
|
||||
@ -292,7 +294,7 @@ static int decode_main_header(NUTContext *nut)
|
||||
|
||||
if (end > avio_tell(bc) + 4) {
|
||||
int rem = 1024;
|
||||
GET_V(nut->header_count, tmp < 128U)
|
||||
GET_V(nut->header_count, tmp < 128U);
|
||||
nut->header_count++;
|
||||
for (i = 1; i < nut->header_count; i++) {
|
||||
uint8_t *hdr;
|
||||
@ -389,8 +391,8 @@ static int decode_stream_header(NUTContext *nut)
|
||||
}
|
||||
|
||||
if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
|
||||
GET_V(st->codec->width, tmp > 0)
|
||||
GET_V(st->codec->height, tmp > 0)
|
||||
GET_V(st->codec->width, tmp > 0);
|
||||
GET_V(st->codec->height, tmp > 0);
|
||||
st->sample_aspect_ratio.num = ffio_read_varlen(bc);
|
||||
st->sample_aspect_ratio.den = ffio_read_varlen(bc);
|
||||
if ((!st->sample_aspect_ratio.num) != (!st->sample_aspect_ratio.den)) {
|
||||
@ -400,9 +402,9 @@ static int decode_stream_header(NUTContext *nut)
|
||||
}
|
||||
ffio_read_varlen(bc); /* csp type */
|
||||
} else if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
|
||||
GET_V(st->codec->sample_rate, tmp > 0)
|
||||
GET_V(st->codec->sample_rate, tmp > 0);
|
||||
ffio_read_varlen(bc); // samplerate_den
|
||||
GET_V(st->codec->channels, tmp > 0)
|
||||
GET_V(st->codec->channels, tmp > 0);
|
||||
}
|
||||
if (skip_reserved(bc, end) || ffio_get_checksum(bc)) {
|
||||
av_log(s, AV_LOG_ERROR,
|
||||
@ -447,7 +449,7 @@ static int decode_info_header(NUTContext *nut)
|
||||
end = get_packetheader(nut, bc, 1, INFO_STARTCODE);
|
||||
end += avio_tell(bc);
|
||||
|
||||
GET_V(stream_id_plus1, tmp <= s->nb_streams)
|
||||
GET_V(stream_id_plus1, tmp <= s->nb_streams);
|
||||
chapter_id = get_s(bc);
|
||||
chapter_start = ffio_read_varlen(bc);
|
||||
chapter_len = ffio_read_varlen(bc);
|
||||
@ -565,7 +567,7 @@ static int find_and_decode_index(NUTContext *nut)
|
||||
end += avio_tell(bc);
|
||||
|
||||
ffio_read_varlen(bc); // max_pts
|
||||
GET_V(syncpoint_count, tmp < INT_MAX / 8 && tmp > 0)
|
||||
GET_V(syncpoint_count, tmp < INT_MAX / 8 && tmp > 0);
|
||||
syncpoints = av_malloc(sizeof(int64_t) * syncpoint_count);
|
||||
has_keyframe = av_malloc(sizeof(int8_t) * (syncpoint_count + 1));
|
||||
for (i = 0; i < syncpoint_count; i++) {
|
||||
@ -730,7 +732,7 @@ static int decode_frame_header(NUTContext *nut, int64_t *pts, int *stream_id,
|
||||
if (flags & FLAG_CODED)
|
||||
flags ^= ffio_read_varlen(bc);
|
||||
if (flags & FLAG_STREAM_ID) {
|
||||
GET_V(*stream_id, tmp < s->nb_streams)
|
||||
GET_V(*stream_id, tmp < s->nb_streams);
|
||||
}
|
||||
stc = &nut->stream[*stream_id];
|
||||
if (flags & FLAG_CODED_PTS) {
|
||||
|
Loading…
Reference in New Issue
Block a user