mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-04 05:22:30 +00:00
configure.ac: Fix configure check for mpeg2enc. We need 1.6.1.93 instead of 1.6.1.92, since the pkg-config file of 1....
Original commit message from CVS: 2004-01-01 Ronald Bultje <rbultje@ronald.bitfreak.net> * configure.ac: Fix configure check for mpeg2enc. We need 1.6.1.93 instead of 1.6.1.92, since the pkg-config file of 1.6.1.92 is borked and it therefore uses the wrong include paths. Too bad... Note that 1.6.1.93 is not release yet. ;). Also add a check for mplex, which is now using the lib'ified mplex from mjpegtools, too. * ext/ffmpeg/gstffmpegcodecmap.c: Add codec_tag for 3ivx/xvid. For xvid, this should fix playback issues. I don't think ffmpeg handles 3ivx correctly, so this probably won't work. But it won't hurt either. * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_connect), (gst_ffmpegdec_chain): * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect), (gst_ffmpegenc_chain_audio): Fix memleak in audio encoding. Close codec if open fails, this calls the cleanup routines so we can re-use the context. * ext/mpeg2enc/gstmpeg2enc.cc: Fix pad template names/types, fix memory issue with getcaps(). * ext/mpeg2enc/gstmpeg2encoder.cc: * ext/mpeg2enc/gstmpeg2encoder.hh: Fix compile issue with new caps system (const thingy). * ext/mpeg2enc/gstmpeg2encpicturereader.cc: * ext/mpeg2enc/gstmpeg2encpicturereader.hh: We read a first frame right on initing, so that we have a caps when we init the output. This caps is cached in padprivate and read as first frame. * ext/mplex/Makefile.am: * ext/mplex/gstmplex.cc: * ext/mplex/gstmplex.h: * ext/mplex/gstmplex.hh: * ext/mplex/gstmplexibitstream.cc: * ext/mplex/gstmplexibitstream.hh: * ext/mplex/gstmplexjob.cc: * ext/mplex/gstmplexjob.hh: * ext/mplex/gstmplexoutputstream.cc: * ext/mplex/gstmplexoutputstream.hh: We wrap mjpegtools mplex. So I rewrote the plugin. The old plugin had issues, didn't do capsnego, supported only a subset of the mplex features and required a mplex fork in our local CVS. Plus that it worked agaist a very old mplex version. Rewriting was faster than updating it. * gst-libs/ext/Makefile.am: * gst-libs/ext/mplex/INSTRUCT: * gst-libs/ext/mplex/Makefile.am: * gst-libs/ext/mplex/README: * gst-libs/ext/mplex/TODO: * gst-libs/ext/mplex/ac3strm_in.cc: * gst-libs/ext/mplex/audiostrm.hh: * gst-libs/ext/mplex/audiostrm_out.cc: * gst-libs/ext/mplex/aunit.hh: * gst-libs/ext/mplex/bits.cc: * gst-libs/ext/mplex/bits.hh: * gst-libs/ext/mplex/buffer.cc: * gst-libs/ext/mplex/buffer.hh: * gst-libs/ext/mplex/fastintfns.h: * gst-libs/ext/mplex/format_codes.h: * gst-libs/ext/mplex/inputstrm.cc: * gst-libs/ext/mplex/inputstrm.hh: * gst-libs/ext/mplex/lpcmstrm_in.cc: * gst-libs/ext/mplex/mjpeg_logging.cc: * gst-libs/ext/mplex/mjpeg_logging.h: * gst-libs/ext/mplex/mjpeg_types.h: * gst-libs/ext/mplex/mpastrm_in.cc: * gst-libs/ext/mplex/mpegconsts.cc: * gst-libs/ext/mplex/mpegconsts.h: * gst-libs/ext/mplex/mplexconsts.hh: * gst-libs/ext/mplex/multplex.cc: * gst-libs/ext/mplex/outputstream.hh: * gst-libs/ext/mplex/padstrm.cc: * gst-libs/ext/mplex/padstrm.hh: * gst-libs/ext/mplex/stillsstream.cc: * gst-libs/ext/mplex/stillsstream.hh: * gst-libs/ext/mplex/systems.cc: * gst-libs/ext/mplex/systems.hh: * gst-libs/ext/mplex/vector.cc: * gst-libs/ext/mplex/vector.hh: * gst-libs/ext/mplex/videostrm.hh: * gst-libs/ext/mplex/videostrm_in.cc: * gst-libs/ext/mplex/videostrm_out.cc: * gst-libs/ext/mplex/yuv4mpeg.cc: * gst-libs/ext/mplex/yuv4mpeg.h: * gst-libs/ext/mplex/yuv4mpeg_intern.h: * gst-libs/ext/mplex/yuv4mpeg_ratio.cc: We don't fork mjpegtools' mplex in our CVS anymore. * gst/avi/gstavidemux.c: (gst_avi_demux_src_getcaps), (gst_avi_demux_add_stream): * gst/avi/gstavidemux.h: Add getcaps() function for proper caps nego. This makes some parts of AVI playback/reading work. * sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect): Resize window on new capsnego. This is probably wrong, but I'm still committing it because with current capsnego, the first successfull capsnego is auto-fixated, therefore rounded down to the lowest values in the caps. this results in a 16x16 XWindow that is not reized when real capsnego finishes. Dave, I see more cases of this, do you know a proper solution? * tools/gst-launch-ext.in: Fix MPEG-4 AAC (Apple iPod/iTunes) file commandline.
This commit is contained in:
parent
079a91cc80
commit
39a338d51c
5 changed files with 171 additions and 6 deletions
102
ChangeLog
102
ChangeLog
|
@ -1,3 +1,105 @@
|
|||
2004-01-01 Ronald Bultje <rbultje@ronald.bitfreak.net>
|
||||
|
||||
* configure.ac:
|
||||
Fix configure check for mpeg2enc. We need 1.6.1.93 instead of
|
||||
1.6.1.92, since the pkg-config file of 1.6.1.92 is borked and
|
||||
it therefore uses the wrong include paths. Too bad... Note
|
||||
that 1.6.1.93 is not release yet. ;).
|
||||
Also add a check for mplex, which is now using the lib'ified
|
||||
mplex from mjpegtools, too.
|
||||
* ext/ffmpeg/gstffmpegcodecmap.c:
|
||||
Add codec_tag for 3ivx/xvid. For xvid, this should fix playback
|
||||
issues. I don't think ffmpeg handles 3ivx correctly, so this
|
||||
probably won't work. But it won't hurt either.
|
||||
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_connect),
|
||||
(gst_ffmpegdec_chain):
|
||||
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect),
|
||||
(gst_ffmpegenc_chain_audio):
|
||||
Fix memleak in audio encoding. Close codec if open fails, this
|
||||
calls the cleanup routines so we can re-use the context.
|
||||
* ext/mpeg2enc/gstmpeg2enc.cc:
|
||||
Fix pad template names/types, fix memory issue with getcaps().
|
||||
* ext/mpeg2enc/gstmpeg2encoder.cc:
|
||||
* ext/mpeg2enc/gstmpeg2encoder.hh:
|
||||
Fix compile issue with new caps system (const thingy).
|
||||
* ext/mpeg2enc/gstmpeg2encpicturereader.cc:
|
||||
* ext/mpeg2enc/gstmpeg2encpicturereader.hh:
|
||||
We read a first frame right on initing, so that we have a caps
|
||||
when we init the output. This caps is cached in padprivate and
|
||||
read as first frame.
|
||||
* ext/mplex/Makefile.am:
|
||||
* ext/mplex/gstmplex.cc:
|
||||
* ext/mplex/gstmplex.h:
|
||||
* ext/mplex/gstmplex.hh:
|
||||
* ext/mplex/gstmplexibitstream.cc:
|
||||
* ext/mplex/gstmplexibitstream.hh:
|
||||
* ext/mplex/gstmplexjob.cc:
|
||||
* ext/mplex/gstmplexjob.hh:
|
||||
* ext/mplex/gstmplexoutputstream.cc:
|
||||
* ext/mplex/gstmplexoutputstream.hh:
|
||||
We wrap mjpegtools mplex. So I rewrote the plugin. The old plugin
|
||||
had issues, didn't do capsnego, supported only a subset of the
|
||||
mplex features and required a mplex fork in our local CVS. Plus
|
||||
that it worked agaist a very old mplex version. Rewriting was
|
||||
faster than updating it.
|
||||
* gst-libs/ext/Makefile.am:
|
||||
* gst-libs/ext/mplex/INSTRUCT:
|
||||
* gst-libs/ext/mplex/Makefile.am:
|
||||
* gst-libs/ext/mplex/README:
|
||||
* gst-libs/ext/mplex/TODO:
|
||||
* gst-libs/ext/mplex/ac3strm_in.cc:
|
||||
* gst-libs/ext/mplex/audiostrm.hh:
|
||||
* gst-libs/ext/mplex/audiostrm_out.cc:
|
||||
* gst-libs/ext/mplex/aunit.hh:
|
||||
* gst-libs/ext/mplex/bits.cc:
|
||||
* gst-libs/ext/mplex/bits.hh:
|
||||
* gst-libs/ext/mplex/buffer.cc:
|
||||
* gst-libs/ext/mplex/buffer.hh:
|
||||
* gst-libs/ext/mplex/fastintfns.h:
|
||||
* gst-libs/ext/mplex/format_codes.h:
|
||||
* gst-libs/ext/mplex/inputstrm.cc:
|
||||
* gst-libs/ext/mplex/inputstrm.hh:
|
||||
* gst-libs/ext/mplex/lpcmstrm_in.cc:
|
||||
* gst-libs/ext/mplex/mjpeg_logging.cc:
|
||||
* gst-libs/ext/mplex/mjpeg_logging.h:
|
||||
* gst-libs/ext/mplex/mjpeg_types.h:
|
||||
* gst-libs/ext/mplex/mpastrm_in.cc:
|
||||
* gst-libs/ext/mplex/mpegconsts.cc:
|
||||
* gst-libs/ext/mplex/mpegconsts.h:
|
||||
* gst-libs/ext/mplex/mplexconsts.hh:
|
||||
* gst-libs/ext/mplex/multplex.cc:
|
||||
* gst-libs/ext/mplex/outputstream.hh:
|
||||
* gst-libs/ext/mplex/padstrm.cc:
|
||||
* gst-libs/ext/mplex/padstrm.hh:
|
||||
* gst-libs/ext/mplex/stillsstream.cc:
|
||||
* gst-libs/ext/mplex/stillsstream.hh:
|
||||
* gst-libs/ext/mplex/systems.cc:
|
||||
* gst-libs/ext/mplex/systems.hh:
|
||||
* gst-libs/ext/mplex/vector.cc:
|
||||
* gst-libs/ext/mplex/vector.hh:
|
||||
* gst-libs/ext/mplex/videostrm.hh:
|
||||
* gst-libs/ext/mplex/videostrm_in.cc:
|
||||
* gst-libs/ext/mplex/videostrm_out.cc:
|
||||
* gst-libs/ext/mplex/yuv4mpeg.cc:
|
||||
* gst-libs/ext/mplex/yuv4mpeg.h:
|
||||
* gst-libs/ext/mplex/yuv4mpeg_intern.h:
|
||||
* gst-libs/ext/mplex/yuv4mpeg_ratio.cc:
|
||||
We don't fork mjpegtools' mplex in our CVS anymore.
|
||||
* gst/avi/gstavidemux.c: (gst_avi_demux_src_getcaps),
|
||||
(gst_avi_demux_add_stream):
|
||||
* gst/avi/gstavidemux.h:
|
||||
Add getcaps() function for proper caps nego. This makes some
|
||||
parts of AVI playback/reading work.
|
||||
* sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect):
|
||||
Resize window on new capsnego. This is probably wrong, but
|
||||
I'm still committing it because with current capsnego, the
|
||||
first successfull capsnego is auto-fixated, therefore rounded
|
||||
down to the lowest values in the caps. this results in a 16x16
|
||||
XWindow that is not reized when real capsnego finishes.
|
||||
Dave, I see more cases of this, do you know a proper solution?
|
||||
* tools/gst-launch-ext.in:
|
||||
Fix MPEG-4 AAC (Apple iPod/iTunes) file commandline.
|
||||
|
||||
2003-12-31 David Schleef <ds@schleef.org>
|
||||
|
||||
* gst/tcp/gsttcpsrc.c: (gst_tcpsrc_get):
|
||||
|
|
59
configure.ac
59
configure.ac
|
@ -1084,7 +1084,7 @@ GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
|
|||
dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
|
||||
dnl since many distros include mjpegtools specifically without mplex
|
||||
dnl and mpeg2enc, we check for mpeg2enc on its own, too.
|
||||
PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.92, [
|
||||
PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
|
||||
dnl switch over to c++ to test things
|
||||
AC_LANG_CPLUSPLUS
|
||||
OLD_CPPFLAGS="$CPPFLAGS"
|
||||
|
@ -1123,7 +1123,61 @@ main (int argc,
|
|||
|
||||
dnl *** mplex ***
|
||||
translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
|
||||
GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [HAVE_MPLEX=$HAVE_CXX])
|
||||
GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
|
||||
HAVE_MPLEX="no"
|
||||
dnl we require a c++ compiler for this one
|
||||
if [ test x$HAVE_CXX = xyes ]; then
|
||||
dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
|
||||
dnl since many distros include mjpegtools specifically without mplex
|
||||
dnl and mpeg2enc, we check for mplex on its own, too.
|
||||
PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.6.1.93, [
|
||||
dnl switch over to c++ to test things
|
||||
AC_LANG_CPLUSPLUS
|
||||
OLD_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $MPLEX_CFLAGS"
|
||||
AC_CHECK_HEADER(interact.hpp, [
|
||||
MPLEX_LIBS="$MPLEX_LIBS -lmplex2 -lm"
|
||||
OLD_LIBS="$LIBS"
|
||||
LIBS="$LIBS $MPLEX_LIBS"
|
||||
AC_MSG_CHECKING([for valid mplex objects])
|
||||
AC_TRY_RUN([
|
||||
#include <interact.hpp>
|
||||
#include <outputstrm.hpp>
|
||||
#include <multiplexor.hpp>
|
||||
|
||||
int
|
||||
main (int argc,
|
||||
char *argv[])
|
||||
{
|
||||
class TestOutputStream : public OutputStream {
|
||||
public:
|
||||
TestOutputStream () : OutputStream () { }
|
||||
void Write (uint8_t *a, unsigned int b) { }
|
||||
void NextSegment () { }
|
||||
off_t SegmentSize () { }
|
||||
void Close () { }
|
||||
int Open () { }
|
||||
};
|
||||
MultiplexJob *job = new MultiplexJob ();
|
||||
vector<IBitStream *> inputs;
|
||||
job->SetupInputStreams (inputs);
|
||||
TestOutputStream *out = new TestOutputStream ();
|
||||
Multiplexor mux (*job, *out);
|
||||
return 0;
|
||||
}
|
||||
],[
|
||||
HAVE_MPLEX="yes"
|
||||
AC_SUBST(MPLEX_CFLAGS)
|
||||
AC_SUBST(MPLEX_LIBS)
|
||||
AC_MSG_RESULT(yes)
|
||||
], AC_MSG_RESULT(no))
|
||||
LIBS="$OLD_LIBS"
|
||||
])
|
||||
CPPFLAGS="$OLD_CPPFLAGS"
|
||||
AC_LANG_C
|
||||
], HAVE_MPLEX="no")
|
||||
fi
|
||||
])
|
||||
|
||||
dnl *** pango ***
|
||||
translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
|
||||
|
@ -1588,7 +1642,6 @@ gst-libs/gst/xoverlay/Makefile
|
|||
gst-libs/gst/xwindowlistener/Makefile
|
||||
gst-libs/ext/Makefile
|
||||
gst-libs/ext/ffmpeg/Makefile
|
||||
gst-libs/ext/mplex/Makefile
|
||||
examples/dynparams/Makefile
|
||||
examples/capsfilter/Makefile
|
||||
examples/seeking/Makefile
|
||||
|
|
|
@ -497,6 +497,14 @@ gst_avi_demux_handle_src_query (GstPad *pad,
|
|||
return res;
|
||||
}
|
||||
|
||||
static GstCaps *
|
||||
gst_avi_demux_src_getcaps (GstPad *pad)
|
||||
{
|
||||
avi_stream_context *stream = gst_pad_get_element_private (pad);
|
||||
|
||||
return gst_caps_copy (stream->caps);
|
||||
}
|
||||
|
||||
static gint32
|
||||
gst_avi_demux_sync_streams (GstAviDemux *avi,
|
||||
guint64 time)
|
||||
|
@ -884,8 +892,6 @@ gst_avi_demux_add_stream (GstAviDemux *avi)
|
|||
/* set proper settings and add it */
|
||||
pad = gst_pad_new_from_template (templ, padname);
|
||||
g_free (padname);
|
||||
if (caps != NULL)
|
||||
gst_pad_try_set_caps (pad, caps);
|
||||
|
||||
gst_pad_set_formats_function (pad, gst_avi_demux_get_src_formats);
|
||||
gst_pad_set_event_mask_function (pad, gst_avi_demux_get_event_mask);
|
||||
|
@ -893,8 +899,10 @@ gst_avi_demux_add_stream (GstAviDemux *avi)
|
|||
gst_pad_set_query_type_function (pad, gst_avi_demux_get_src_query_types);
|
||||
gst_pad_set_query_function (pad, gst_avi_demux_handle_src_query);
|
||||
gst_pad_set_convert_function (pad, gst_avi_demux_src_convert);
|
||||
gst_pad_set_getcaps_function (pad, gst_avi_demux_src_getcaps);
|
||||
|
||||
stream = &avi->stream[avi->num_streams];
|
||||
stream->caps = caps ? caps : gst_caps_new_empty ();
|
||||
stream->pad = pad;
|
||||
stream->strh = strh;
|
||||
stream->num = avi->num_streams;
|
||||
|
@ -908,6 +916,7 @@ gst_avi_demux_add_stream (GstAviDemux *avi)
|
|||
gst_pad_set_element_private (pad, stream);
|
||||
avi->num_streams++;
|
||||
|
||||
/* auto-negotiates */
|
||||
gst_element_add_pad (GST_ELEMENT (avi), pad);
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -61,6 +61,7 @@ typedef struct {
|
|||
|
||||
/* pad, strh */
|
||||
GstPad *pad;
|
||||
GstCaps *caps;
|
||||
gst_riff_strh *strh;
|
||||
|
||||
/* current position (byte, frame, time) */
|
||||
|
|
|
@ -109,7 +109,7 @@ read_config ($0);
|
|||
"fli", "flxdec ! colorspace ! $cfg{VIDEOSINK}",
|
||||
"m1v", "mpegdemux ! { queue ! mpeg2dec ! $cfg{VIDEOSINK} }",
|
||||
"m2v", "mpegdemux ! { queue ! mpeg2dec ! $cfg{VIDEOSINK} }",
|
||||
"m4a", "qtdemux ! { queue .audio_00! faad ! $cfg{AUDIOSINK} }",
|
||||
"m4a", "qtdemux .audio_00 ! { queue ! faad ! $cfg{AUDIOSINK} }",
|
||||
"mod", "modplug ! $cfg{AUDIOSINK}",
|
||||
"mp2", "mad ! $cfg{AUDIOSINK}",
|
||||
"mp3", "mad ! $cfg{AUDIOSINK}",
|
||||
|
|
Loading…
Reference in a new issue