[vlc-devel] [PATCH 00/28] Rational numbers

Steve Lhomme robux4 at videolabs.io
Fri Mar 31 18:14:15 CEST 2017


While working on HDR metadata I noticed that it would me more accurate to
handle them as rational numbers. But it seems we do not have that in the core.

So I went ahead and added vlc_rational_t.

Only the first 3 patches would be nice to merge, the rest is extra by using the
type where rational numbers were already used.

Steve Lhomme (28):
  vlc_vout_wrapper: the sar is always unsigned
  core: add a vlc_rational_t type for unsigned rational numbers
  core: turn mastering colour luminance into rational numbers
  avcodec/avformat: simplify AVRational copying
  avcommon: add a conversion from AVRational to vlc_rational_t
  always call var_InheritURational with a vlc_rational_t based output
  core: change var_InheritURational to output a vlc_rational_t
  mpegvideo: use vlc_rational_t for the internal frame rate
  linsys: use vlc_rational_t internally
  demux: ogg: use vlc_rational_t internally
  packetizer: mpeg4video: use vlc_rational_t internally
  demux: mpeg: use vlc_rational_t internally
  mmal: vout: use vlc_rational_t internally for the frame rate
  vlc_es: use vlc_rational_t for the frame rate
  modules: simplify some vlc_rational_t value copying
  simplify some frame rate checks
  dvdread: use a vlc_rational_t internally for the SAR
  codec: libmpeg2: use a vlc_rational_t internally for the SAR
  packetizer: h264: use a vlc_rational_t internally for the SAR
  stream_out: mosaic_bridge: use a vlc_rational_t internally for the SAR
  vlc_es: use a vlc_rationale_t for the SAR
  codec: avcodec: copy the source max light levels into the output
    picture
  access: dvdnav: use vlc_rational_t internally for the SAR
  hxxx_helper: simplify h264_helper_get_current_sar using vlc_rational_t
  demux: mp4: simplify TrackGetESSampleRate using vlc_rational_t
  packetizer: hevc: simplify hevc_get_frame_rate() using vlc_rational_t
  simplifying copying data between vlc_rational_t
  do not test vlc_rational_t for negative values

 include/vlc_common.h                               |  4 +
 include/vlc_es.h                                   | 14 ++--
 include/vlc_fourcc.h                               | 10 +--
 include/vlc_variables.h                            |  4 +-
 include/vlc_vout_display.h                         |  5 +-
 include/vlc_vout_wrapper.h                         |  5 +-
 lib/media.c                                        |  8 +-
 lib/media_player.c                                 |  6 +-
 modules/access/avcapture.m                         |  4 +-
 modules/access/dcp/dcp.cpp                         |  4 +-
 modules/access/decklink.cpp                        | 20 ++---
 modules/access/dshow/dshow.cpp                     | 13 ++-
 modules/access/dvdnav.c                            | 24 +++---
 modules/access/dvdread.c                           | 22 +++--
 modules/access/imem.c                              | 17 ++--
 modules/access/linsys/linsys_hdsdi.c               | 37 ++++-----
 modules/access/linsys/linsys_sdi.c                 | 43 +++++-----
 modules/access/rdp.c                               |  4 +-
 modules/access/screen/mac.c                        |  8 +-
 modules/access/screen/wayland.c                    |  6 +-
 modules/access/screen/win32.c                      |  2 +-
 modules/access/screen/xcb.c                        |  6 +-
 modules/access/shm.c                               |  6 +-
 modules/access/timecode.c                          |  7 +-
 modules/access/v4l2/demux.c                        | 14 ++--
 modules/access/v4l2/video.c                        | 11 ++-
 modules/access/vnc.c                               |  6 +-
 modules/codec/aom.c                                |  6 +-
 modules/codec/arib/substext.h                      |  6 +-
 modules/codec/avcodec/avcommon.h                   |  5 ++
 modules/codec/avcodec/d3d11va.c                    |  4 +-
 modules/codec/avcodec/directx_va.c                 |  3 +-
 modules/codec/avcodec/dxva2.c                      |  6 +-
 modules/codec/avcodec/encoder.c                    | 24 ++----
 modules/codec/avcodec/video.c                      | 80 +++++++++---------
 modules/codec/bpg.c                                |  4 +-
 modules/codec/cdg.c                                |  4 +-
 modules/codec/crystalhd.c                          |  8 +-
 modules/codec/cvdsub.c                             |  4 +-
 modules/codec/daala.c                              | 30 +++----
 modules/codec/dmo/dmo.c                            | 11 ++-
 modules/codec/dvbsub.c                             |  8 +-
 modules/codec/gstreamer/gstdecode.c                | 20 ++---
 .../codec/gstreamer/gstvlcpictureplaneallocator.c  |  4 +-
 modules/codec/hxxx_helper.c                        |  5 +-
 modules/codec/hxxx_helper.h                        |  2 +-
 modules/codec/jpeg.c                               |  4 +-
 modules/codec/kate.c                               |  4 +-
 modules/codec/libmpeg2.c                           | 42 +++++-----
 modules/codec/oggspots.c                           |  8 +-
 modules/codec/omxil/omxil.c                        | 29 +++----
 modules/codec/png.c                                |  4 +-
 modules/codec/qsv.c                                | 10 +--
 modules/codec/rawvideo.c                           | 12 +--
 modules/codec/schroedinger.c                       | 22 ++---
 modules/codec/scte27.c                             |  4 +-
 modules/codec/sdl_image.c                          |  4 +-
 modules/codec/spudec/parse.c                       |  4 +-
 modules/codec/substext.h                           | 14 ++--
 modules/codec/subsusf.c                            |  2 +-
 modules/codec/svcdsub.c                            |  4 +-
 modules/codec/svg.c                                |  8 +-
 modules/codec/theora.c                             | 26 +++---
 modules/codec/videotoolbox.m                       | 20 ++---
 modules/codec/vpx.c                                | 11 ++-
 modules/codec/x264.c                               | 18 ++--
 modules/codec/x265.c                               | 14 ++--
 modules/codec/xwd.c                                |  4 +-
 modules/codec/zvbi.c                               |  2 +-
 modules/demux/asf/asf.c                            | 14 ++--
 modules/demux/avformat/demux.c                     | 12 ++-
 modules/demux/avformat/mux.c                       | 25 +++---
 modules/demux/avi/avi.c                            |  8 +-
 modules/demux/dirac.c                              |  6 +-
 modules/demux/image.c                              | 14 ++--
 modules/demux/mkv/matroska_segment_parse.cpp       | 12 +--
 modules/demux/mkv/mkv.cpp                          |  4 +-
 modules/demux/mp4/essetup.c                        |  8 +-
 modules/demux/mp4/mp4.c                            | 17 ++--
 modules/demux/mpeg/h26x.c                          | 38 ++++-----
 modules/demux/mpeg/ts_psi.c                        |  4 +-
 modules/demux/nuv.c                                |  4 +-
 modules/demux/ogg.c                                | 50 ++++++-----
 modules/demux/rawvid.c                             | 55 ++++++-------
 modules/demux/real.c                               |  4 +-
 modules/demux/vc1.c                                |  8 +-
 modules/hw/mmal/codec.c                            |  7 +-
 modules/hw/mmal/deinterlace.c                      | 15 ++--
 modules/hw/mmal/vout.c                             | 24 +++---
 modules/hw/vdpau/deinterlace.c                     |  8 +-
 modules/misc/stats.c                               |  4 +-
 modules/mux/asf.c                                  | 18 ++--
 modules/mux/mp4/libmp4mux.c                        | 14 ++--
 modules/mux/mp4/mp4.c                              | 22 ++---
 modules/mux/mpeg/ts.c                              |  8 +-
 modules/mux/ogg.c                                  | 38 ++++-----
 modules/packetizer/dirac.c                         |  4 +-
 modules/packetizer/h264.c                          | 21 +++--
 modules/packetizer/h264_nal.c                      |  8 +-
 modules/packetizer/h264_nal.h                      |  2 +-
 modules/packetizer/hevc.c                          | 21 +++--
 modules/packetizer/hevc_nal.c                      | 14 ++--
 modules/packetizer/hevc_nal.h                      |  2 +-
 modules/packetizer/mpeg4video.c                    | 32 ++++----
 modules/packetizer/mpegvideo.c                     | 30 ++++---
 modules/packetizer/vc1.c                           | 14 ++--
 modules/spu/audiobargraph_v.c                      |  2 +-
 modules/spu/logo.c                                 |  2 +-
 modules/spu/marq.c                                 |  2 +-
 modules/spu/remoteosd.c                            |  2 +-
 modules/spu/rss.c                                  |  2 +-
 modules/stream_out/mosaic_bridge.c                 | 38 ++++-----
 modules/stream_out/transcode/transcode.c           |  2 +-
 modules/stream_out/transcode/transcode.h           |  2 +-
 modules/stream_out/transcode/video.c               | 92 ++++++++++-----------
 modules/text_renderer/freetype/freetype.c          |  4 +-
 modules/video_chroma/swscale.c                     |  8 +-
 modules/video_filter/canvas.c                      | 10 +--
 modules/video_filter/deinterlace/deinterlace.c     |  4 +-
 modules/video_filter/fps.c                         | 17 ++--
 modules/video_filter/scene.c                       |  2 +-
 modules/video_filter/transform.c                   |  7 +-
 modules/video_output/android/display.c             | 21 +++--
 modules/video_output/decklink.cpp                  | 10 +--
 modules/video_output/opengl/internal.h             | 10 +--
 modules/video_output/win32/direct3d11.c            | 22 ++---
 modules/video_output/yuv.c                         | 11 ++-
 modules/video_splitter/wall.c                      |  4 +-
 modules/visualization/goom.c                       |  2 +-
 modules/visualization/visual/visual.c              |  4 +-
 src/input/decoder.c                                | 20 ++---
 src/input/es_out.c                                 | 17 ++--
 src/misc/es_format.c                               | 26 +++---
 src/misc/fourcc_gen.c                              |  1 +
 src/misc/image.c                                   | 46 +++++------
 src/misc/picture.c                                 | 24 +++---
 src/misc/subpicture.c                              |  4 +-
 src/misc/variables.c                               | 16 ++--
 src/video_output/display.c                         | 96 +++++++++-------------
 src/video_output/video_epg.c                       | 14 ++--
 src/video_output/video_output.c                    | 35 ++++----
 src/video_output/video_text.c                      |  8 +-
 src/video_output/video_widgets.c                   | 14 ++--
 src/video_output/vout_subpictures.c                | 14 ++--
 test/libvlc/media.c                                |  2 +-
 test/src/misc/variables.c                          | 58 ++++++-------
 146 files changed, 996 insertions(+), 1082 deletions(-)

-- 
2.11.1



More information about the vlc-devel mailing list