+2004-07-07 Thomas Vander Stichele <thomas (at) apestaart (dot) org>
+
+ * ext/ffmpeg/gstffmpeg.c: (gst_ffmpeg_log_callback), (plugin_init):
+ * ext/ffmpeg/gstffmpegcodecmap.h:
+ * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_chain):
+ hook up our debug handler to FFmpeg's.
+ warn about getting negative have_data
+
2004-07-04 Thomas Vander Stichele <thomas at apestaart dot org>
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_base_init):
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_base_init):
- bring category order in line with others
+ bring category order in line with others
2004-06-13 Ronald Bultje <rbultje@ronald.bitfreak.net>
#include <ffmpeg/avformat.h>
#endif
+GST_DEBUG_CATEGORY_STATIC (ffmpeg_debug);
+#define GST_CAT_DEFAULT ffmpeg_debug
+
extern gboolean gst_ffmpegdemux_register (GstPlugin * plugin);
extern gboolean gst_ffmpegdec_register (GstPlugin * plugin);
extern gboolean gst_ffmpegenc_register (GstPlugin * plugin);
extern URLProtocol gstreamer_protocol;
+static void
+gst_ffmpeg_log_callback (void * ptr, int level, const char * fmt, va_list vl)
+{
+ GstDebugLevel gst_level;
+
+ switch (level) {
+ case AV_LOG_QUIET:
+ gst_level = GST_LEVEL_NONE;
+ break;
+ case AV_LOG_ERROR:
+ gst_level = GST_LEVEL_ERROR;
+ break;
+ case AV_LOG_INFO:
+ gst_level = GST_LEVEL_INFO;
+ break;
+ case AV_LOG_DEBUG:
+ gst_level = GST_LEVEL_DEBUG;
+ break;
+ default:
+ gst_level = GST_LEVEL_INFO;
+ break;
+ }
+
+ gst_debug_log_valist (ffmpeg_debug, gst_level, "", "", 0, NULL, fmt, vl);
+}
+
static gboolean
plugin_init (GstPlugin * plugin)
{
if (!gst_library_load ("gstbytestream"))
return FALSE;
+ GST_DEBUG_CATEGORY_INIT (ffmpeg_debug, "ffmpeg", 0, "FFmpeg elements");
+ av_log_set_callback (gst_ffmpeg_log_callback);
av_register_all ();
gst_ffmpegenc_register (plugin);
"All FFMPEG codecs",
plugin_init,
FFMPEG_VERSION, "LGPL", "FFMpeg", "http://ffmpeg.sourceforge.net/")
+
+
GstCaps *
gst_ffmpeg_formatid_to_caps (const gchar *format_name);
+
+/* FFMPEG debugging function; maybe move to a different file */
+GST_DEBUG_CATEGORY_EXTERN (ffmpeg_debug);
+static void
+gst_ffmpeg_log_callback (void * ptr, int level, const char * fmt, va_list vl);
+
#endif /* __GST_FFMPEG_CODECMAP_H__ */
+
outbuf = gst_buffer_new_and_alloc (AVCODEC_MAX_AUDIO_FRAME_SIZE);
len = avcodec_decode_audio (ffmpegdec->context,
(int16_t *) GST_BUFFER_DATA (outbuf), &have_data, data, size);
+ if (have_data < 0)
+ GST_WARNING_OBJECT (ffmpegdec, "len %d, have_data: %d < 0 !",
+ len, have_data);
if (have_data) {
GST_BUFFER_SIZE (outbuf) = have_data;