changeset 1919:20e4d4511fd2 libavcodec

remove spyware from ogg*.c fix vorbis in ogg decoding
author michael
date Sun, 04 Apr 2004 01:10:50 +0000
parents ea20f38b8d57
children 9b87ed973dda
files oggvorbis.c
diffstat 1 files changed, 21 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/oggvorbis.c	Sat Apr 03 01:55:24 2004 +0000
+++ b/oggvorbis.c	Sun Apr 04 01:10:50 2004 +0000
@@ -4,8 +4,6 @@
  * @author Mark Hills <mark@pogo.org.uk>
  */
 
-#include <time.h>
-
 #include <vorbis/vorbisenc.h>
 
 #include "avcodec.h"
@@ -185,22 +183,36 @@
     OggVorbisContext *context = avccontext->priv_data ;
     ogg_packet *op = (ogg_packet*)buf ;
     float **pcm ;
-    int samples, total_samples, total_bytes ;
+    int samples, total_samples, total_bytes,i;
  
+    if(!buf_size){
+    //FIXME flush
+        *data_size=0;
+        return 0;
+    }
+    
     op->packet = (char*)op + sizeof(ogg_packet) ; /* correct data pointer */
 
+//    av_log(avccontext, AV_LOG_DEBUG, "%d %d %d %lld %lld %d %d\n", op->bytes, op->b_o_s, op->e_o_s, op->granulepos, op->packetno, buf_size, context->vi.rate);
+    
+/*    for(i=0; i<op->bytes; i++)
+      av_log(avccontext, AV_LOG_DEBUG, "%02X ", op->packet[i]);
+    av_log(avccontext, AV_LOG_DEBUG, "\n");*/
+//    op->b_o_s= op->packetno == 0;
     if(op->packetno < 3) {
-	vorbis_synthesis_headerin(&context->vi, &context->vc, op) ;
+	if(vorbis_synthesis_headerin(&context->vi, &context->vc, op)<0){
+            av_log(avccontext, AV_LOG_ERROR, "%lld. vorbis header damaged\n", op->packetno+1);
+            return -1;
+        }
+	avccontext->channels = context->vi.channels ;
+	avccontext->sample_rate = context->vi.rate ;
 	return buf_size ;
     }
 
     if(op->packetno == 3) {
-	av_log(avccontext, AV_LOG_ERROR, "vorbis_decode: %d channel, %ldHz, encoder `%s'\n",
-		context->vi.channels, context->vi.rate, context->vc.vendor);
+//	av_log(avccontext, AV_LOG_INFO, "vorbis_decode: %d channel, %ldHz, encoder `%s'\n",
+//		context->vi.channels, context->vi.rate, context->vc.vendor);
 
-	avccontext->channels = context->vi.channels ;
-	avccontext->sample_rate = context->vi.rate ;
-	
 	vorbis_synthesis_init(&context->vd, &context->vi) ;
 	vorbis_block_init(&context->vd, &context->vb); 
     }