[FFmpeg-devel] [PATCH]Add Dirac support to ffmpeg via libdirac_* and Schroedinger libraries]

Luca Barbato lu_zero
Fri Apr 4 09:13:13 CEST 2008


Anuradha Suraparaju wrote:
> Sorry. Forgot to mention that the message is a patch in my earlier
> email.

Nevermind, it happens from time to time. Thank you for the patches, it 
will take a bit review properly but at least will prompt 
*certain*people* to start working back on updating&integrating ffdirac 
to the main ffmpeg and will provide an unified access to all the dirac 
implementations (so we can easily spot bugs and address them).

Would be possible split the schro part from the dirac one? That would 
speed up merging it.

Now some quick review.

@@ -845,6 +855,8 @@
  bktr_demuxer_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h 
dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h"
  dv1394_demuxer_deps="dv1394 dv_demuxer"
  libdc1394_demuxer_deps="libdc1394"
+dirac_demuxer_deps="dirac"
+dirac_muxer_deps="dirac"
  libnut_demuxer_deps="libnut"
  libnut_muxer_deps="libnut"
  mp3_demuxer_deps="mpegaudio_parser"
@@ -853,6 +865,8 @@
  redir_demuxer_deps="network"
  rtp_muxer_deps="network rtp_protocol"
  rtsp_demuxer_deps="sdp_demuxer"
+schro_muxer_deps="schro"
+schro_demuxer_deps="schro"
  sdp_demuxer_deps="rtp_protocol mpegts_demuxer"
  v4l_demuxer_deps="linux_videodev_h"
  v4l2_demuxer_deps="linux_videodev2_h"
@@ -861,6 +875,10 @@
  x11_grab_device_demuxer_deps="x11grab XShmCreateImage"
  x11_grab_device_demuxer_extralibs="-lX11 -lXext"

+# parsers
+dirac_parser_deps="dirac"
+schro_parser_deps="schro"
+
  # protocols
  http_protocol_deps="network"
  rtp_protocol_deps="udp_protocol"

We have already a demuxer and a parser for drc, would be possible using it?

+enabled dirac  && add_extralibs `pkg-config --libs dirac` "-lstdc++" && 
extraincs="$extraincs `pkg-config --cflags dirac`"

-lstdc++ sounds strange, but I guess that's due the fact you are using a 
C wrapper to libdirac

--- ffmpegsvn_trunk/libavcodec/avcodec.h	2008-04-01 09:14:03.000000000 +1000
+++ ffmpegsvn_trunk_dirac_schro/libavcodec/avcodec.h	2008-04-01 
09:15:43.000000000 +1000
@@ -182,6 +182,8 @@
      CODEC_ID_8SVX_EXP,
      CODEC_ID_8SVX_FIB,
      CODEC_ID_ESCAPE124,
+    CODEC_ID_SCHRO = 0xFFFE,
+    CODEC_ID_DIRAC = 0xFFFF,

why this?

diff --exclude=.svn -ruN ffmpegsvn_trunk/libavcodec/dirac.c 
ffmpegsvn_trunk_dirac_schro/libavcodec/dirac.c
--- ffmpegsvn_trunk/libavcodec/dirac.c	1970-01-01 10:00:00.000000000 +1000
+++ ffmpegsvn_trunk_dirac_schro/libavcodec/dirac.c	2008-04-04 
11:28:12.000000000 +1000
@@ -0,0 +1,514 @@
+/*

some comments aren't doxy while should be.

+ /*
+ * returns Ffmppeg chroma format
+ */

typo and not doxy.

diff --exclude=.svn -ruN ffmpegsvn_trunk/libavcodec/dirac_parser.c 
ffmpegsvn_trunk_dirac_schro/libavcodec/dirac_parser.c
--- ffmpegsvn_trunk/libavcodec/dirac_parser.c	1970-01-01 
10:00:00.000000000 +1000
+++ ffmpegsvn_trunk_dirac_schro/libavcodec/dirac_parser.c	2008-04-04 
11:28:33.000000000 +1000

+#include "dirac_schro_parser.h"
+
+AVCodecParser dirac_parser = {
+    { CODEC_ID_DIRAC },
+    sizeof(FfmpegDiracSchroParseContext),
+    dirac_schro_parse_open,
+    dirac_schro_parse,
+    dirac_schro_parse_close,
+};

Why not using just one?

diff --exclude=.svn -ruN ffmpegsvn_trunk/libavformat/mpegtsenc.c 
ffmpegsvn_trunk_dirac_schro/libavformat/mpegtsenc.c
--- ffmpegsvn_trunk/libavformat/mpegtsenc.c	2008-01-10 
10:47:05.000000000 +1100
+++ ffmpegsvn_trunk_dirac_schro/libavformat/mpegtsenc.c	2008-04-03 
14:39:26.000000000 +1000

this should be yet another separate patch.

diff --exclude=.svn -ruN ffmpegsvn_trunk/libavformat/riff.c 
ffmpegsvn_trunk_dirac_schro/libavformat/riff.c
--- ffmpegsvn_trunk/libavformat/riff.c	2008-03-10 13:21:27.000000000 +1100
+++ ffmpegsvn_trunk_dirac_schro/libavformat/riff.c	2008-04-03 
14:53:42.000000000 +1000
@@ -160,6 +160,8 @@
      { CODEC_ID_VMNC,         MKTAG('V', 'M', 'n', 'c') },
      { CODEC_ID_TARGA,        MKTAG('t', 'g', 'a', ' ') },
      { CODEC_ID_CLJR,         MKTAG('c', 'l', 'j', 'r') },
+    { CODEC_ID_SCHRO,        MKTAG('d', 'r', 'a', 'c') },
+    { CODEC_ID_DIRAC,        MKTAG('d', 'r', 'a', 'c') },
      { CODEC_ID_NONE,         0 }
  };

yet another.


that's all for now, Michael will tell more soonish probably.



-- 

Luca Barbato
Gentoo Council Member
Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero





More information about the ffmpeg-devel mailing list