[FFmpeg-trac] #10210(avcodec:new): On Windows with x86 build, calling avcodec_send_packet does not free FPU registers

FFmpeg trac at avcodec.org
Fri Mar 10 18:14:32 EET 2023


#10210: On Windows with x86 build, calling avcodec_send_packet does not free FPU
registers
-------------------------------------+-------------------------------------
             Reporter:  Kevin        |                    Owner:  (none)
  Coulombe                           |
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:  avcodec
              Version:  git-master   |               Resolution:
             Keywords:  avcodec FPU  |               Blocked By:
  fld ST0 x87                        |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Comment (by Sebas):

 I can reproduce this issue after recompiling FFmpeg 5.1.2 in x86 mode with
 Visual Studio 2022.

 The call to `send_packet_proc()` incorrectly keeps the FPU registers in
 the used state if decoding the input JPEG returns an error. After that,
 any instruction using the FPU fails (For example '4.22/2.11' returns
 'NaN').

 This happens because `ff_mjpeg_decode_sos()` doesn't call `emms_c()` to
 make the FPU available after `mjpeg_decode_scan()` returns an error.
 `emms_c()` is called only on success.
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10210#comment:4>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list