Changeset 15
- Timestamp:
- 05/04/07 12:41:46 (2 years ago)
- Files:
-
- trunk/pihlaja/src/dsss.conf (modified) (2 diffs)
- trunk/pihlaja/src/pihlaja/canvas/canvas.d (modified) (2 diffs)
- trunk/pihlaja/src/pihlaja/core/discoverer.d (modified) (54 diffs)
- trunk/pihlaja/src/pihlaja/core/edit.d (modified) (2 diffs)
- trunk/pihlaja/src/pihlaja/core/material.d (modified) (2 diffs)
- trunk/pihlaja/src/pihlaja/core/movie.d (modified) (14 diffs)
- trunk/pihlaja/src/pihlaja/core/project.d (modified) (10 diffs)
- trunk/pihlaja/src/pihlaja/core/scene.d (modified) (11 diffs)
- trunk/pihlaja/src/pihlaja/core/scenechain.d (modified) (7 diffs)
- trunk/pihlaja/src/pihlaja/ui/materialstreeview.d (modified) (17 diffs)
- trunk/pihlaja/src/pihlaja/ui/projectwindow.d (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/pihlaja/src/dsss.conf
r14 r15 16 16 #debug symbols: 17 17 18 buildflags += -debug=2518 #buildflags += -debug=25 19 19 buildflags += -debug=gstreamer 20 20 buildflags += -debug=gstreamerbus … … 27 27 buildflags += -debug=LinkableScene 28 28 buildflags += -debug=SceneChain 29 buildflags += -debug=Track29 #buildflags += -debug=Track 30 30 #buildflags += -debug=MaterialsTreeview 31 31 #buildflags += -debug=Render 32 32 #buildflags += -debug=Invalidation 33 33 #buildflags += -debug=AdjustTree 34 buildflags += -debug=RTree34 #buildflags += -debug=RTree 35 35 #buildflags += -debug=RTreeError 36 36 #buildflags += -debug=RTreeDebugCheck 37 37 #buildflags += -debug=RTreeTraverse 38 buildflags += -debug=RTreeNearestNeighbour38 #buildflags += -debug=RTreeNearestNeighbour 39 39 #buildflags += -debug=FindLeaf 40 40 #buildflags += -debug=List 41 41 #buildflags += -debug=ClosestCutFit 42 42 #buildflags += -debug=CheckOverlapping 43 #buildflags += -debug=Discoverer43 buildflags += -debug=Discoverer 44 44 #buildflags += -debug=EditGroup 45 45 #buildflags += -debug=IterateWithNearestNeighbour trunk/pihlaja/src/pihlaja/canvas/canvas.d
r14 r15 200 200 } 201 201 } 202 203 /* 204 * This is used to draw stuff that the 205 * Movie wants to draw. So overload this 206 * to draw some stuff in Movie. 207 */ 208 void render( Cairo cr ) 209 { 210 211 } 202 212 203 213 int onExpose(GdkEventExpose* event, Widget widget) … … 367 377 lastHitLinkableScene.renderLinkingRight( cr, crx(mouseCX), cry(mouseCY) ); 368 378 } 369 379 380 381 render( cr ); 382 383 370 384 cr.restore(); 371 385 trunk/pihlaja/src/pihlaja/core/discoverer.d
r14 r15 137 137 void addFile( char[] filename ) 138 138 { 139 debug(Discoverer) Stdout("Discoverer.addFile() START. file: " , filename );140 debug(Discoverer) scope(exit) Stdout("Discoverer.addFile() END. file: " , filename );139 debug(Discoverer) Stdout("Discoverer.addFile() START. file: ")(filename).newline; 140 debug(Discoverer) scope(exit) Stdout("Discoverer.addFile() END. file: ")(filename).newline; 141 141 //queue a filename to be discovered 142 142 //gst.info("filename: %s" % filename) … … 156 156 { 157 157 //gst.warning 158 debug(Discoverer) Stdout("Discoverer.startAnalysis() called when still working!") ;158 debug(Discoverer) Stdout("Discoverer.startAnalysis() called when still working!").newline; 159 159 return false; 160 160 } … … 163 163 { 164 164 //gst.warning 165 debug(Discoverer) Stdout("Nothing to analyze!!") ;165 debug(Discoverer) Stdout("Nothing to analyze!!").newline; 166 166 return false; 167 167 } … … 169 169 working = true; 170 170 171 debug(Discoverer) Stdout("Discoverer.startAnalysis() Creating idle.") ;171 debug(Discoverer) Stdout("Discoverer.startAnalysis() Creating idle.").newline; 172 172 //gobject.idle_add( &analyze ); 173 173 m_idle = new Idle( &analyze ); 174 174 175 /*if( m_mainloop !is null ) 175 176 { … … 187 188 protected bool finishAnalysis() 188 189 { 189 debug(Discoverer) Stdout("Discoverer.finishAnalysis() START. " , current );190 debug(Discoverer) Stdout("Discoverer.finishAnalysis() START. ")( current ).newline; 190 191 debug(Discoverer) scope(exit) Stdout("Discoverer.finishAnalysis() END.").newline; 191 192 //Call this method when the current file is analyzed … … 194 195 if( analyzing == false ) 195 196 { 196 debug(Discoverer) Stdout("Discoverer.finishAnalysis() Called when not analyzing!!") ;//gst.warning197 debug(Discoverer) Stdout("Discoverer.finishAnalysis() Called when not analyzing!!").newline;//gst.warning 197 198 return false; 198 199 } 199 200 200 /*if( finishTimeout !is null )201 { 202 Stdout("Discoverer.finishAnalysis() Stopping and deleting finishTimeout.") ;201 if( finishTimeout !is null ) 202 { 203 Stdout("Discoverer.finishAnalysis() Stopping and deleting finishTimeout.").newline; 203 204 finishTimeout.stop(); 204 205 //finishTimeout = null; 205 delete finishTimeout;206 } */206 //delete finishTimeout; 207 } 207 208 208 209 //Source.remove( timeoutid ); … … 215 216 thisdone = true; 216 217 217 debug(Discoverer) Stdout("Discoverer.finishAnalysis() Cleaning up after finished analyzing" , current );//gst.info218 debug(Discoverer) Stdout("Discoverer.finishAnalysis() Cleaning up after finished analyzing")( current ).newline;//gst.info 218 219 219 220 //finish current, cleanup … … 234 235 dbin.disconnectOnPadAdded(); 235 236 236 debug(Discoverer) Stdout("before setting pipeline to NULL.") ;//gst.info237 debug(Discoverer) Stdout("before setting pipeline to NULL.").newline;//gst.info 237 238 238 239 //res = … … 241 242 if( pipeline.setState( GstState.NULL ) == GstStateChangeReturn.FAILURE ) 242 243 { 243 debug(Discoverer) Stdout("Discoverer.finishAnalysis() Pipeline didn't want to go to NULL. Somethings wrong.") ;244 debug(Discoverer) Stdout("Discoverer.finishAnalysis() Pipeline didn't want to go to NULL. Somethings wrong.").newline; 244 245 } 245 246 } 246 247 //gst.info("after setting to NULL : %s" % res) 247 248 248 debug(Discoverer) Stdout("setting fakesink to NULL.") ;249 debug(Discoverer) Stdout("setting fakesink to NULL.").newline; 249 250 if( fakesink !is null ) 250 251 fakesink.setState( GstState.NULL ); … … 252 253 if( currentVideoMaterial !is null ) 253 254 { 254 debug(Discoverer) Stdout("Here's where we set the mediatags for video.") ;255 debug(Discoverer) Stdout("Here's where we set the mediatags for video.").newline; 255 256 ///////BACK currentVideoMaterial.addMediaTags( currentTags ); 256 257 257 258 //emit('finished-analyzing', currentVideoMaterial); 258 259 } 260 else Stdout("\nNo video material found in ")( current ).newline; 259 261 260 262 if( currentAudioMaterial !is null ) 261 263 { 262 debug(Discoverer) Stdout("Here's where we set the mediatags for audio.") ;264 debug(Discoverer) Stdout("Here's where we set the mediatags for audio.").newline; 263 265 ///////BACK currentAudioMaterial.addMediaTags( currentTags ); 264 266 265 267 //emit('finished-analyzing', currentAudioMaterial); 266 268 } 267 268 debug(Discoverer) Stdout("Set all to their initial state."); 269 else Stdout("\nNo audio material found in ")( current ).newline; 270 271 //This will create the materialMovie in project, if the 272 //material only had one video or audio part. 273 //And it will also set the last_material to null, 274 //so we don't get duplicate materials the next time 275 //we use discoverer. 276 project.discovererAddMaterialMovie( null ); 277 278 279 280 debug(Discoverer) Stdout("Set all to their initial state.").newline; 269 281 //Set all to their initial state: 270 282 //currentTags = []; … … 291 303 working = false; 292 304 //gst.info 293 debug(Discoverer) Stdout("\n!!!!!!!!\nDiscoverer is now ready again. All materials have been processed.\n!!!!!!!!\n") ;305 debug(Discoverer) Stdout("\n!!!!!!!!\nDiscoverer is now ready again. All materials have been processed.\n!!!!!!!!\n").newline; 294 306 //emit("ready") 295 307 } … … 302 314 protected bool timeoutCb() 303 315 { 304 debug(Discoverer) Stdout("Discoverer.timeoutCb() START. " , current );316 debug(Discoverer) Stdout("Discoverer.timeoutCb() START. ")( current ).newline; 305 317 debug(Discoverer) scope(exit) Stdout("Discoverer.timeoutCb() END.").newline; 306 Stdout("timeoutCb.");307 318 //gobject.idle_add(_finishAnalysis); 308 319 309 320 if( analyzing == false ) 310 321 { 322 Stdout("timeoutCb() analyzing is false. returning false.").newline; 311 323 return false; 312 324 } 325 Stdout("timeoutCb() analyzing is true. adding idle listener for finishAnalysis.").newline; 313 326 314 327 //m_mainloop.idleAdd( &finishAnalysis ); … … 323 336 debug(Discoverer) scope(exit) Stdout("Discoverer.analyze() END.").newline; 324 337 325 debug(Discoverer) Stdout("Sets up a pipeline to analyze the given uri ");338 debug(Discoverer) Stdout("Sets up a pipeline to analyze the given uri.").newline; 326 339 327 340 analyzing = true; … … 331 344 current = queue.head(); 332 345 queue.removeHead();//Why can't there be a popStart() kind of method for LinkSeq? 333 debug(Discoverer) Stdout("Analyzing " , current);346 debug(Discoverer) Stdout("Analyzing ")( current).newline; 334 347 currentVideoMaterial = null; 335 348 currentAudioMaterial = null; 336 349 337 350 //setup graph and start analyzing 338 debug(Discoverer) Stdout("creating pipeline for Discoverer.") ;351 debug(Discoverer) Stdout("creating pipeline for Discoverer.").newline; 339 352 pipeline = new Pipeline( "Discoverer-" ~ current ); 340 353 341 debug(Discoverer) Stdout("Creating filesource.") ;354 debug(Discoverer) Stdout("Creating filesource.").newline; 342 355 //source = gst.element_make_from_uri(gst.URI_SRC, current, "src-%s" % current); 343 356 source = ElementFactory.make( "filesrc", "src-" ~ current ); … … 346 359 { 347 360 //gst.warning 348 debug(Discoverer) Stdout( "This is not a media file : " , current );361 debug(Discoverer) Stdout( "This is not a media file : ")( current ).newline; 349 362 //emit("not_media_file", current, "Couldn't construct pipeline.") 350 363 //gobject.idle_add(_finishAnalysis) … … 355 368 } 356 369 357 debug(Discoverer) Stdout("Setting location to " , current );370 debug(Discoverer) Stdout("Setting location to ")( current ).newline; 358 371 source.location( current ); 359 372 360 debug(Discoverer) Stdout("Creating decodebin2.") ;373 debug(Discoverer) Stdout("Creating decodebin2.").newline; 361 374 //if os.getenv("USE_DECODEBIN2"): 362 dbin = ElementFactory.make("decodebin ", "dbin");375 dbin = ElementFactory.make("decodebin2", "dbin"); 363 376 //else: 364 377 // dbin = gst.element_factory_make("decodebin", "dbin") 365 378 366 debug(Discoverer) Stdout("Adding onPadAdded signalhandlers.") ;379 debug(Discoverer) Stdout("Adding onPadAdded signalhandlers.").newline; 367 380 //signalsid.append((dbin, dbin.connect("new-decoded-pad", _newDecodedPadCb))) 368 381 //signalsid.append((dbin, dbin.connect("unknown-type", _unknownTypeCb))) … … 378 391 pipeline.add( dbin ); 379 392 source.link(dbin); 380 debug(Discoverer) Stdout("analysis pipeline created") ;393 debug(Discoverer) Stdout("analysis pipeline created").newline; 381 394 382 395 //adding fakesink to make pipeline not terminate state before receiving no-more-pads … … 384 397 pipeline.add(fakesink); 385 398 386 debug(Discoverer) Stdout("Adding busMessageCb.") ;399 debug(Discoverer) Stdout("Adding busMessageCb.").newline; 387 400 //bus = pipeline.get_bus() 388 401 //signalsid.append((bus, bus.connect("message", _busMessageCb))) … … 390 403 busWatchId = pipeline.getBus().addWatch( &busMessageCb ); 391 404 392 debug(Discoverer) Stdout("setting pipeline to PAUSED") ;405 debug(Discoverer) Stdout("setting pipeline to PAUSED").newline; 393 406 394 407 if( pipeline.setState(GstState.PAUSED) == GstStateChangeReturn.FAILURE ) 395 408 { 396 409 //emit("not_media_file", current, "Pipeline didn't want to go to PAUSED"); 397 debug(Discoverer) Stdout("Not media file. Pipeline didn't want to go to PAUSED") ;410 debug(Discoverer) Stdout("Not media file. Pipeline didn't want to go to PAUSED").newline; 398 411 //gobject.idle_add(_finishAnalysis) 399 412 //m_mainloop.idleAdd( &finishAnalysis ); … … 452 465 bool busMessageCb( Message message ) 453 466 { 454 //debug(Discoverer) Stdout("Discoverer.busMessageCb() START. ", current );455 //debug(Discoverer) scope(exit) Stdout("Discoverer.busMessageCb() END. ");467 debug(gstreamerbus) debug(Discoverer) Stdout("Discoverer.busMessageCb() START. ")( current ).newline; 468 debug(gstreamerbus) debug(Discoverer) scope(exit) Stdout("Discoverer.busMessageCb() END. ").newline; 456 469 457 470 if( thisdone || message is null || pipeline is null ) 458 471 { 459 debug(Discoverer) Stdout("thisdone or message null or pipeline null.") ;472 debug(Discoverer) Stdout("thisdone or message null or pipeline null.").newline; 460 473 return true; 461 474 } 462 //gst.log("%s:%s" % (message.src.get_name(), message.type)) 463 if( message.type == GstMessageType.STATE_CHANGED ) 464 { 465 debug(Discoverer) Stdout("message.type == STATE_CHANGED."); 475 476 switch( message.type ) 477 { 478 case GstMessageType.UNKNOWN: 479 debug(gstreamerbus) Stdout("PipelinePlayer Unknown message type.").newline; 480 break; 481 case GstMessageType.EOS: 482 debug(gstreamerbus) Stdout("Discoverer End-of-stream.").newline; 483 484 thisdone = true; 485 //filename = "/tmp/" + currentVideoMaterial.name.encode('base64').replace('\n','') + ".png"; 486 //if os.path.isfile(filename): 487 //currentVideoMaterial.setThumbnail(filename) 488 //gobject.idle_add(_finishAnalysis) 489 //m_mainloop.idleAdd( &finishAnalysis ); 490 m_idle.addListener( &finishAnalysis ); 491 //finishAnalysis(); 492 break; 493 494 case GstMessageType.ERROR: 495 { 496 gchar *dbug; 497 GError *err; 498 message.parseError(&err, &dbug); 499 //g_free (dbug); 500 //debug(gstreamer) 501 Stdout("PipelinePlayer Error: ")(err.message).newline; 502 //g_error_free (err); 503 //GtkD.mainQuit(); 504 break; 505 } 506 507 case GstMessageType.WARNING: 508 debug(gstreamerbus) Stdout("Bus message: Warning.").newline; 509 break; 510 511 case GstMessageType.INFO: 512 debug(gstreamerbus) Stdout("Bus message: Info.").newline; 513 break; 514 515 case GstMessageType.TAG: 516 //debug(gstreamerbus) Stdout("Bus message: Tag.").newline; 517 debug(Discoverer) Stdout("Discoverer.busMessageCb() Got tag message for file ")( current ).newline; 518 //gst.debug("Got tags %s" % message.structure.to_string()) 519 //currentTags.append(message.parse_tag()); 520 currentTags = message.parseTag(); 521 break; 522 523 case GstMessageType.BUFFERING: 524 debug(gstreamerbus) Stdout("Bus message: Buffering.").newline; 525 break; 526 527 case GstMessageType.STATE_CHANGED: 528 debug(gstreamerbus) Stdout("Bus message: State changed.").newline; 529 466 530 //Pipeline blom = cast(Pipeline) message.src(); 467 531 … … 476 540 if( prev == GstState.READY && anew == GstState.PAUSED && pending == GstState.VOID_PENDING ) 477 541 { 478 debug(Discoverer) Stdout("Pipeline is prerolled.") ;542 debug(Discoverer) Stdout("Pipeline is prerolled.").newline; 479 543 prerolled = true; 480 544 // Let's get the information from all the pads … … 483 547 if( currentVideoMaterial !is null && currentVideoMaterial.materialType() == MaterialType.VIDEO )//currentVideoMaterial.is_video ) 484 548 { 485 debug(Discoverer) Stdout("MaterialType == VIDEO.") ;549 debug(Discoverer) Stdout("MaterialType == VIDEO.").newline; 486 550 //gst.log("pipeline has gone to PAUSED, now pushing to PLAYING") 487 551 if( pipeline.setState(GstState.PLAYING) == GstStateChangeReturn.FAILURE ) 488 552 { 489 553 //emit("not_media_file", current, "Pipeline didn't want to go to PLAYING") 490 debug(Discoverer) Stdout("Pipeline didn't want to go to playing") ;554 debug(Discoverer) Stdout("Pipeline didn't want to go to playing").newline; 491 555 //gobject.idle_add(_finishAnalysis) 492 556 //m_mainloop.idleAdd( &finishAnalysis ); … … 497 561 else if( nomorepads ) 498 562 { 499 debug(Discoverer) Stdout("finished analyzing") ;563 debug(Discoverer) Stdout("finished analyzing").newline; 500 564 //gobject.idle_add(_finishAnalysis) 501 565 //m_mainloop.idleAdd( &finishAnalysis ); … … 505 569 else 506 570 { 507 debug(Discoverer) Stdout("got prerolled but haven't got all pads yet") ;//gst.warning571 debug(Discoverer) Stdout("got prerolled but haven't got all pads yet").newline;//gst.warning 508 572 } 509 573 } 510 574 //} 511 575 //else Stdout("message.src != pipeline. blaah..."); 576 577 break; 578 579 case GstMessageType.STATE_DIRTY: 580 debug(gstreamerbus) Stdout("Bus message: State dirty.").newline; 581 break; 582 583 case GstMessageType.STEP_DONE: 584 debug(gstreamerbus) Stdout("Bus message: Step done.").newline; 585 break; 586 587 case GstMessageType.CLOCK_PROVIDE: 588 debug(gstreamerbus) Stdout("Bus message: CLOCK_PROVIDE.").newline; 589 break; 590 591 case GstMessageType.CLOCK_LOST: 592 debug(gstreamerbus) Stdout("Bus message: CLOCK_LOST.").newline; 593 break; 594 595 case GstMessageType.NEW_CLOCK: 596 debug(gstreamerbus) Stdout("Bus message: NEW_CLOCK.").newline; 597 break; 598 599 case GstMessageType.STRUCTURE_CHANGE: 600 debug(gstreamerbus) Stdout("Bus message: STRUCTURE_CHANGE.").newline; 601 break; 602 603 case GstMessageType.STREAM_STATUS: 604 debug(gstreamerbus) Stdout("Bus message: STREAM_STATUS.").newline; 605 break; 606 607 case GstMessageType.APPLICATION: 608 debug(gstreamerbus) Stdout("Bus message: APPLICATION.").newline; 609 break; 610 611 case GstMessageType.ELEMENT: 612 debug(gstreamerbus) Stdout("Bus message: ELEMENT.").newline; 613 //gst.debug("Element message %s" % message.structure.to_string()) 614 if( message.structure.getName() == "redirect" ) 615 { 616 debug(Discoverer) Stdout("We don't implement redirections currently, ignoring file").newline;//gst.warning 617 //finishAnalysis();//gobject.idle_add(_finishAnalysis) 618 //m_mainloop.idleAdd( &finishAnalysis ); 619 m_idle.addListener( &finishAnalysis ); 620 } 621 break; 622 623 case GstMessageType.SEGMENT_START: 624 debug(gstreamerbus) Stdout("Bus message: SEGMENT_START.").newline; 625 break; 626 627 case GstMessageType.SEGMENT_DONE: 628 debug(gstreamerbus) Stdout("Bus message: SEGMENT_DONE.").newline; 629 break; 630 631 case GstMessageType.DURATION: 632 debug(gstreamerbus) Stdout("Bus message: DURATION.").newline; 633 break; 634 635 default: 636 break; 637 } 638 /* 639 //gst.log("%s:%s" % (message.src.get_name(), message.type)) 640 if( message.type == GstMessageType.STATE_CHANGED ) 641 { 512 642 } 513 643 else if( message.type == GstMessageType.EOS ) 514 644 { 515 debug(Discoverer) Stdout("got EOS");//gst.log516 thisdone = true;517 //filename = "/tmp/" + currentVideoMaterial.name.encode('base64').replace('\n','') + ".png";518 //if os.path.isfile(filename):519 //currentVideoMaterial.setThumbnail(filename)520 //gobject.idle_add(_finishAnalysis)521 //m_mainloop.idleAdd( &finishAnalysis );522 m_idle.addListener( &finishAnalysis );523 //finishAnalysis();524 645 } 525 646 else if( message.type == GstMessageType.ERROR ) 526 647 { 527 debug(Discoverer) Stdout("Discoverer.busMessageCb() Got error message.");648 //debug(Discoverer) Stdout("Discoverer.busMessageCb() Got error message.").newline; 528 649 //error, detail = message.parse_error() 529 650 //handleError(error, detail, message.src) … … 531 652 else if( message.type == GstMessageType.WARNING ) 532 653 { 533 debug(Discoverer) Stdout("got a WARNING");//gst.warning654 //debug(Discoverer) Stdout("got a WARNING").newline;//gst.warning 534 655 } 535 656 else if( message.type == GstMessageType.ELEMENT ) 536 657 { 537 //gst.debug("Element message %s" % message.structure.to_string())538 if( message.structure.getName() == "redirect" )539 {540 debug(Discoverer) Stdout("We don't implement redirections currently, ignoring file");//gst.warning541 //finishAnalysis();//gobject.idle_add(_finishAnalysis)542 //m_mainloop.idleAdd( &finishAnalysis );543 m_idle.addListener( &finishAnalysis );544 }545 658 } 546 659 else if( message.type == GstMessageType.TAG ) 547 660 { 548 debug(Discoverer) Stdout("Discoverer.busMessageCb() Got tag message for file ", current );549 //gst.debug("Got tags %s" % message.structure.to_string())550 //currentTags.append(message.parse_tag());551 currentTags = message.parseTag();552 661 } 553 662 else … … 555 664 //gst.log("%s:%s" % ( message.type, message.src)) 556 665 557 } 666 }*/ 558 667 return true; 559 668 } … … 561 670 protected void getPadsInfo() 562 671 { 563 debug(Discoverer) Stdout("Discoverer.getPadsInfo() START. " , current );564 debug(Discoverer) scope(exit) Stdout("Discoverer.getPadsInfo() END. " , current );672 debug(Discoverer) Stdout("Discoverer.getPadsInfo() START. ")( current ).newline; 673 debug(Discoverer) scope(exit) Stdout("Discoverer.getPadsInfo() END. ")( current ).newline; 565 674 566 675 // iterate all src pads and check their information 567 debug(Discoverer) Stdout("Discoverer.getPadsInfo() Getting pads info on decodebin for file " , current );568 569 debug(Discoverer) Stdout("Discoverer.getPadsInfo() Iterating through decodebin pads:") ;676 debug(Discoverer) Stdout("Discoverer.getPadsInfo() Getting pads info on decodebin for file ")( current ).newline; 677 678 debug(Discoverer) Stdout("Discoverer.getPadsInfo() Iterating through decodebin pads:").newline; 570 679 571 680 if( dbin is null ) 572 681 { 573 debug(Discoverer) Stdout("Discoverer.getPadsInfo() dbin is null. returning.") ;682 debug(Discoverer) Stdout("Discoverer.getPadsInfo() dbin is null. returning.").newline; 574 683 return; 575 684 } … … 579 688 foreach(Pad pad; dbin.pads() ) //for pad in list(pipeline.get_by_name("dbin").pads()): 580 689 { 581 debug(Discoverer) Stdout("Going through dbin pads: " , pad.getName() );690 debug(Discoverer) Stdout("Going through dbin pads: ")( pad.getName() ).newline; 582 691 583 692 if( pad.getDirection() == GstPadDirection.SINK ) 584 693 { 585 debug(Discoverer) Stdout("Discoverer.getPadsInfo() This is a sink pad. Skipping it.") ;694 debug(Discoverer) Stdout("Discoverer.getPadsInfo() This is a sink pad. Skipping it.").newline; 586 695 continue; 587 696 } … … 592 701 if( caps is null ) 593 702 { 594 debug(Discoverer) Stdout("Discoverer.getPadsInfo() pads caps are null. Somethings wrong here. Skipping.") ;703 debug(Discoverer) Stdout("Discoverer.getPadsInfo() pads caps are null. Somethings wrong here. Skipping.").newline; 595 704 trytogetnegcaps = true; 596 705 } 597 706 else if( caps.getCapsStruct() is null ) 598 707 { 599 debug(Discoverer) Stdout("Discoverer.getPadsInfo() THIS IS YOUR WORST NIGHTMARE. caps.getCapsStruct is null.") ;708 debug(Discoverer) Stdout("Discoverer.getPadsInfo() THIS IS YOUR WORST NIGHTMARE. caps.getCapsStruct is null.").newline; 600 709 trytogetnegcaps = true; 601 710 } … … 603 712 if( caps.isFixed() == false || trytogetnegcaps == true ) 604 713 { 605 debug(Discoverer) Stdout("Caps are not fixed. Trying to get negotiated caps.") ;714 debug(Discoverer) Stdout("Caps are not fixed. Trying to get negotiated caps.").newline; 606 715 caps = pad.getNegotiatedCaps(); 607 716 } … … 609 718 if( caps is null )// || caps.getCapsStruct() is null ) 610 719 { 611 debug(Discoverer) Stdout("Discoverer.getPadsInfo() Negotiated pads caps are null. Somethings wrong here. Skipping.") ;720 debug(Discoverer) Stdout("Discoverer.getPadsInfo() Negotiated pads caps are null. Somethings wrong here. Skipping.").newline; 612 721 continue; 613 722 } 614 723 else if( caps.getCapsStruct() is null ) 615 724 { 616 debug(Discoverer) Stdout("Discoverer.getPadsInfo() HORRIBLE HORRIBLE. Negotiated pads caps.getCapsStruct are null. Somethings wrong here. Skipping.") ;725 debug(Discoverer) Stdout("Discoverer.getPadsInfo() HORRIBLE HORRIBLE. Negotiated pads caps.getCapsStruct are null. Somethings wrong here. Skipping.").newline; 617 726 continue; 618 727 } 619 728 620 debug(Discoverer) Stdout("testing pad " , pad.getName(), " : caps: ", caps.toString() );729 debug(Discoverer) Stdout("testing pad ")( pad.getName())( " : caps: ")( caps.toString() ).newline; 621 730 622 debug(Discoverer) Stdout("THIS IS IT: pad.duration: " , (cast(double)pad.queryDuration()) / (cast(double)FRAME_25) );731 debug(Discoverer) Stdout("THIS IS IT: pad.duration: ")( (cast(double)pad.queryDuration()) / (cast(double)FRAME_25) ).newline; 623 732 624 733 double pad_duration = (cast(double)pad.queryDuration()) / (cast(double)FRAME_25); … … 637 746 found_video = true; 638 747 currentVideoMaterial = new Material( current, MaterialType.VIDEO, pad_duration ); 639 project. addMaterial( currentVideoMaterial );748 project.discovererAddMaterialMovie( currentVideoMaterial ); 640 749 //TODO currentVideoMaterial.setAudioInfo(caps) 641 750 } … … 645 754 found_audio = true; 646 755 currentAudioMaterial = new Material( current, MaterialType.AUDIO, pad_duration ); 647 project. addMaterial( currentAudioMaterial );756 project.discovererAddMaterialMovie( currentAudioMaterial ); 648 757 //TODO currentVideoMaterial.setVideoInfo(caps) 649 758 } … … 656 765 // try: 657 766 //length, format = pad.query_duration(gst.FORMAT_TIME) 658 //Stdout("THIS IS IT: pad.duration: ", (cast(double)pad.queryDuration()) / (cast(double)FRAME_25) ) ;767 //Stdout("THIS IS IT: pad.duration: ", (cast(double)pad.queryDuration()) / (cast(double)FRAME_25) ).newline; 659 768 660 769 // except: … … 677 786 protected bool newVideoPadCb( Pad pad, Element element ) 678 787 { 679 debug(Discoverer) Stdout("Discoverer.newVideoPadCb() START. file: " , current );680 debug(Discoverer) scope(exit) Stdout("Discoverer.newVideoPadCb() END. file: " , current );788 debug(Discoverer) Stdout("Discoverer.newVideoPadCb() START. file: ")( current ).newline; 789 debug(Discoverer) scope(exit) Stdout("Discoverer.newVideoPadCb() END. file: ")( current ).newline; 681 790 //a new video pad was found 682 debug(Discoverer) Stdout("padname:" , pad.getName() );//gst.debug791 debug(Discoverer) Stdout("padname:")( pad.getName() ).newline;//gst.debug 683 792 684 793 if( currentVideoMaterial !is null ) … … 743 852 protected bool newAudioPadCb( Pad pad, Element unused_element ) 744 853 { 745 debug(Discoverer) Stdout("Discoverer.newAudioPadCb() START. file: " , current );746 debug(Discoverer) scope(exit) Stdout("Discoverer.newAudioPadCb() END. file: " , current );854 debug(Discoverer) Stdout("Discoverer.newAudioPadCb() START. file: ")( current ).newline; 855 debug(Discoverer) scope(exit) Stdout("Discoverer.newAudioPadCb() END. file: ")( current ).newline; 747 856 //a new audio pad was found 748 debug(Discoverer) Stdout("padname:", pad.getName() );//gst.debug 749 750 if( currentAudioMaterial !is null ) 751 { 857 debug(Discoverer) Stdout("padname:")( pad.getName() ).newline;//gst.debug 858 859 /*if( currentAudioMaterial !is null ) 860 { 861 debug(Discoverer) Stdout("Discoverer.newAudioPadCb() currentAudioMaterial !is null. Setting it's materialtype to AUDIO.").newline; 752 862 currentAudioMaterial.materialType( MaterialType.AUDIO ); 753 863 } … … 755 865 { 756 866 throw new Exception("Discoverer.newVideoPadCb() No currentVideoMaterial."); 757 } 867 }*/ 758 868 //currentAudioMaterial.setAudio(True) 759 869 … … 762 872 if( found_video ) 763 873 { 874 debug(Discoverer) Stdout("Discoverer.newAudioPadCb() Already found video, calling noMorePadsCb.").newline; 764 875 //gst.debug("already have video, calling no_more_pads") 765 876 noMorePadsCb(null); … … 768 879 if( pad.getCaps().isFixed() ) 769 880 { 881 debug(Discoverer) Stdout("Discoverer.newAudioPadCb() Fixed caps.").newline; 770 882 //gst.debug("fixed caps, setting info on factory") 771 883 //currentVideoMaterial.setAudioInfo(pad.get_caps()); … … 774 886 else 775 887 { 776 debug(Discoverer) Stdout(" non-fixed caps, adding queue and fakesink");//gst.debug888 debug(Discoverer) Stdout("Discoverer.newAudioPadCb() non-fixed caps, adding queue and fakesink").newline;//gst.debug 777 889 //// if not currentVideoMaterial.is_video: 778 890 // we need to add a fakesink … … 787 899 fakesink.setState( GstState.PAUSED ); 788 900 } 789 901 return false; 790 902 } 791 903 /* … … 799 911 protected void newDecodedPadCb( Pad pad, Element element )//, element, pad, is_last) 800 912 { 801 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() START. " , current );802 debug(Discoverer) scope(exit) Stdout("Discoverer.newDecodedPadCb() END. " , current );913 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() START. ")( current ).newline; 914 debug(Discoverer) scope(exit) Stdout("Discoverer.newDecodedPadCb() END. ")( current ).newline; 803 915 804 916 if( pad is null ) 805 917 { 806 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() pad is null. returning.") ;918 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() pad is null. returning.").newline; 807 919 return; 808 920 } 809 921 810 debug(Discoverer) Stdout("\nDiscoverer.newDecodedPadCb() DOES IT STILL WORK HERE: pad.duration: ", (cast(double)pad.queryDuration()) / (cast(double)FRAME_25) ); 922 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() pad.name: ")( pad.getName() ).newline; 923 924 debug(Discoverer) Stdout("\nDiscoverer.newDecodedPadCb() DOES IT STILL WORK HERE: pad.duration: ")( (cast(double)pad.queryDuration()) / (cast(double)FRAME_25) ).newline; 811 925 double pad_duration = (cast(double)pad.queryDuration()) / (cast(double)FRAME_25); 812 926 … … 815 929 if( pad.getDirection() == GstPadDirection.SINK ) 816 930 { 817 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() This is a sink pad. Skipping it.") ;931 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() This is a sink pad. Skipping it.").newline; 818 932 return; 819 933 } … … 824 938 if( caps is null ) 825 939 { 826 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() pads caps are null. Somethings wrong here. Skipping.") ;940 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() pads caps are null. Somethings wrong here. Skipping.").newline; 827 941 trytogetnegcaps = true; 828 942 } 829 943 else if( caps.getCapsStruct() is null ) 830 944 { 831 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() THIS IS YOUR WORST NIGHTMARE. caps.getCapsStruct is null.") ;945 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() THIS IS YOUR WORST NIGHTMARE. caps.getCapsStruct is null.").newline; 832 946 trytogetnegcaps = true; 833 947 } … … 835 949 if( caps.isFixed() == false || trytogetnegcaps == true ) 836 950 { 837 debug(Discoverer) Stdout("Caps are not fixed. Trying to get negotiated caps.") ;951 debug(Discoverer) Stdout("Caps are not fixed. Trying to get negotiated caps.").newline; 838 952 caps = pad.getNegotiatedCaps(); 839 953 } … … 841 955 if( caps is null )// || caps.getCapsStruct() is null ) 842 956 { 843 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() Negotiated pads caps are null. Somethings wrong here. Skipping.") ;957 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() Negotiated pads caps are null. Somethings wrong here. Skipping.").newline; 844 958 return; 845 959 } 846 960 else if( caps.getCapsStruct() is null ) 847 961 { 848 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() HORRIBLE HORRIBLE. Negotiated pads caps.getCapsStruct are null. Somethings wrong here. Skipping.") ;962 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() HORRIBLE HORRIBLE. Negotiated pads caps.getCapsStruct are null. Somethings wrong here. Skipping.").newline; 849 963 return; 850 964 } 851 965 852 debug(Discoverer) Stdout("testing pad " , pad.getName(), " : caps: ", caps.toString() );966 debug(Discoverer) Stdout("testing pad ")( pad.getName() )( " : caps: " )( caps.toString() ).newline; 853 967 854 968 … … 857 971 // create one, emit "new_sourcefile_factory" 858 972 char[] capsstr = caps.toString();//pad.getCaps().toString(); 859 debug(Discoverer) Stdout("pad: " , pad.getName(), " caps:", capsstr, " is_last:");973 debug(Discoverer) Stdout("pad: " )( pad.getName() )( " caps:" )( capsstr )( " is_last:").newline; 860 974 if( Util.containsPattern( capsstr, "video" ) == true ) 861 975 { 862 debug(Discoverer) Stdout("video pad found for file " , current );976 debug(Discoverer) Stdout("video pad found for file ")( current ).newline; 863 977 //capsstr.startswith("video/x-raw"): 864 978 //if( currentVideoMaterial is null ) … … 869 983 if( found_video == false ) 870 984 { 871 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() Creating new video material.") ;985 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() Creating new video material.").newline; 872 986 found_video = true; 873 987 currentVideoMaterial = new Material( current, MaterialType.VIDEO, pad_duration ); 874 project. addMaterial( currentVideoMaterial );875 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() Creating new video material. DONE.") ;988 project.discovererAddMaterialMovie( currentVideoMaterial ); 989 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() Creating new video material. DONE.").newline; 876 990 //TODO currentVideoMaterial.setAudioInfo(caps) 877 991 } … … 880 994 else if( Util.containsPattern( capsstr, "audio" ) == true ) 881 995 { 882 debug(Discoverer) Stdout("audio pad found for file " , current );996 debug(Discoverer) Stdout("audio pad found for file ")( current ).newline; 883 997 //capsstr.startswith("audio/x-raw") 884 998 //if( currentAudioMaterial is null ) … … 889 1003 if( found_audio == false ) 890 1004 { 891 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() Creating new audio material.") ;1005 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() Creating new audio material.").newline; 892 1006 found_audio = true; 893 1007 currentAudioMaterial = new Material( current, MaterialType.AUDIO, pad_duration ); 894 project. addMaterial( currentAudioMaterial );1008 project.discovererAddMaterialMovie( currentAudioMaterial ); 895 1009 //TODO currentAudioMaterial.setVideoInfo(caps) 896 debug(Discoverer) Stdout("Discoverer.newDecodedPadCb() Creating new audio material. DONE.") ;1010 debug(Discoverer) Stdout("Discoverer.newDeco
