Opened 3 years ago

Last modified 18 months ago

#9343 open defect

ORing AVERROR_INPUT_CHANGED and AVERROR_OUTPUT_CHANGED gives AVERROR_INPUT_CHANGED

Reported by: jrh Owned by:
Priority: important Component: avutil
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

The documentation for AVERROR_INPUT_CHANGED and AVERROR_OUTPUT_CHANGED states that the two can be ORed. But AVERROR_INPUT_CHANGED|AVERROR_OUTPUT_CHANGED gives a value equal to AVERROR_INPUT_CHANGED.

/libavutil/error.h:

#define AVERROR_INPUT_CHANGED      (-0x636e6701) ///< Input changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_OUTPUT_CHANGED)
#define AVERROR_OUTPUT_CHANGED     (-0x636e6702) ///< Output changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_INPUT_CHANGED)

Even though the numbers look as if ORing should work as intended, this is not the case because both are negative. The result is that "only input changed" and "both input and output changed" are indistinguishable.

Change History (3)

comment:1 by Elon Musk, 3 years ago

Reproduced by developer: set
Status: newopen

comment:2 by Balling, 3 years ago

But obviously OR means here not simple dumb OR. other such issue is in my patch here: https://patchwork.ffmpeg.org/project/ffmpeg/patch/20210604062818.2099-1-val.zapod.vz@gmail.com/

comment:3 by Carl Eugen Hoyos, 18 months ago

Priority: normalimportant

Looks important.

Note: See TracTickets for help on using tickets.