Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: FFmpeg/FFmpeg
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: c39916bc2f43
Choose a base ref
...
head repository: FFmpeg/FFmpeg
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 4abc411b97d7
Choose a head ref
  • 7 commits
  • 77 files changed
  • 2 contributors

Commits on Oct 1, 2012

  1. Move xGA font data from lavc to lavu.

    This needs to be accessible for libavfilter in the next commit.
    ubitux committed Oct 1, 2012
    Copy the full SHA
    81bbce9 View commit details
  2. lavfi: EBU R.128 scanner.

    ubitux committed Oct 1, 2012
    Copy the full SHA
    d771b1d View commit details
  3. Copy the full SHA
    2308c5b View commit details
  4. isom: fix redundant redeclaration of ff_mov_read_chan().

    Silence a GCC warning. A leftover of the disabled version is still
    available in lavf/isom.c.
    ubitux committed Oct 1, 2012
    Copy the full SHA
    c4dba58 View commit details
  5. nutenc: use 1/sample rate as timebase for audio instead of framesize/…

    …sample rate
    
    This way audio frames can be exactly stored even when they are not
    aligned with timestamp 0
    
    Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
    michaelni committed Oct 1, 2012
    Copy the full SHA
    4eb0f5f View commit details
  6. nut: store and read the r_frame_rate

    With this, when we use a finer timebase than neccessary to store
    durations the demuxer still knows what the original timebase was.
    
    Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
    michaelni committed Oct 1, 2012
    Copy the full SHA
    e3fb5bc View commit details
  7. nutenc: choose for non audio streams a timebase with finer resolution.

    While a 25 fps stream can in general store frame durations in 1/25
    units, this is not true for the timestamps. For example a 25fps
    and a 25000/1001 fps stream when they are stored together might have
    a matching 0 timestamp point but when for example a chapter from
    this is cut the new start is no longer aligned. The issue gets
    MUCH worse when the streams are lower fps, like 1 or 2 fps.
    
    This commit thus makes the muxer choose a multiple of the
    framerate as timebase that is at least about 20 micro seconds precise
    
    Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
    michaelni committed Oct 1, 2012
    Copy the full SHA
    4abc411 View commit details
