mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-20 04:56:24 +00:00
flac debug cleanup m4 for ffmpeg
Original commit message from CVS: flac debug cleanup m4 for ffmpeg
This commit is contained in:
parent
d9c6d0dde9
commit
dbb97e6823
6 changed files with 123 additions and 12 deletions
2
common
2
common
|
@ -1 +1 @@
|
||||||
Subproject commit 1ca7d9a20180cab830f4383cde5ba932338e50b1
|
Subproject commit f2d9b99515c73da09bfe307d273d320f79a226da
|
|
@ -504,6 +504,12 @@ GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
|
||||||
AC_SUBST(FLAC_LIBS)
|
AC_SUBST(FLAC_LIBS)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl *** FFMPEG ***
|
||||||
|
translit(dnm, m, l) AM_CONDITIONAL(USE_FFMPEG, true)
|
||||||
|
GST_CHECK_FEATURE(FFMPEG, [ffmpeg plug-ins], ffmpeg, [
|
||||||
|
AM_PATH_FFMPEG(0.4.6, HAVE_FFMPEG=yes, HAVE_FFMPEG=no)
|
||||||
|
])
|
||||||
|
|
||||||
dnl *** Gnome VFS ***
|
dnl *** Gnome VFS ***
|
||||||
translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
|
translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
|
||||||
GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
|
GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
|
||||||
|
|
|
@ -76,6 +76,12 @@ else
|
||||||
GSM_DIR=
|
GSM_DIR=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if USE_FFMPEG
|
||||||
|
FFMPEG_DIR=ffmpeg
|
||||||
|
else
|
||||||
|
FFMPEG_DIR=
|
||||||
|
endif
|
||||||
|
|
||||||
if USE_FLAC
|
if USE_FLAC
|
||||||
FLAC_DIR=flac
|
FLAC_DIR=flac
|
||||||
else
|
else
|
||||||
|
@ -142,12 +148,6 @@ else
|
||||||
LIBFAME_DIR=
|
LIBFAME_DIR=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if USE_LIBPNG
|
|
||||||
LIBPNG_DIR=libpng
|
|
||||||
else
|
|
||||||
LIBPNG_DIR=
|
|
||||||
endif
|
|
||||||
|
|
||||||
if USE_MAD
|
if USE_MAD
|
||||||
MAD_DIR=mad
|
MAD_DIR=mad
|
||||||
else
|
else
|
||||||
|
@ -242,7 +242,7 @@ SUBDIRS=$(A52DEC_DIR) $(AALIB_DIR) $(ALSA_DIR) \
|
||||||
$(ARTS_DIR) $(ARTSC_DIR) $(AUDIOFILE_DIR) \
|
$(ARTS_DIR) $(ARTSC_DIR) $(AUDIOFILE_DIR) \
|
||||||
$(AVIFILE_DIR) $(CDPARANOIA_DIR) \
|
$(AVIFILE_DIR) $(CDPARANOIA_DIR) \
|
||||||
$(DVDREAD_DIR) $(DVDNAV_DIR) $(ESD_DIR) \
|
$(DVDREAD_DIR) $(DVDNAV_DIR) $(ESD_DIR) \
|
||||||
$(FLAC_DIR) $(GNOMEVFS_DIR) $(GSM_DIR) \
|
$(FFMPEG_DIR) $(FLAC_DIR) $(GNOMEVFS_DIR) $(GSM_DIR) \
|
||||||
$(HERMES_DIR) $(HTTP_DIR) $(JACK_DIR) $(JPEG_DIR) \
|
$(HERMES_DIR) $(HTTP_DIR) $(JACK_DIR) $(JPEG_DIR) \
|
||||||
$(LADSPA_DIR) $(LAME_DIR) $(LCS_DIR) $(LIBDV_DIR) $(LIBFAME_DIR) \
|
$(LADSPA_DIR) $(LAME_DIR) $(LCS_DIR) $(LIBDV_DIR) $(LIBFAME_DIR) \
|
||||||
$(MAD_DIR) $(MIKMOD_DIR) $(MJPEGTOOLS_DIR) $(MPEG2DEC_DIR) \
|
$(MAD_DIR) $(MIKMOD_DIR) $(MJPEGTOOLS_DIR) $(MPEG2DEC_DIR) \
|
||||||
|
|
|
@ -433,9 +433,11 @@ gst_flacdec_loop (GstElement *element)
|
||||||
|
|
||||||
flacdec = GST_FLACDEC (element);
|
flacdec = GST_FLACDEC (element);
|
||||||
|
|
||||||
|
GST_DEBUG (GST_CAT_PLUGIN_INFO, "flacdec: entering loop");
|
||||||
if (flacdec->init) {
|
if (flacdec->init) {
|
||||||
|
GST_DEBUG (GST_CAT_PLUGIN_INFO, "flacdec: initializing decoder");
|
||||||
FLAC__seekable_stream_decoder_init (flacdec->decoder);
|
FLAC__seekable_stream_decoder_init (flacdec->decoder);
|
||||||
//FLAC__seekable_stream_decoder_process_metadata (flacdec->decoder);
|
/* FLAC__seekable_stream_decoder_process_metadata (flacdec->decoder); */
|
||||||
flacdec->init = FALSE;
|
flacdec->init = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -455,19 +457,23 @@ gst_flacdec_loop (GstElement *element)
|
||||||
flacdec->seek_pending = FALSE;
|
flacdec->seek_pending = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GST_DEBUG (GST_CAT_PLUGIN_INFO, "flacdec: processing single");
|
||||||
res = FLAC__seekable_stream_decoder_process_single (flacdec->decoder);
|
res = FLAC__seekable_stream_decoder_process_single (flacdec->decoder);
|
||||||
|
GST_DEBUG (GST_CAT_PLUGIN_INFO, "flacdec: checking for EOS");
|
||||||
if (FLAC__seekable_stream_decoder_get_state (flacdec->decoder) ==
|
if (FLAC__seekable_stream_decoder_get_state (flacdec->decoder) ==
|
||||||
FLAC__SEEKABLE_STREAM_DECODER_END_OF_STREAM)
|
FLAC__SEEKABLE_STREAM_DECODER_END_OF_STREAM)
|
||||||
{
|
{
|
||||||
GstEvent *event;
|
GstEvent *event;
|
||||||
|
|
||||||
|
GST_DEBUG (GST_CAT_PLUGIN_INFO, "flacdec: sending EOS event");
|
||||||
FLAC__seekable_stream_decoder_finish(flacdec->decoder);
|
FLAC__seekable_stream_decoder_finish(flacdec->decoder);
|
||||||
flacdec->init = TRUE;
|
flacdec->init = TRUE;
|
||||||
|
|
||||||
event = gst_event_new(GST_EVENT_EOS);
|
event = gst_event_new (GST_EVENT_EOS);
|
||||||
gst_pad_push (flacdec->srcpad, GST_BUFFER (event));
|
gst_pad_push (flacdec->srcpad, GST_BUFFER (event));
|
||||||
gst_element_set_eos (element);
|
gst_element_set_eos (element);
|
||||||
}
|
}
|
||||||
|
GST_DEBUG (GST_CAT_PLUGIN_INFO, "flacdec: _loop end");
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_FORMATS_FUNCTION (gst_flacdec_get_src_formats,
|
GST_FORMATS_FUNCTION (gst_flacdec_get_src_formats,
|
||||||
|
|
99
m4/as-ffmpeg.m4
Normal file
99
m4/as-ffmpeg.m4
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
# CFLAGS and library paths for FFMPEG
|
||||||
|
# taken from Autostar Sandbox, http://autostars.sourceforge.net/
|
||||||
|
|
||||||
|
dnl Usage:
|
||||||
|
dnl AM_PATH_FFMPEG([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||||
|
dnl FIXME: version checking does not work currently
|
||||||
|
dnl
|
||||||
|
dnl Example:
|
||||||
|
dnl AM_PATH_FFMPEG(0.4.6, , AC_MSG_ERROR([*** FFMPEG >= 0.4.6 not installed))
|
||||||
|
dnl
|
||||||
|
dnl Defines FFMPEG_LIBS
|
||||||
|
dnl FIXME: should define FFMPEG_VERSION
|
||||||
|
dnl
|
||||||
|
|
||||||
|
AC_DEFUN(AM_PATH_FFMPEG,
|
||||||
|
[
|
||||||
|
dnl allow for specification of a source path (for uninstalled)
|
||||||
|
AC_ARG_WITH(ffmpeg-source,
|
||||||
|
AC_HELP_STRING([--with-ffmpeg-source=DIR],
|
||||||
|
[Directory where FFmpeg source is (optional)]),
|
||||||
|
ffmpeg_source="$withval", ffmpeg_source="")
|
||||||
|
|
||||||
|
dnl save CFLAGS and LIBS here
|
||||||
|
CFLAGS_save=$CFLAGS
|
||||||
|
LIBS_save=$LIBS
|
||||||
|
if test "x$ffmpeg_source" != "x"; then
|
||||||
|
dnl uninstalled FFmpeg copy
|
||||||
|
AC_MSG_NOTICE([Looking for FFmpeg source in $ffmpeg_source])
|
||||||
|
CFLAGS="-I$ffmpeg_source/libav -I$ffmpeg_source/libavcodec"
|
||||||
|
LIBS="-L$ffmpeg_source/libav -L$ffmpeg_source/libavcodec"
|
||||||
|
AC_DEFINE_UNQUOTED(HAVE_FFMPEG_UNINSTALLED, 1,
|
||||||
|
[defined if we compile against uninstalled FFmpeg])
|
||||||
|
FFMPEG_COMMON_INCLUDE="#include <common.h>"
|
||||||
|
else
|
||||||
|
FFMPEG_COMMON_INCLUDE="#include <ffmpeg/common.h>"
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl check for libavcodec
|
||||||
|
AC_CHECK_LIB(avcodec, avcodec_init, HAVE_FFMPEG=yes, HAVE_FFMPEG=no)
|
||||||
|
|
||||||
|
dnl check for avcodec.h and avformat.h
|
||||||
|
if test "x$ffmpeg_source" != "x"; then
|
||||||
|
dnl uninstalled
|
||||||
|
AC_CHECK_HEADER(avcodec.h, , HAVE_FFMPEG=no, [/* only compile */])
|
||||||
|
AC_CHECK_HEADER(avformat.h, , HAVE_FFMPEG=no, [/* only compile */])
|
||||||
|
else
|
||||||
|
AC_CHECK_HEADER(ffmpeg/avcodec.h, , HAVE_FFMPEG=no)
|
||||||
|
AC_CHECK_HEADER(ffmpeg/avformat.h, , HAVE_FFMPEG=no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl now check if it's sufficiently new
|
||||||
|
|
||||||
|
AC_LANG_SAVE()
|
||||||
|
AC_LANG_C()
|
||||||
|
|
||||||
|
dnl FIXME: we use strcmp, which we know is going to break if ffmpeg ever uses
|
||||||
|
dnl two digits for any of their version numbers. It makes the test so much
|
||||||
|
dnl easier though so let's ignore that
|
||||||
|
AC_TRY_RUN([
|
||||||
|
$FFMPEG_COMMON_INCLUDE
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
if (strcmp (FFMPEG_VERSION, "$1") == -1)
|
||||||
|
{
|
||||||
|
fprintf (stderr,
|
||||||
|
"ERROR: your copy of ffmpeg is too old (%s)\n", FFMPEG_VERSION);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
], , HAVE_FFMPEG=no)
|
||||||
|
|
||||||
|
dnl now do the actual "do we have it ?" test
|
||||||
|
if test "x$HAVE_FFMPEG" = "xyes"; then
|
||||||
|
FFMPEG_LIBS="$LIBS -lavcodec -lavformat"
|
||||||
|
FFMPEG_CFLAGS="$CFLAGS"
|
||||||
|
AC_MSG_NOTICE(we have ffmpeg)
|
||||||
|
dnl execute what we have to because it's found
|
||||||
|
ifelse([$2], , :, [$2])
|
||||||
|
else
|
||||||
|
FFMPEG_LIBS=""
|
||||||
|
FFMPEG_CFLAGS=""
|
||||||
|
dnl execute what we have to because it's not found
|
||||||
|
ifelse([$3], , :, [$3])
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl make variables available
|
||||||
|
AC_SUBST(FFMPEG_LIBS)
|
||||||
|
AC_SUBST(FFMPEG_CFLAGS)
|
||||||
|
AC_SUBST(HAVE_FFMPEG)
|
||||||
|
AC_LANG_RESTORE()
|
||||||
|
CFLAGS=$CFLAGS_save
|
||||||
|
LIBS=$LIBS_save
|
||||||
|
])
|
|
@ -69,13 +69,13 @@ sub playfile($$)
|
||||||
if ($cfg{VISUALIZER} && ($pipe = $pipes{"vis." . $ext}))
|
if ($cfg{VISUALIZER} && ($pipe = $pipes{"vis." . $ext}))
|
||||||
{
|
{
|
||||||
$command = "gst-launch filesrc location=\"$file\" ! $pipe";
|
$command = "gst-launch filesrc location=\"$file\" ! $pipe";
|
||||||
print "Running $command\n";
|
print "Running command-line\n$command\n\n";
|
||||||
system ("PATH=\$PATH:".$cfg{CVS_PATH}."/gstreamer/tools $command");
|
system ("PATH=\$PATH:".$cfg{CVS_PATH}."/gstreamer/tools $command");
|
||||||
}
|
}
|
||||||
elsif ($pipe = $pipes{$ext})
|
elsif ($pipe = $pipes{$ext})
|
||||||
{
|
{
|
||||||
$command = "gst-launch filesrc location=\"$file\" ! $pipe";
|
$command = "gst-launch filesrc location=\"$file\" ! $pipe";
|
||||||
print "Running $command\n";
|
print "Running command-line\n$command\n\n";
|
||||||
system ("PATH=\$PATH:".$cfg{CVS_PATH}."/gstreamer/tools $command");
|
system ("PATH=\$PATH:".$cfg{CVS_PATH}."/gstreamer/tools $command");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue