[Vm-dev] VM Maker: VMMaker.oscog-tpr.2906.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Dec 14 05:10:20 UTC 2020


tim Rowledge uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-tpr.2906.mcz

==================== Summary ====================

Name: VMMaker.oscog-tpr.2906
Author: tpr
Time: 13 December 2020, 9:07:40.834798 pm
UUID: df432f2d-0ae6-4d4e-9f9b-db364976a138
Ancestors: VMMaker.oscog-eem.2905

Mpeg3Plugin sample read routines expect word arrays,not pointer arrays. Became an issue recently due to Slang changes?

=============== Diff against VMMaker.oscog-eem.2905 ===============

Item was changed:
  ----- Method: Mpeg3Plugin>>primitiveMPEG3ReReadAudio:shortArray:channel:samples:stream: (in category 'primitives') -----
  primitiveMPEG3ReReadAudio: fileHandle shortArray: anArray channel: aChannelNumber samples: aSampleNumber stream: aNumber
  	| file result arrayBase |
  
  	"int mpeg3_reread_audio(mpeg3_t *file, 
  		float *output_f, 
  		short *output_i, 
  		int channel, 
  		long samples,
  		int stream)"
  	<var: #file type: 'mpeg3_t * '>
  	<var: #arrayBase type: 'short * '>
  	self primitive: 'primitiveMPEG3ReReadAudio'
+ 		parameters: #(Oop WordArray SmallInteger SmallInteger SmallInteger).
- 		parameters: #(Oop Array SmallInteger SmallInteger SmallInteger).
  
  	file := self mpeg3tValueOf: fileHandle.
  	file = nil ifTrue: [^0].
  	aNumber < 0 ifTrue: [interpreterProxy success: false. ^nil].
  	aNumber >= (self cCode: 'result = mpeg3_total_astreams(file)') ifTrue: [
  		interpreterProxy success: false.  ^0 ].
  
  
  	arrayBase := self cCoerce: anArray to: 'short *'.
  	interpreterProxy failed ifTrue: [^nil].
  	self cCode: 'result = mpeg3_reread_audio(file,(float *) NULL,arrayBase,aChannelNumber,aSampleNumber,aNumber)'.
  	^result asSmallIntegerObj
  !

Item was changed:
  ----- Method: Mpeg3Plugin>>primitiveMPEG3ReadAudio:shortArray:channel:samples:stream: (in category 'primitives') -----
  primitiveMPEG3ReadAudio: fileHandle shortArray: anArray channel: aChannelNumber samples: aSampleNumber stream: aNumber
  	| file result arrayBase |
  
  	"int mpeg3_read_audio(mpeg3_t *file, 
  		float *output_f, 
  		short *output_i, 
  		int channel, 
  		long samples,
  		int stream)"
  	<var: #file type: 'mpeg3_t * '>
  	<var: #arrayBase type: 'short * '>
  	self primitive: 'primitiveMPEG3ReadAudio'
+ 		parameters: #(Oop WordArray SmallInteger SmallInteger SmallInteger).
- 		parameters: #(Oop Array SmallInteger SmallInteger SmallInteger).
  
  	file := self mpeg3tValueOf: fileHandle.
  	file = nil ifTrue: [^0].
  	aNumber < 0 ifTrue: [interpreterProxy success: false. ^nil].
  	aNumber >= (self cCode: 'result = mpeg3_total_astreams(file)') ifTrue: [
  		interpreterProxy success: false.  ^0 ].
  	arrayBase := self cCoerce: anArray to: 'short *'.
  	interpreterProxy failed ifTrue: [^nil].
  
  	self cCode: 'result = mpeg3_read_audio(file,(float *) NULL,arrayBase,aChannelNumber,aSampleNumber,aNumber)'.
  	^result asSmallIntegerObj
  !



More information about the Vm-dev mailing list