Пытаюсь затянуть сабж в андроид. Попутно нарыл следующий код:
static int64_t nut_read_timestamp(AVFormatContext *s, int stream_index, int64_t *pos_arg, int64_t pos_limit){
NUTContext *nut = s->priv_data;
AVIOContext *bc = s->pb;
int64_t pos, pts, back_ptr;
av_log(s, AV_LOG_DEBUG, "read_timestamp(X,%d,%"PRId64",%"PRId64")\n", stream_index, *pos_arg, pos_limit);
pos= *pos_arg;
do{
pos= find_startcode(bc, SYNCPOINT_STARTCODE, pos)+1;
if(pos < 1){
assert(nut->next_startcode == 0);
av_log(s, AV_LOG_ERROR, "read_timestamp failed.\n");
return AV_NOPTS_VALUE;
}
}while(decode_syncpoint(nut, &pts, &back_ptr) < 0);
*pos_arg = pos-1;
assert(nut->last_syncpoint_pos == *pos_arg);
av_log(s, AV_LOG_DEBUG, "return %"PRId64" %"PRId64"\n", pts,back_ptr );
if (stream_index == -1) return pts;
else if(stream_index == -2) return back_ptr;
assert(0);
}
Оно как бы интуитивно понятно, что после assert(0); возвращаемое значение смысла не имеет, но компилеру то это невдомек.
Неужели было тяжело в этом месте написать чето такое, чтобы все компилеры не вопспринимали это место, как ошибку?