gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r6043 - Extractor/src/plugins


From: gnunet
Subject: [GNUnet-SVN] r6043 - Extractor/src/plugins
Date: Wed, 26 Dec 2007 21:26:08 -0700 (MST)

Author: grothoff
Date: 2007-12-26 21:26:07 -0700 (Wed, 26 Dec 2007)
New Revision: 6043

Modified:
   Extractor/src/plugins/flacextractor.c
   Extractor/src/plugins/mimeextractor.c
Log:
fixes

Modified: Extractor/src/plugins/flacextractor.c
===================================================================
--- Extractor/src/plugins/flacextractor.c       2007-12-27 02:53:03 UTC (rev 
6042)
+++ Extractor/src/plugins/flacextractor.c       2007-12-27 04:26:07 UTC (rev 
6043)
@@ -68,7 +68,7 @@
   memcpy(buffer,
         &ctx->data[ctx->pos],
         *bytes);
-  ctx->pos += *bytes;
+  ctx->pos += *bytes;  
   return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
 }
 
@@ -113,7 +113,7 @@
 static FLAC__StreamDecoderWriteStatus
 flac_write(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const 
FLAC__int32 *const buffer[], void *client_data) 
 {
-  return FLAC__STREAM_DECODER_WRITE_STATUS_ABORT;
+  return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
 }
 
 typedef struct
@@ -173,6 +173,8 @@
 {
   struct Context * ctx = client_data;
   
+  fprintf(stderr,
+         "Meta!\n");
   switch (metadata->type)
     {
     case FLAC__METADATA_TYPE_STREAMINFO:
@@ -249,9 +251,11 @@
 static void
 flac_error(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus 
status, void *client_data) 
 {
+  fprintf(stderr,
+         "Got error: %u\n", status);
 }
 
-/* mimetype = application/flac */
+/* mimetype = audio/flac */
 struct EXTRACTOR_Keywords *
 libextractor_flac_extract (const char *filename,
                           const char *data,
@@ -269,38 +273,58 @@
   decoder = FLAC__stream_decoder_new();
   if (NULL == decoder)
     return prev;
-  FLAC__stream_decoder_set_metadata_respond_all(decoder);
+  FLAC__stream_decoder_set_md5_checking(decoder, false);
+  FLAC__stream_decoder_set_metadata_ignore_all(decoder);
+  if (false == FLAC__stream_decoder_set_metadata_respond_all(decoder))
+    {
+      FLAC__stream_decoder_delete(decoder);     
+      return le_cls.prev;
+    }
   le_cls.prev = prev;
+  le_cls.prev = prev;
   le_cls.size = size;
   le_cls.data = data;
   le_cls.pos = 0;
-  FLAC__stream_decoder_init_ogg_stream(decoder,
-                                      &flac_read,
-                                      &flac_seek,
-                                      &flac_tell,
-                                      &flac_length,
-                                      &flac_eof,
-                                      &flac_write,
-                                      &flac_metadata,
-                                      &flac_error,
-                                      &le_cls);
-  FLAC__stream_decoder_process_until_end_of_metadata(decoder);
-  switch (FLAC__stream_decoder_get_state(decoder))
+  if (FLAC__STREAM_DECODER_INIT_STATUS_OK !=
+      FLAC__stream_decoder_init_ogg_stream(decoder,
+                                              &flac_read,
+                                              &flac_seek,
+                                              &flac_tell,
+                                              &flac_length,
+                                              &flac_eof,
+                                              &flac_write,
+                                              &flac_metadata,
+                                              &flac_error,
+                                          &le_cls))
     {
-    case FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC:
-    case FLAC__STREAM_DECODER_SEARCH_FOR_METADATA:
-    case FLAC__STREAM_DECODER_READ_METADATA:
-    case FLAC__STREAM_DECODER_END_OF_STREAM:
-    case FLAC__STREAM_DECODER_READ_FRAME:
-      le_cls.prev = addKeyword(EXTRACTOR_MIMETYPE,
-                              strdup("audio/flac"),
-                              le_cls.prev);
-      break;
-    default:
-      /* not so sure... */
-      break;
+      FLAC__stream_decoder_delete(decoder);     
+      return le_cls.prev;
     }
-
+  if (FLAC__stream_decoder_get_state(decoder) != 
FLAC__STREAM_DECODER_SEARCH_FOR_METADATA)
+    {
+      FLAC__stream_decoder_delete(decoder);     
+      return le_cls.prev;
+    }
+  if (! FLAC__stream_decoder_process_until_end_of_metadata(decoder))
+    {
+      FLAC__stream_decoder_delete(decoder);     
+      return le_cls.prev;
+    }
+  switch (FLAC__stream_decoder_get_state(decoder))
+   {
+   case FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC:
+   case FLAC__STREAM_DECODER_READ_METADATA:
+   case FLAC__STREAM_DECODER_END_OF_STREAM:
+   case FLAC__STREAM_DECODER_READ_FRAME:
+     le_cls.prev = addKeyword(EXTRACTOR_MIMETYPE,
+                             strdup("audio/flac"),
+                             le_cls.prev);
+     break;
+   default:
+     /* not so sure... */
+     break;
+   }
+  FLAC__stream_decoder_finish (decoder); 
   FLAC__stream_decoder_delete(decoder);
   return le_cls.prev;
 }

Modified: Extractor/src/plugins/mimeextractor.c
===================================================================
--- Extractor/src/plugins/mimeextractor.c       2007-12-27 02:53:03 UTC (rev 
6042)
+++ Extractor/src/plugins/mimeextractor.c       2007-12-27 04:26:07 UTC (rev 
6043)
@@ -213,6 +213,7 @@
   {"P6", 2, "image/x-portable-pixmap", DEFAULT},
   {"P7", 2, "image/x-portable-anymap", DEFAULT},
   {"BM", 2, "image/x-bmp", DEFAULT},
+  {"fLaC", 4, "audio/flac", DEFAULT},
   {"\x89PNG", 4, "image/x-png", DEFAULT},
   {"id=ImageMagick", 14, "application/x-imagemagick-image", DEFAULT},
   {"hsi1", 4, "image/x-jpeg-proprietary", DEFAULT},





reply via email to

[Prev in Thread] Current Thread [Next in Thread]