Showing with 2,378 additions and 1,479 deletions.
  1. +1 −0 Changelog
  2. +1 −0 configure
  3. +47 −0 doc/filters.texi
  4. +7 −6 libavcodec/ansi.c
  5. +3 −2 libavcodec/bintext.c
  6. +1 −390 libavcodec/cga_data.c
  7. +1 −2 libavcodec/cga_data.h
  8. +2 −1 libavcodec/tmv.c
  9. +1 −1 libavcodec/version.h
  10. +1 −0 libavfilter/Makefile
  11. +1 −0 libavfilter/allfilters.c
  12. +747 −0 libavfilter/f_ebur128.c
  13. +1 −1 libavfilter/version.h
  14. +1 −1 libavfilter/vf_edgedetect.c
  15. +1 −0 libavformat/aiffdec.c
  16. +0 −1 libavformat/isom.h
  17. +6 −0 libavformat/nutdec.c
  18. +32 −2 libavformat/nutenc.c
  19. +1 −0 libavutil/Makefile
  20. +417 −0 libavutil/xga_font_data.c
  21. +34 −0 libavutil/xga_font_data.h
  22. +32 −32 tests/ref/fate/ffprobe_compact
  23. +32 −32 tests/ref/fate/ffprobe_csv
  24. +83 −83 tests/ref/fate/ffprobe_default
  25. +83 −83 tests/ref/fate/ffprobe_flat
  26. +83 −83 tests/ref/fate/ffprobe_ini
  27. +83 −83 tests/ref/fate/ffprobe_json
  28. +32 −32 tests/ref/fate/ffprobe_xml
  29. +2 −2 tests/ref/lavf/nut
  30. +1 −1 tests/ref/lavfi/alphaextract_rgb
  31. +1 −1 tests/ref/lavfi/alphaextract_yuv
  32. +1 −1 tests/ref/lavfi/alphamerge_rgb
  33. +1 −1 tests/ref/lavfi/alphamerge_yuv
  34. +1 −1 tests/ref/lavfi/colormatrix1
  35. +1 −1 tests/ref/lavfi/colormatrix2
  36. +1 −1 tests/ref/lavfi/crop
  37. +1 −1 tests/ref/lavfi/crop_scale
  38. +1 −1 tests/ref/lavfi/crop_scale_vflip
  39. +1 −1 tests/ref/lavfi/crop_vflip
  40. +1 −1 tests/ref/lavfi/drawbox
  41. +1 −1 tests/ref/lavfi/edgedetect
  42. +1 −1 tests/ref/lavfi/fade
  43. +1 −1 tests/ref/lavfi/life
  44. +1 −1 tests/ref/lavfi/null
  45. +1 −1 tests/ref/lavfi/overlay
  46. +1 −1 tests/ref/lavfi/pad
  47. +83 −83 tests/ref/lavfi/pixfmts_copy
  48. +43 −43 tests/ref/lavfi/pixfmts_crop
  49. +47 −47 tests/ref/lavfi/pixfmts_hflip
  50. +83 −83 tests/ref/lavfi/pixfmts_null
  51. +24 −24 tests/ref/lavfi/pixfmts_pad
  52. +83 −83 tests/ref/lavfi/pixfmts_pixdesctest
  53. +83 −83 tests/ref/lavfi/pixfmts_scale
  54. +14 −14 tests/ref/lavfi/pixfmts_super2xsai
  55. +83 −83 tests/ref/lavfi/pixfmts_vflip
  56. +1 −1 tests/ref/lavfi/pp
  57. +1 −1 tests/ref/lavfi/pp2
  58. +1 −1 tests/ref/lavfi/pp3
  59. +1 −1 tests/ref/lavfi/pp4
  60. +1 −1 tests/ref/lavfi/pp5
  61. +1 −1 tests/ref/lavfi/pp6
  62. +1 −1 tests/ref/lavfi/scale200
  63. +1 −1 tests/ref/lavfi/scale500
  64. +1 −1 tests/ref/lavfi/select
  65. +1 −1 tests/ref/lavfi/setdar
  66. +1 −1 tests/ref/lavfi/setsar
  67. +1 −1 tests/ref/lavfi/testsrc
  68. +1 −1 tests/ref/lavfi/thumbnail
  69. +1 −1 tests/ref/lavfi/tile
  70. +10 −10 tests/ref/lavfi/tinterlace_merge
  71. +10 −10 tests/ref/lavfi/tinterlace_pad
  72. +1 −1 tests/ref/lavfi/transpose
  73. +1 −1 tests/ref/lavfi/unsharp
  74. +1 −1 tests/ref/lavfi/vflip
  75. +1 −1 tests/ref/lavfi/vflip_crop
  76. +1 −1 tests/ref/lavfi/vflip_vflip
  77. +43 −43 tests/ref/seek/lavf_nut
1 change: 1 addition & 0 deletions Changelog
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@ releases are sorted from youngest to oldest.

version next:
- stream disposition information printing in ffprobe
- filter for loudness analysis following EBU R128


version 1.0:
1 change: 1 addition & 0 deletions configure
Original file line number Diff line number Diff line change
@@ -1901,6 +1901,7 @@ decimate_filter_deps="gpl avcodec"
delogo_filter_deps="gpl"
deshake_filter_deps="avcodec"
drawtext_filter_deps="libfreetype"
ebur128_filter_deps="gpl"
flite_filter_deps="libflite"
frei0r_filter_deps="frei0r dlopen"
frei0r_filter_extralibs='$ldl'
47 changes: 47 additions & 0 deletions doc/filters.texi
Original file line number Diff line number Diff line change
@@ -4480,6 +4480,53 @@ setpts=PTS+10/TB
@end example
@end itemize

@section ebur128

