@@ -133,31 +133,31 @@ public: | |||
trackUnitsPerFrame = GetMovieTimeScale (movie) * samplesPerFrame | |||
/ GetMediaTimeScale (media); | |||
OSStatus err = MovieAudioExtractionBegin (movie, 0, &extractor); | |||
MovieAudioExtractionBegin (movie, 0, &extractor); | |||
unsigned long output_layout_size; | |||
err = MovieAudioExtractionGetPropertyInfo (extractor, | |||
kQTPropertyClass_MovieAudioExtraction_Audio, | |||
kQTMovieAudioExtractionAudioPropertyID_AudioChannelLayout, | |||
0, &output_layout_size, 0); | |||
OSStatus err = MovieAudioExtractionGetPropertyInfo (extractor, | |||
kQTPropertyClass_MovieAudioExtraction_Audio, | |||
kQTMovieAudioExtractionAudioPropertyID_AudioChannelLayout, | |||
0, &output_layout_size, 0); | |||
if (err != noErr) | |||
return; | |||
HeapBlock <AudioChannelLayout> qt_audio_channel_layout; | |||
qt_audio_channel_layout.calloc (output_layout_size, 1); | |||
err = MovieAudioExtractionGetProperty (extractor, | |||
kQTPropertyClass_MovieAudioExtraction_Audio, | |||
kQTMovieAudioExtractionAudioPropertyID_AudioChannelLayout, | |||
output_layout_size, qt_audio_channel_layout, 0); | |||
MovieAudioExtractionGetProperty (extractor, | |||
kQTPropertyClass_MovieAudioExtraction_Audio, | |||
kQTMovieAudioExtractionAudioPropertyID_AudioChannelLayout, | |||
output_layout_size, qt_audio_channel_layout, 0); | |||
qt_audio_channel_layout[0].mChannelLayoutTag = kAudioChannelLayoutTag_Stereo; | |||
err = MovieAudioExtractionSetProperty (extractor, | |||
kQTPropertyClass_MovieAudioExtraction_Audio, | |||
kQTMovieAudioExtractionAudioPropertyID_AudioChannelLayout, | |||
output_layout_size, | |||
qt_audio_channel_layout); | |||
MovieAudioExtractionSetProperty (extractor, | |||
kQTPropertyClass_MovieAudioExtraction_Audio, | |||
kQTMovieAudioExtractionAudioPropertyID_AudioChannelLayout, | |||
output_layout_size, | |||
qt_audio_channel_layout); | |||
err = MovieAudioExtractionGetProperty (extractor, | |||
kQTPropertyClass_MovieAudioExtraction_Audio, | |||
@@ -279,8 +279,7 @@ public: | |||
inline ElementType getFirst() const | |||
{ | |||
const ScopedLockType lock (getLock()); | |||
return (numUsed > 0) ? data.elements [0] | |||
: ElementType(); | |||
return numUsed > 0 ? data.elements[0] : ElementType(); | |||
} | |||
/** Returns the last element in the array, or a default value if the array is empty. | |||
@@ -290,8 +289,7 @@ public: | |||
inline ElementType getLast() const | |||
{ | |||
const ScopedLockType lock (getLock()); | |||
return (numUsed > 0) ? data.elements [numUsed - 1] | |||
: ElementType(); | |||
return numUsed > 0 ? data.elements[numUsed - 1] : ElementType(); | |||
} | |||
/** Returns a pointer to the actual array data. | |||
@@ -317,6 +315,11 @@ public: | |||
*/ | |||
inline ElementType* end() const noexcept | |||
{ | |||
#if JUCE_DEBUG | |||
if (data.elements == nullptr || numUsed <= 0) // (to keep static analysers happy) | |||
return data.elements; | |||
#endif | |||
return data.elements + numUsed; | |||
} | |||
@@ -519,6 +522,7 @@ public: | |||
if (isPositiveAndBelow (indexToChange, numUsed)) | |||
{ | |||
jassert (data.elements != nullptr); | |||
data.elements [indexToChange] = newValue; | |||
} | |||
else if (indexToChange >= 0) | |||
@@ -167,7 +167,7 @@ public: | |||
{ | |||
const ScopedLockType lock (getLock()); | |||
return numUsed > 0 ? data.elements [0] | |||
: static_cast <ObjectClass*> (nullptr); | |||
: static_cast<ObjectClass*> (nullptr); | |||
} | |||
/** Returns a pointer to the last object in the array. | |||
@@ -179,7 +179,7 @@ public: | |||
{ | |||
const ScopedLockType lock (getLock()); | |||
return numUsed > 0 ? data.elements [numUsed - 1] | |||
: static_cast <ObjectClass*> (nullptr); | |||
: static_cast<ObjectClass*> (nullptr); | |||
} | |||
/** Returns a pointer to the actual array data. | |||
@@ -205,6 +205,11 @@ public: | |||
*/ | |||
inline ObjectClass** end() const noexcept | |||
{ | |||
#if JUCE_DEBUG | |||
if (data.elements == nullptr || numUsed <= 0) // (to keep static analysers happy) | |||
return data.elements; | |||
#endif | |||
return data.elements + numUsed; | |||
} | |||
@@ -180,6 +180,7 @@ public: | |||
inline ObjectClass* getObjectPointer (const int index) const noexcept | |||
{ | |||
const ScopedLockType lock (getLock()); | |||
jassert (isPositiveAndBelow (index, numUsed)); | |||
return isPositiveAndBelow (index, numUsed) ? data.elements [index] | |||
: nullptr; | |||
} | |||