EBU R128 scanner filter. This filter takes an audio stream as input and outputs
it unchanged. By default, it logs a message at a frequency of 10Hz with the
Momentary loudness (identified by @code{M}), Short-term loudness (@code{S}),
Integrated loudness (@code{I}) and Loudness Range (@code{LRA}).

The filter also has a video output (see the @var{video} option) with a real
time graph to observe the loudness evolution. The graphic contains the logged
message mentioned above, so it is not printed anymore when this option is set,
unless the verbose logging is set. The main graphing area contains the
short-term loudness (3 seconds of analysis), and the gauge on the right is for
the momentary loudness (400 milliseconds).

More information about the Loudness Recommendation EBU R128 on
@url{http://tech.ebu.ch/loudness}.

The filter accepts the following named parameters:

@table @option

@item video
Activate the video output. The audio stream is passed unchanged whether this
option is set or no. The video stream will be the first output stream if
activated. Default is @code{0}.

@item size
Set the video size. This option is for video only. Default and minimum
resolution is @code{640x480}.

@item meter
Set the EBU scale meter. Default is @code{9}. Common values are @code{9} and
@code{18}, respectively for EBU scale meter +9 and EBU scale meter +18. Any
other integer value between this range is allowed.

@end table

Example of real-time graph using @command{ffplay}, with a EBU scale meter +18:
@example
ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
@end example

Run an analysis with @command{ffmpeg}:
@example
ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
@end example

@section settb, asettb

Set the timebase to use for the output frames timestamps.
13 changes: 7 additions & 6 deletions libavcodec/ansi.c
Original file line number Diff line number Diff line change
@@ -26,6 +26,7 @@

#include "libavutil/common.h"
#include "libavutil/lfg.h"
#include "libavutil/xga_font_data.h"
#include "avcodec.h"
#include "cga_data.h"

@@ -78,7 +79,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
avctx->pix_fmt = PIX_FMT_PAL8;

/* defaults */
s->font = ff_vga16_font;
s->font = avpriv_vga16_font;
s->font_height = 16;
s->fg = DEFAULT_FG_COLOR;
s->bg = DEFAULT_BG_COLOR;
@@ -203,33 +204,33 @@ static int execute_code(AVCodecContext * avctx, int c)
height = avctx->height;
switch(s->args[0]) {
case 0: case 1: case 4: case 5: case 13: case 19: //320x200 (25 rows)
s->font = ff_cga_font;
s->font = avpriv_cga_font;
s->font_height = 8;
width = 40<<3;
height = 25<<3;
break;
case 2: case 3: //640x400 (25 rows)
s->font = ff_vga16_font;
s->font = avpriv_vga16_font;
s->font_height = 16;
width = 80<<3;
height = 25<<4;
break;
case 6: case 14: //640x200 (25 rows)
s->font = ff_cga_font;
s->font = avpriv_cga_font;
s->font_height = 8;
width = 80<<3;
height = 25<<3;
break;
case 7: //set line wrapping
break;
case 15: case 16: //640x350 (43 rows)
s->font = ff_cga_font;
s->font = avpriv_cga_font;
s->font_height = 8;
width = 80<<3;
height = 43<<3;
break;
case 17: case 18: //640x480 (60 rows)
s->font = ff_cga_font;
s->font = avpriv_cga_font;
s->font_height = 8;
width = 80<<3;
height = 60<<4;
5 changes: 3 additions & 2 deletions libavcodec/bintext.c
Original file line number Diff line number Diff line change
@@ -29,6 +29,7 @@
*/

#include "libavutil/intreadwrite.h"
#include "libavutil/xga_font_data.h"
#include "avcodec.h"
#include "cga_data.h"
#include "bintext.h"
@@ -82,10 +83,10 @@ static av_cold int decode_init(AVCodecContext *avctx)
av_log(avctx, AV_LOG_WARNING, "font height %i not supported\n", s->font_height);
s->font_height = 8;
case 8:
s->font = ff_cga_font;
s->font = avpriv_cga_font;
break;
case 16:
s->font = ff_vga16_font;
s->font = avpriv_vga16_font;
break;
}
}
Loading