PK!! p)com/example/mp4composer/BuildConfig.class3+  ! "#$DEBUGZLIBRARY_PACKAGE_NAMELjava/lang/String; ConstantValue% BUILD_TYPE& VERSION_CODEI VERSION_NAME'()VCodeLineNumberTableLocalVariableTablethis%Lcom/example/mp4composer/BuildConfig; SourceFileBuildConfig.java true( )* #com/example/mp4composer/BuildConfigjava/lang/Objectcom.example.mp4composerdebug1.0java/lang/Boolean parseBoolean(Ljava/lang/String;)Z1        /* ! PK!!495&com/example/mp4composer/FillMode.class3G : ;<= > ? ? @ A BCPRESERVE_ASPECT_FIT"Lcom/example/mp4composer/FillMode;PRESERVE_ASPECT_CROPCUSTOM$VALUES#[Lcom/example/mp4composer/FillMode;values%()[Lcom/example/mp4composer/FillMode;CodeLineNumberTablevalueOf6(Ljava/lang/String;)Lcom/example/mp4composer/FillMode;LocalVariableTablenameLjava/lang/String;(Ljava/lang/String;I)Vthis Signature()VgetScaleAspectFit (IIIII)[FcxIanglewidthInheightInwidthOut heightOutscale[F aspectRatioInFheightOutCalculated StackMapTable-getScaleAspectCropwidthOutCalculatedaspectRatioOut4Ljava/lang/Enum; SourceFile FillMode.java  DE com/example/mp4composer/FillMode F    java/lang/Enumclone()Ljava/lang/Object;5(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;@1@@@ "  4 *  1*+  !" #$`Y QY Q: [QQZ  6<=n8n8nQjnQ2 $'),3:CP]\ '%&`'&`(&`)&`*&`+& S,-3-./:&0/1$2# 3$F kY QY Q: [QQZ  6<=n8n8j8nQn8nQ>" #$$%'&)',*3+;-C.K/T0W1^2h5p '%&K 4/^ 0/k'&k(&k)&k*&k+& ^,-38./;05/1$2*6"eAY Y  Y  Y SY SY S  '!789PK!! ,\i2com/example/mp4composer/FillModeCustomItem$1.class3, !" # $ %&')()VCodeLineNumberTableLocalVariableTablethis InnerClasses.Lcom/example/mp4composer/FillModeCustomItem$1;createFromParcelA(Landroid/os/Parcel;)Lcom/example/mp4composer/FillModeCustomItem;sourceLandroid/os/Parcel;newArray0(I)[Lcom/example/mp4composer/FillModeCustomItem;sizeI(I)[Ljava/lang/Object;'(Landroid/os/Parcel;)Ljava/lang/Object; SignatureCreator_Ljava/lang/Object;Landroid/os/Parcelable$Creator; SourceFileFillModeCustomItem.javaEnclosingMethod *com/example/mp4composer/FillModeCustomItem *  ,com/example/mp4composer/FillModeCustomItem$1java/lang/Object+android/os/Parcelable$Creator(Landroid/os/Parcel;)Vandroid/os/Parcelable0  /* K  = Y+ N    9 S A 0* K A 0*+ K  ( PK!!qy  0com/example/mp4composer/FillModeCustomItem.class3N : ; < = > ? @ AB ACD : EFGH InnerClassesscaleFrotate translateX translateY videoWidth videoHeightCREATORICreatorLandroid/os/Parcelable$Creator; SignatureMLandroid/os/Parcelable$Creator; (FFFFFF)VCodeLineNumberTableLocalVariableTablethis,Lcom/example/mp4composer/FillModeCustomItem;getScale()F getRotate getTranslateX getTranslateY getVideoWidthgetVideoHeightdescribeContents()I writeToParcel(Landroid/os/Parcel;I)VdestLandroid/os/Parcel;flagsI(Landroid/os/Parcel;)Vin()V SourceFileFillModeCustomItem.java 7      J KL M&,com/example/mp4composer/FillModeCustomItem$1 *com/example/mp4composer/FillModeCustomItemjava/lang/Objectandroid/os/Parcelableandroid/os/Parcelable$Creatorandroid/os/Parcel writeFloat(F)V readFloat!   &**#*$*%***!" %"H&#$&&&&&&%& /*!" #$'& /*! " #$(& /*!$" #$)& /*!(" #$*& /*!," #$+& /*!0" #$,- ,!5" #$./ 1+*+*+*+*+*+*!:;<= >(?0@" 1#$1011234 5**+ *+ *+ *+ *+ *+ !"BC DEF$G,H4I"5#$55167 # Y !K89  PK!!wHH&com/example/mp4composer/Rotation.class3J 7 89: ; < = > ? @ A B C DENORMAL"Lcom/example/mp4composer/Rotation; ROTATION_90 ROTATION_180 ROTATION_270rotationI$VALUES#[Lcom/example/mp4composer/Rotation;values%()[Lcom/example/mp4composer/Rotation;CodeLineNumberTablevalueOf6(Ljava/lang/String;)Lcom/example/mp4composer/Rotation;LocalVariableTablenameLjava/lang/String;(Ljava/lang/String;II)Vthis Signature(I)V getRotation()IfromInt%(I)Lcom/example/mp4composer/Rotation;rotate calcRotate StackMapTable()V4Ljava/lang/Enum; SourceFile Rotation.java  FG com/example/mp4composer/Rotation !H &I   +,  &'   java/lang/Enumclone()Ljava/lang/Object;5(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;(Ljava/lang/String;I)V@1@@@@ "   !"4 * #  $%&'H *+*  # ( )*+,/* # ( -.;<h ĄM,>6,2:    %17!# % ;/901 23]Y  Y Z Y Y Y SYSYSYS   - =)456PK!!n0(com/example/mp4composer/SampleType.class30 $ %&' ( ) ) * +,VIDEO$Lcom/example/mp4composer/SampleType;AUDIO$VALUES%[Lcom/example/mp4composer/SampleType;values'()[Lcom/example/mp4composer/SampleType;CodeLineNumberTablevalueOf8(Ljava/lang/String;)Lcom/example/mp4composer/SampleType;LocalVariableTablenameLjava/lang/String;(Ljava/lang/String;I)Vthis Signature()V6Ljava/lang/Enum; SourceFileSampleType.java  -."com/example/mp4composer/SampleType /   java/lang/Enumclone()Ljava/lang/Object;5(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;@1 @ @ "  4 *  1*+  F.Y Y  Y SY S!"#PK!!,,1com/example/mp4composer/VideoFormatMimeType.class3P 8 9:#; < = >?@ A BC DE FG HI JKHEVC-Lcom/example/mp4composer/VideoFormatMimeType;AVCMPEG4H263AUTOvideoFormatMimeTypeLjava/lang/String;$VALUES.[Lcom/example/mp4composer/VideoFormatMimeType;values0()[Lcom/example/mp4composer/VideoFormatMimeType;CodeLineNumberTablevalueOfA(Ljava/lang/String;)Lcom/example/mp4composer/VideoFormatMimeType;LocalVariableTablename((Ljava/lang/String;ILjava/lang/String;)Vthis Signature(Ljava/lang/String;)V getFormat()Ljava/lang/String;()V?Ljava/lang/Enum; SourceFileVideoFormatMimeType.java "## LM+com/example/mp4composer/VideoFormatMimeType (N ,O !android/media/MediaFormat video/hevc ,-  video/avc  video/mp4v-es  video/3gpp  java/lang/Enumclone()Ljava/lang/Object;5(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;(Ljava/lang/String;I)V@1@@@@@ !"# $%&" ' ()&4 *'*  +!,-&H *+*-' * . !/012&/*'* .34&qY Y  Y Y Y Y SYSYSYSYS'- < K/567PK!!63com/example/mp4composer/composer/AudioChannel.class3 } ~ <      <  < - <      < < < - - < - < -B@ < < < R(Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/media/MediaFormat;)VCodeLineNumberTableLocalVariableTablethis/Lcom/example/mp4composer/composer/AudioChannel;decoderLandroid/media/MediaCodec;encoder encodeFormatLandroid/media/MediaFormat;setActualDecodedFormat(Landroid/media/MediaFormat;)V decodedFormat StackMapTabledrainDecoderBufferAndQueue(IJ)V bufferIndexIpresentationTimeUsJdataLjava/nio/ByteBuffer;buffer AudioBuffer InnerClasses?Lcom/example/mp4composer/composer/BaseAudioChannel$AudioBuffer;RuntimeInvisibleAnnotations!Landroidx/annotation/RequiresApi;api feedEncoder(J)Z timeoutUs hasOverflowZencoderInBuffIndex outBufferLjava/nio/ShortBuffer;inBuffersampleCountToDurationUs(JII)J sampleCount sampleRate channelCount drainOverflow(Ljava/nio/ShortBuffer;)JoutBuff overflowBuff overflowLimit overflowSizebeginPresentationTimeUsremixAndMaybeFillOverflowX(Lcom/example/mp4composer/composer/BaseAudioChannel$AudioBuffer;Ljava/nio/ShortBuffer;)JconsumedDurationUsinputinBuff SourceFileAudioChannel.java => IJ P'java/lang/UnsupportedOperationExceptionjava/lang/StringBuilder =Input channel count ( ) not supported. = Hjava/lang/RuntimeExceptionBuffer received before format!1com/example/mp4composer/composer/BaseAudioChannel DE  =com/example/mp4composer/composer/BaseAudioChannel$AudioBuffer OP QR Sh X    FE op android/media/MediaCodec vw P P jk -com/example/mp4composer/composer/AudioChanneljava/nio/ByteBufferjava/nio/ShortBufferinputChannelCount()Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;toString()Ljava/lang/String;(Ljava/lang/String;)VactualDecodedFormatgetOutputBuffer(I)Ljava/nio/ByteBuffer; emptyBuffersLjava/util/Queue;java/util/Queuepoll()Ljava/lang/Object; asShortBuffer()Ljava/nio/ShortBuffer;overflowBuffercapacity()IallocateDirectjava/nio/ByteOrder nativeOrder()Ljava/nio/ByteOrder;order+(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;clear()Ljava/nio/Buffer;java/nio/Bufferflip filledBuffersadd(Ljava/lang/Object;)Z hasRemaining()ZisEmptydequeueInputBuffer(J)IgetInputBufferpositionqueueInputBuffer(IIIJI)VreleaseOutputBuffer(IZ)Vlimit remaininginputSampleRateoutputChannelCount(I)Ljava/nio/Buffer;put.(Ljava/nio/ShortBuffer;)Ljava/nio/ShortBuffer; <=>?T*+,-@ A*BCDEFEGHIJ?9*+*.*&YY*   @8!A9BC9KHL8MN?f* Y *:*: Y: *)* *!"W*#$W@J'(+-$/2071@4F5L6_8i9o:u;{<=@AA4BCOPQR$xST2jUXL.GYYZVZ[YZZ\2] ^_I`ab? **%>*#& *'(6*'):!**7*'+h,*#:*' ,*.7*'+h,*/*$W@fFG-I/L9M>O@SNTRUZVcWkVnYp\~]^_bcdcfghkARZQRBCcRde9fPNgh~ViX4QRL@/\%Z;] ^_I`jk?U 0imm@pA* BC lR mP nPop?`*M,2>,36**,+*4*56a7+!W,+78W+,9W+7,!:W ,8W@2 tu vxy.{3}<BKW]A>`BC`qhXrh SsPMtP.2uRLW[\\vw?!w+N*:,!W-!W-3,3L-,78W,-9W--78W*-+*4*67-9W;W*+a ,-9W+@B#,2;=NU[ilrA>NxRwBCwyXwqhrzhirhL l\\{|W V PK!!M!Ħ9com/example/mp4composer/composer/AudioChannelWithSP.class3  ? ? ? ? ? ? ? ? ?  ?      ? ?   It$ ? " ? : ? :   ? ? : ? ? ? ? ?  : ? : TAGLjava/lang/String; ConstantValuestream6Lcom/example/mp4composer/composer/SonicAudioProcessor; timeScaleFisEOFZBUFFER_CAPACITYItotalDataAddedJpendingDecoderOutputBuffIndxtempInputBufferLjava/nio/ByteBuffer;isPendingFeedingisAffectInPitchT(Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/media/MediaFormat;FZ)VCodeLineNumberTableLocalVariableTablethis5Lcom/example/mp4composer/composer/AudioChannelWithSP;decoderLandroid/media/MediaCodec;encoder encodeFormatLandroid/media/MediaFormat;isPitchChangedsetActualDecodedFormat(Landroid/media/MediaFormat;)V decodedFormat StackMapTablesampleCountToDurationUs(JII)J sampleCount sampleRate channelCountdrainDecoderBufferAndQueue(IJ)V bufferIndexpresentationTimeUsdataRuntimeInvisibleAnnotations!Landroidx/annotation/RequiresApi;api feedEncoder(J)Z timeoutUsencoderInBuffIndexstatusupdatePendingDecoderStatus()VFastOrNormalTimeBufferProcess(I)Z samplesNum rawDataLenslowTimeBufferProcessfinalizeEncoderQueuereadStreamDataAndQueueToEncoder(II)ZcapacityrawData[SqueueInputBufferInEncoder([SI)Z outBufferLjava/nio/ShortBuffer;writeToSonicSteam(Ljava/nio/ShortBuffer;)VtemBuffisAnyPendingBuffIndex()Z SourceFileAudioChannelWithSP.java S DE FG HI JK LM NK OP QI RI `a K'java/lang/UnsupportedOperationExceptionjava/lang/StringBuilder SyInput channel count ( ) not supported. S4com/example/mp4composer/composer/SonicAudioProcessor K K S  1com/example/mp4composer/composer/BaseAudioChannel ^java/lang/RuntimeExceptionBuffer received before format! Z[ y xy \[ ~{ z{ {  de android/media/MediaCodec 3com/example/mp4composer/composer/AudioChannelWithSPAUDIO_CHANNEL_WITH_SONICjava/nio/ByteBufferjava/nio/ShortBufferR(Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/media/MediaFormat;)VinputChannelCountappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;toString()Ljava/lang/String;(Ljava/lang/String;)VinputSampleRateoutputChannelCount(II)VallocateDirect(I)Ljava/nio/ByteBuffer;java/nio/ByteOrder nativeOrder()Ljava/nio/ByteOrder;order+(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;setRate(F)VsetSpeedactualDecodedFormatgetOutputBuffer asShortBuffer()Ljava/nio/ShortBuffer;releaseOutputBuffer(IZ)V flushStreamsamplesAvailable()IdequeueInputBuffer(J)IreadShortFromStream([SI)IgetInputBufferclear()Ljava/nio/Buffer;put([S)Ljava/nio/ShortBuffer;queueInputBuffer(IIIJI)VgetrewindwriteShortToStream([SI)V!? @ABCDEFGHIJKLMNKOPQIRI STU>*+,-** *** *** * *V2  "',1!7"=#W>>XY>Z[>\[>]^>FG>_I`aU*+ * & YY* *Y**** * **h* ****V2 ') *0,C-H.M/R0f2m3{57WXYb^c0J deUZ  jj jjnV<W*XYfMgKhKijUU*! "Y#$ *%&:"*'(***%)***V2 CDGI$K)L2M7N<OHQORTTW*UXYUkKUlM$1mPcGn%n o pqIrstU** **+ *,*/* &*+*+*h* *,*-.>6* */6 *06V:Z]#_%`RbVdXgaiekgnjosp}ruW*XYuMa&vKjwIc2o pqIrxyUI**Vz{ }W XYc z{UN*+=>*h6* **1* *1*  *2V*  %3;FLW4NXYNvKF|K DwI<}Kc %o pqIr~{UV*+=>*h6* **1** *1* *2V*  %:BNTW4VXYVvKN|K LwID}Kc %o pqIr{UD * *3V W XY vKo pqIrUj N*-*l4W*-3VW*XYKvKo pqIrUY*-5'N-6W+9-+7W*Y+a****87*-+h9*- 9V* '9IKWW49lMYXYYYvK McKo pqIrUp"+; M+,V !W "XY"mUG *V W  XYc PK!!&4com/example/mp4composer/composer/AudioComposer.class3 +o pq *rs o *t *u *v *w xy xz *{ *| *} ~    * *  *        * TAGLjava/lang/String; ConstantValuemediaExtractorLandroid/media/MediaExtractor; trackIndexI muxRender,Lcom/example/mp4composer/composer/MuxRender; sampleType$Lcom/example/mp4composer/SampleType; bufferInfo BufferInfo InnerClasses%Landroid/media/MediaCodec$BufferInfo; bufferSizebufferLjava/nio/ByteBuffer;isEOSZwrittenPresentationTimeUsJ trimStartUs trimEndUsloggerLjava/util/logging/Logger;j(Landroid/media/MediaExtractor;ILcom/example/mp4composer/composer/MuxRender;JJLjava/util/logging/Logger;)VCodeLineNumberTableLocalVariableTablethis0Lcom/example/mp4composer/composer/AudioComposer; trimStartMs trimEndMsactualOutputFormatLandroid/media/MediaFormat; StackMapTable$RuntimeInvisibleParameterAnnotationsLandroidx/annotation/NonNull; stepPipeline()Z sampleSize isKeyFrameflagsRuntimeInvisibleAnnotations!Landroidx/annotation/RequiresApi;api!Landroid/annotation/SuppressLint;valueAssertgetWrittenPresentationTimeUs()J isFinishedsetup()Vrelease SourceFileAudioComposer.java Hk 8 78#android/media/MediaCodec$BufferInfo 9< 12 34 56 DC EC FG  android/media/MediaFormatmax-input-size =4  >?android/media/MediaExtractor @A android/media/MediaCodec h BC \.com/example/mp4composer/composer/AudioComposerjava/lang/Object/com/example/mp4composer/composer/IAudioComposer AudioComposer*com/example/mp4composer/composer/MuxRenderjava/util/logging/Logger"com/example/mp4composer/SampleTypeAUDIOjava/util/concurrent/TimeUnit MILLISECONDSLjava/util/concurrent/TimeUnit;toMicros(J)JgetTrackFormat(I)Landroid/media/MediaFormat;setOutputFormatB(Lcom/example/mp4composer/SampleType;Landroid/media/MediaFormat;)V containsKey(Ljava/lang/String;)Z getInteger(Ljava/lang/String;)Ijava/nio/ByteBufferallocateDirect(I)Ljava/nio/ByteBuffer;java/nio/ByteOrder nativeOrder()Ljava/nio/ByteOrder;order+(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;seekTo(JI)VgetSampleTrackIndex()Iclear()Ljava/nio/Buffer;set(IIJI)VwriteSampleDataa(Lcom/example/mp4composer/SampleType;Ljava/nio/ByteBuffer;Landroid/media/MediaCodec$BufferInfo;)VreadSampleData(Ljava/nio/ByteBuffer;I)IgetSampleFlags getSampleTimeadvance *+, -./0123456789<=4>?@ABCDCECFGHIJ ***Y*+**- *  *   ***: * * *   **+* K>* +, -%.1/K0Q2^3k4567LRMN123456OCPCFG^BQR Sn@TUVWTTUVWT7TUVWXTTUVWXTYZZZ[\J** <0*!W* #* ***$***!W**%=**h***&~>6*'* B*'** (**'#* ***$**'(*)WKZ= >?@A(B;C@DBFLHTIaJiLpMOPRSTWXYL4MN34a]4n^Ac_4S 8 4@@*$`abIcde[sfghJ/*(K^L MNi\J/*KcL MNjkJ+KiL MNlkJ+KnL MNmn; ":PK!!/122Ccom/example/mp4composer/composer/BaseAudioChannel$AudioBuffer.class3  bufferIndexIpresentationTimeUsJdataLjava/nio/ShortBuffer;()VCodeLineNumberTableLocalVariableTablethis AudioBuffer InnerClasses?Lcom/example/mp4composer/composer/BaseAudioChannel$AudioBuffer; SourceFileBaseAudioChannel.java =com/example/mp4composer/composer/BaseAudioChannel$AudioBufferjava/lang/Object1com/example/mp4composer/composer/BaseAudioChannel!   /*    PK!!DBcom/example/mp4composer/composer/BaseAudioChannel$BufferInfo.class3  totaldataJpresentationTimeUs()VCodeLineNumberTableLocalVariableTablethis BufferInfo InnerClasses>Lcom/example/mp4composer/composer/BaseAudioChannel$BufferInfo; SourceFileBaseAudioChannel.java ; filledBuffersdecoderLandroid/media/MediaCodec;encoder encodeFormatLandroid/media/MediaFormat;inputSampleRateinputChannelCountoutputChannelCountoverflowBuffer?Lcom/example/mp4composer/composer/BaseAudioChannel$AudioBuffer;actualDecodedFormatR(Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/media/MediaFormat;)VCodeLineNumberTableLocalVariableTablethis3Lcom/example/mp4composer/composer/BaseAudioChannel;setActualDecodedFormat(Landroid/media/MediaFormat;)V decodedFormat StackMapTablesampleCountToDurationUs(JII)JdrainDecoderBufferAndQueue(IJ)V feedEncoder(J)Z SourceFileBaseAudioChannel.java @qjava/util/ArrayDeque 01 41=com/example/mp4composer/composer/BaseAudioChannel$AudioBuffer => 56 76 89 ?9android/media/MediaFormat sample-rate rs :&'java/lang/UnsupportedOperationException/Audio sample rate conversion not supported yet. @t channel-count ;& <&java/lang/StringBuilderOutput channel count ( uv uw) not supported. xy z-1com/example/mp4composer/composer/BaseAudioChanneljava/lang/Object?9@AB5**Y*Y*Y*+ *, *- C"/ *%0*1/243D*5EF556576589GHB*+ ** **  Y** ** *.*&YY** C* 689":,=9>F@VAyDEDEFI9J,LKLMNOPQR#!" $ PK!!:*??7com/example/mp4composer/composer/DecoderSurface$1.class3,      !+$SwitchMap$com$example$mp4composer$FillMode[I()VCodeLineNumberTableLocalVariableTable StackMapTable SourceFileDecoderSurface.javaEnclosingMethod"# $% &' ()java/lang/NoSuchFieldError *' +'1com/example/mp4composer/composer/DecoderSurface$1 InnerClassesjava/lang/Object/com/example/mp4composer/composer/DecoderSurface com/example/mp4composer/FillModevalues%()[Lcom/example/mp4composer/FillMode;PRESERVE_ASPECT_FIT"Lcom/example/mp4composer/FillMode;ordinal()IPRESERVE_ASPECT_CROPCUSTOM    7 OKOKOK #&'25WMM PK!!0 " "5com/example/mp4composer/composer/DecoderSurface.class3                        #  # # '  #     .  . @       ' #  '  A A # # ! " # $ % & ' ( s) * + , -" -# . / 0 1 2 3 45 46 7 48C4 49 4: 4; .<@ = > ?@ A B C .C@ D EGI InnerClassesTAGLjava/lang/String; ConstantValueJVERBOSEZ eglDisplayLandroid/opengl/EGLDisplay; eglContextLandroid/opengl/EGLContext; eglSurfaceLandroid/opengl/EGLSurface;surfaceLandroid/view/Surface;frameSyncObjectLjava/lang/Object;frameAvailablefilter)Lcom/example/mp4composer/filter/GlFilter;texNameIpreviewTexture-Lcom/example/mp4composer/gl/GlSurfaceTexture;filterFramebufferObject0Lcom/example/mp4composer/gl/GlFramebufferObject; previewShader,Lcom/example/mp4composer/gl/GlPreviewFilter; normalShaderframebufferObject MVPMatrix[F ProjMatrixMMatrixVMatrixSTMatrixrotation"Lcom/example/mp4composer/Rotation;outputResolutionLandroid/util/Size;inputResolutionfillMode"Lcom/example/mp4composer/FillMode;fillModeCustomItem,Lcom/example/mp4composer/FillModeCustomItem; flipVerticalflipHorizontallogger'Lcom/example/mp4composer/logger/Logger;S(Lcom/example/mp4composer/filter/GlFilter;Lcom/example/mp4composer/logger/Logger;)VCodeLineNumberTableLocalVariableTablethis1Lcom/example/mp4composer/composer/DecoderSurface;$RuntimeInvisibleParameterAnnotationsLandroidx/annotation/NonNull;setup()Vargs[Irelease StackMapTableRuntimeInvisibleAnnotations!Landroidx/annotation/RequiresApi;api getSurface()Landroid/view/Surface; awaitNewImageie Ljava/lang/InterruptedException; TIMEOUT_MSK drawImagescalescaleDirectionXFscaleDirectionYonFrameAvailable$(Landroid/graphics/SurfaceTexture;)Vst!Landroid/graphics/SurfaceTexture; setRotation%(Lcom/example/mp4composer/Rotation;)VsetOutputResolution(Landroid/util/Size;)V resolution setFillMode%(Lcom/example/mp4composer/FillMode;)VsetInputResolutionsetFillModeCustomItem/(Lcom/example/mp4composer/FillModeCustomItem;)VsetFlipVertical(Z)VsetFlipHorizontalcompleteParamswidthheight SourceFileDecoderSurface.java/com/example/mp4composer/composer/DecoderSurfaceandroid/opengl/GLES20 L M} |} N ~ O java/lang/Object P Q R S z z .com/example/mp4composer/gl/GlFramebufferObject 'com/example/mp4composer/filter/GlFilter TU +com/example/mp4composer/gl/GlSurfaceTexture V WXandroid/view/Surface YZ [\ ]^_ `a*com/example/mp4composer/gl/GlPreviewFilter b cd eU fg hi jk lm z nojava/lang/RuntimeExceptionSurface frame wait timed out pjava/lang/InterruptedException q r st u v\ w\ xy z{ |} ~V   \ \               ^ \ 2frameAvailable already set, frame could be dropped  ^ ^  8android/graphics/SurfaceTexture$OnFrameAvailableListenerOnFrameAvailableListener1com/example/mp4composer/composer/DecoderSurface$1DecoderSurfacejava/lang/Throwableandroid/opengl/EGL14EGL_NO_DISPLAYEGL_NO_CONTEXTEGL_NO_SURFACE com/example/mp4composer/RotationNORMAL com/example/mp4composer/FillModePRESERVE_ASPECT_FIT glGenTextures(I[II)V(I)VsetOnFrameAvailableListener=(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)VgetSurfaceTexture#()Landroid/graphics/SurfaceTexture;getTextureTarget()I glBindTexture(II)V%com/example/mp4composer/utils/EglUtil setupSampler(III)Vandroid/opengl/Matrix setLookAtM([FIFFFFFFFFF)V glGetIntegerveglDestroySurface9(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;)ZeglDestroyContext9(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLContext;)ZeglReleaseThread()Z eglTerminate(Landroid/opengl/EGLDisplay;)Zwait(J)V(Ljava/lang/String;)V(Ljava/lang/Throwable;)VupdateTexImagegetTransformMatrix([F)VenablegetWidth getHeight glViewport(IIII)V getClearColor()[F glClearColor(FFFF)VglClear multiplyMM ([FI[FI[FI)V+$SwitchMap$com$example$mp4composer$FillModeordinal getRotationandroid/util/SizegetScaleAspectFit (IIIII)[FscaleM ([FIFFF)VrotateM ([FIFFFF)VgetScaleAspectCrop*com/example/mp4composer/FillModeCustomItem getTranslateX()F getTranslateY translateM getRotategetScale getVideoWidthgetVideoHeightdraw (I[F[FF)VglBindFramebuffer getTexName4(ILcom/example/mp4composer/gl/GlFramebufferObject;)V notifyAll setFrameSizefrustumM ([FIFFFFFF)V setIdentityM([FI)Vandroid/graphics/SurfaceTexture  ruvwxyzw{|}~zzzs**** * Y * * ********+*,*J`: ;<>$K,L4M<NDOLRSUZW_Xdaibncrd sss ? **Y*Y *  L++!*+."*#Y*"$%*%*&*'Y*%()**%+*",*%+&&- ,*.Y*%+/0*01*Y2* 3 4 3+5N$(/6EM_m}(h*'** 6W**7W8W*9W**:*%;*** *<****%> "&.5<CJQX]bg h. I/** ^'<* YM*=+* >@*= AYBCNAY-E*=,ç :,*%F*%*G-0D ADDHD: #-01:?KR] 1 ^Z !B I*H*I*JK*D*2H*2I*2JK*L0*L0*L0*L0M@N* **O* * * O*P D*P EQ*R.t*S*TU*TV*WU*WVXN* -0#j-0$j Y*[* *St ZD*S*TU*TV*WU*WV[N* -0#j-0$j Y** *St Z*\* *\]*\^v _*S*TU*TV*WU*WV[N*\` *\`a)* *\b-0j#j*\b-0j$j YH* *\b-0j *\cn*\djj#j*\b-0j*\c*\dnj$j Y* *S*\`bv Z*0*"* * e**H@Nfg*I*JKAN* *hi*!(;bhz' N ak /!IL%h3|578?@BCD>4N4%& b5@ @$ZZ^%D' I/* YM*= AYjC*=* k,çN,-&)),)IJKMN$O.P//P>*+ ST>*+W XY>*+ \]>*+T `a>*+\ de>* hiz>* lmz_*WU<*WV=*l* m*2l*0n* P P 3op*q* *m. qrst"v+w4yFzN|U}^ _WO^ I ItsrFH PK!!5com/example/mp4composer/composer/EncoderSurface.class3 .d e f g h i jk d l mn opq r stuv wx yz {| }~   (d ( (EGL_RECORDABLE_ANDROIDI ConstantValue1B eglDisplayLandroid/opengl/EGLDisplay; eglContextLandroid/opengl/EGLContext; eglSurfaceLandroid/opengl/EGLSurface;surfaceLandroid/view/Surface;4(Landroid/view/Surface;Landroid/opengl/EGLContext;)VCodeLineNumberTableLocalVariableTablethis1Lcom/example/mp4composer/composer/EncoderSurface; shareContext StackMapTableueglSetup(Landroid/opengl/EGLContext;)Vversion[I attribListconfigsandroid/opengl/EGLConfig; numConfigs attrib_listsurfaceAttribsJMvrelease()V makeCurrent swapBufferssetPresentationTime(J)VnsecsJ checkEglError(Ljava/lang/String;)VmsgLjava/lang/String;error SourceFileEncoderSurface.java ;V 4 34 6 56 8 78java/lang/NullPointerException 9: GHandroid/opengl/EGL14 java/lang/RuntimeExceptionunable to get EGL14 display ;^ unable to initialize EGL14/com/example/mp4composer/composer/EncoderSurfaceandroid/opengl/EGLConfig /unable to find RGB888+recordable ES2 EGL config zeglCreateContext ]^ null context ~eglCreateWindowSurfacesurface was null  UV eglMakeCurrent failed  java/lang/StringBuilder : EGL error: 0x java/lang/Objectandroid/view/Surfaceandroid/opengl/EGLContextandroid/opengl/EGLDisplayEGL_NO_DISPLAYEGL_NO_CONTEXTEGL_NO_SURFACE eglGetDisplay(I)Landroid/opengl/EGLDisplay; eglInitialize$(Landroid/opengl/EGLDisplay;[II[II)ZeglChooseConfigA(Landroid/opengl/EGLDisplay;[II[Landroid/opengl/EGLConfig;II[II)Zp(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Landroid/opengl/EGLContext;[II)Landroid/opengl/EGLContext;g(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Ljava/lang/Object;[II)Landroid/opengl/EGLSurface;eglDestroySurface9(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;)ZeglDestroyContext9(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLContext;)ZeglReleaseThread()Z eglTerminate(Landroid/opengl/EGLDisplay;)ZeglMakeCurrento(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;Landroid/opengl/EGLSurface;Landroid/opengl/EGLContext;)ZeglSwapBuffersandroid/opengl/EGLExteglPresentationTimeANDROID:(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;J)Z eglGetError()Iappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;java/lang/Integer toHexString(I)Ljava/lang/String;toString()Ljava/lang/String; ./0123456789:;<=0****+ Y *+ *, >&   !%#*$/%? 0@A09:0B6C%DEFGH=c,* * Y M*,,*Y Y0$OYOY0#OYOY0"OYOY0@OYOY1BOY OY 08ON: :*- Y Y0OYOY08O:**2++* Y Y08O:**2* * Y>^+,-/ 0.132=6>?@BEIKLMPSUV!W+Y?R,@A,B6  IJKJLMNJkOJ-PJCi QnQRQ%DFQQRQQDSTDFQQRQQDSTF6QUV=P*'**W**W W*!W* "**** >. ` ab"c&d.f5g<hCiJjOk? P@AC.WV=\!****# Y$>qr t? !@AC XV=; **%W> z {?  @AYZ=F**&W>  ?@A[\ ]^=v.'Y<0%Y(Y)**+*,*-> -?._`)a0C-bcPK!!+5com/example/mp4composer/composer/IAudioComposer.class3 setup()V stepPipeline()ZgetWrittenPresentationTimeUs()J isFinishedrelease SourceFileIAudioComposer.java/com/example/mp4composer/composer/IAudioComposerjava/lang/Object    PK!!7ð4com/example/mp4composer/composer/Mp4Composer$1.class3&   this$0.Lcom/example/mp4composer/composer/Mp4Composer;1(Lcom/example/mp4composer/composer/Mp4Composer;)VCodeLineNumberTableLocalVariableTablethis InnerClasses0Lcom/example/mp4composer/composer/Mp4Composer$1;onError(Ljava/lang/Exception;)VeLjava/lang/Exception; SourceFileMp4Composer.javaEnclosingMethod!  " #$.com/example/mp4composer/composer/Mp4Composer$1java/lang/Object%2com/example/mp4composer/source/DataSource$ListenerListener,com/example/mp4composer/composer/Mp4Composer()V access$000F(Lcom/example/mp4composer/composer/Mp4Composer;Ljava/lang/Exception;)V)com/example/mp4composer/source/DataSource   > *+* C    A *+ FG     PK!!76com/example/mp4composer/composer/Mp4Composer$2$1.class34    ! "#$%'this$1) InnerClasses0Lcom/example/mp4composer/composer/Mp4Composer$2;3(Lcom/example/mp4composer/composer/Mp4Composer$2;)VCodeLineNumberTableLocalVariableTablethis2Lcom/example/mp4composer/composer/Mp4Composer$2$1; onProgress(D)VprogressD StackMapTable SourceFileMp4Composer.javaEnclosingMethod *+ + ,-. /12 0com/example/mp4composer/composer/Mp4Composer$2$1java/lang/Object3Ccom/example/mp4composer/composer/Mp4ComposerEngine$ProgressCallbackProgressCallback.com/example/mp4composer/composer/Mp4Composer$2run()Vthis$0.Lcom/example/mp4composer/composer/Mp4Composer;,com/example/mp4composer/composer/Mp4Composer access$300Listenerg(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/composer/Mp4Composer$Listener;5com/example/mp4composer/composer/Mp4Composer$Listener2com/example/mp4composer/composer/Mp4ComposerEngine   > *+*  c**'   " &(" 0 PK!!F?S!S!4com/example/mp4composer/composer/Mp4Composer$2.class3Q Y~ Z |  |  | |  | | |      | |  | | | | # | | |  . . . |> |A | | |   | | | | | | | | | | | |   |  |  InnerClassesthis$0.Lcom/example/mp4composer/composer/Mp4Composer;1(Lcom/example/mp4composer/composer/Mp4Composer;)VCodeLineNumberTableLocalVariableTablethis0Lcom/example/mp4composer/composer/Mp4Composer$2;run()Vrotate"Lcom/example/mp4composer/Rotation;eLjava/lang/Exception; videoRotateLjava/lang/Integer;srcVideoResolutionLandroid/util/Size; StackMapTableRuntimeInvisibleAnnotations!Landroidx/annotation/RequiresApi;api SourceFileMp4Composer.javaEnclosingMethod ]^ _g ,com/example/mp4composer/logger/AndroidLogger 2com/example/mp4composer/composer/Mp4ComposerEngine _ 0com/example/mp4composer/composer/Mp4Composer$2$1 _ 'java/lang/UnsupportedOperationExceptionjava/lang/StringBuilderFile type unsupported, path: _ 'com/example/mp4composer/filter/GlFilter         java/lang/IllegalAccessException-FillMode.CUSTOM must need fillModeCustomItem.         i iandroid/util/Size   _    ! "# $% & rotation = '( )*inputResolution width =  height = outputResolution width =  fillMode = +, -. /0 12 34 56 76 86 96 :; <; => ?@java/lang/ExceptionA'android/media/MediaCodec$CodecExceptionCodecException[This devicel cannot codec with that setting. Check width, height, bitrate and video format. BCUnable to compose the engine DF GHI Jg Kg LMN Og.com/example/mp4composer/composer/Mp4Composer$2java/lang/Objectjava/lang/Runnablejava/lang/Integer com/example/mp4composer/Rotation,com/example/mp4composer/composer/Mp4Composerstart0()Lcom/example/mp4composer/composer/Mp4Composer; access$100W(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/logger/Logger; access$102~(Lcom/example/mp4composer/composer/Mp4Composer;Lcom/example/mp4composer/logger/Logger;)Lcom/example/mp4composer/logger/Logger;*(Lcom/example/mp4composer/logger/Logger;)V access$202(Lcom/example/mp4composer/composer/Mp4Composer;Lcom/example/mp4composer/composer/Mp4ComposerEngine;)Lcom/example/mp4composer/composer/Mp4ComposerEngine; access$200d(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/composer/Mp4ComposerEngine;3(Lcom/example/mp4composer/composer/Mp4Composer$2;)VsetProgressCallbackPProgressCallbackH(Lcom/example/mp4composer/composer/Mp4ComposerEngine$ProgressCallback;)V access$400[(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/source/DataSource; access$500n(Lcom/example/mp4composer/composer/Mp4Composer;Lcom/example/mp4composer/source/DataSource;)Ljava/lang/Integer; access$600n(Lcom/example/mp4composer/composer/Mp4Composer;Lcom/example/mp4composer/source/DataSource;)Landroid/util/Size;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;(Ljava/lang/String;)V access$000F(Lcom/example/mp4composer/composer/Mp4Composer;Ljava/lang/Exception;)V access$700Y(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/filter/GlFilter; access$702(Lcom/example/mp4composer/composer/Mp4Composer;Lcom/example/mp4composer/filter/GlFilter;)Lcom/example/mp4composer/filter/GlFilter; access$800R(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/FillMode; com/example/mp4composer/FillModePRESERVE_ASPECT_FIT"Lcom/example/mp4composer/FillMode; access$802t(Lcom/example/mp4composer/composer/Mp4Composer;Lcom/example/mp4composer/FillMode;)Lcom/example/mp4composer/FillMode;CUSTOM access$900\(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/FillModeCustomItem; access$1000C(Lcom/example/mp4composer/composer/Mp4Composer;)Landroid/util/Size; access$1002V(Lcom/example/mp4composer/composer/Mp4Composer;Landroid/util/Size;)Landroid/util/Size; access$1100R(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/Rotation; getRotation()IintValuefromInt%(I)Lcom/example/mp4composer/Rotation; ROTATION_90 ROTATION_270 getHeightgetWidth(II)V access$12001(Lcom/example/mp4composer/composer/Mp4Composer;)F access$12022(Lcom/example/mp4composer/composer/Mp4Composer;F)F access$1300K(Lcom/example/mp4composer/composer/Mp4Composer;)Landroid/opengl/EGLContext;android/opengl/EGL14EGL_NO_CONTEXTLandroid/opengl/EGLContext; access$1302f(Lcom/example/mp4composer/composer/Mp4Composer;Landroid/opengl/EGLContext;)Landroid/opengl/EGLContext; access$1400(I)Ljava/lang/StringBuilder;%com/example/mp4composer/logger/Loggerdebug'(Ljava/lang/String;Ljava/lang/String;)V access$15001(Lcom/example/mp4composer/composer/Mp4Composer;)I access$16003(Lcom/example/mp4composer/composer/Mp4Composer;II)I access$15022(Lcom/example/mp4composer/composer/Mp4Composer;I)I access$1700B(Lcom/example/mp4composer/composer/Mp4Composer;)Ljava/lang/String; access$1800H(Lcom/example/mp4composer/composer/Mp4Composer;)Ljava/io/FileDescriptor; access$19001(Lcom/example/mp4composer/composer/Mp4Composer;)Z access$2000 access$2100 access$2200 access$23001(Lcom/example/mp4composer/composer/Mp4Composer;)J access$2400 access$2500](Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/VideoFormatMimeType;composeg(Lcom/example/mp4composer/source/DataSource;Ljava/lang/String;Ljava/io/FileDescriptor;Landroid/util/Size;Lcom/example/mp4composer/filter/GlFilter;IZLcom/example/mp4composer/Rotation;Landroid/util/Size;Lcom/example/mp4composer/FillMode;Lcom/example/mp4composer/FillModeCustomItem;FZZZJJLcom/example/mp4composer/VideoFormatMimeType;Landroid/opengl/EGLContext;)Vandroid/media/MediaCodecerror<(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V access$300Listenerg(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/composer/Mp4Composer$Listener; isCanceled()Z5com/example/mp4composer/composer/Mp4Composer$Listener onCanceled onCompleted access$2600V(Lcom/example/mp4composer/composer/Mp4Composer;)Ljava/util/concurrent/ExecutorService;$java/util/concurrent/ExecutorServiceshutdownCcom/example/mp4composer/composer/Mp4ComposerEngine$ProgressCallback YZ[]^_`a> *+*bc de ]^fga**YW*Y* W* Y* **L**M,++*YY***YW** W*!*"*#Y$%*"*! W*&`*!*,'WG*()+*`+N-, --*.Y,/,01'W *,'W*23*34W*25 *54W*6*78W*9Y:*()+*`;<*9Y:*()+*`+<*9Y=,0;>,/;<*9Y?*&0;>*&/;<*9Y@*<*A&***&0*&/BCW* **D*E*&**A*F*()+*`+,**"*2*G*H*I*J*K*L*6MAN-O*9P-Q*-*9R-Q*-*S+* T*SU*SV*WX* WadNb*J /AP_g   0>Xa#n${%&)*-. /;0x145789:;<=> ?A#B*C1D8E?FFGMHTI[J^7aWdMeNlO~PQTUVYZ[]`abc401hie=jkdePlm_nop3Mqr''" s%t"t% u vwIxyz{|}\*Y O|E PK!!]hh;com/example/mp4composer/composer/Mp4Composer$Listener.class3  onProgress(D)V onCompleted()V onCanceledonFailed(Ljava/lang/Exception;)V SourceFileMp4Composer.java5com/example/mp4composer/composer/Mp4Composer$ListenerListener InnerClassesjava/lang/Object,com/example/mp4composer/composer/Mp4Composer      PK!!F!;I;I2com/example/mp4composer/composer/Mp4Composer.class3 \1 \2 \3 \4 \5 \6 \7 \8 \9 \: \; \< \= \> \? \@ \A \B \C \D \E \F \G \H \I \J \KL M \N ^M OP QR STU %V \WX (YZ *[ \\] -^ _`ab 0c \de 4f Qg hi \jk 9V lm _n lo pqr ?M st ?u ?v ?wxy z{ |}~ |@ QM Q Q Q z | Listener InnerClassesTAGLjava/lang/String; srcDataSource+Lcom/example/mp4composer/source/DataSource;destPathdestFileDescriptorLjava/io/FileDescriptor;filter)Lcom/example/mp4composer/filter/GlFilter;outputResolutionLandroid/util/Size;bitrateImuteZrotation"Lcom/example/mp4composer/Rotation;listener7Lcom/example/mp4composer/composer/Mp4Composer$Listener;fillMode"Lcom/example/mp4composer/FillMode;fillModeCustomItem,Lcom/example/mp4composer/FillModeCustomItem; timeScaleFisPitchChanged flipVerticalflipHorizontal trimStartMsJ trimEndMsvideoFormatMimeType-Lcom/example/mp4composer/VideoFormatMimeType; shareContextLandroid/opengl/EGLContext;executorService&Ljava/util/concurrent/ExecutorService;engine4Lcom/example/mp4composer/composer/Mp4ComposerEngine;logger'Lcom/example/mp4composer/logger/Logger;errorDataSource4Lcom/example/mp4composer/source/DataSource$Listener;'(Ljava/lang/String;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis.Lcom/example/mp4composer/composer/Mp4Composer;srcPath$RuntimeInvisibleParameterAnnotationsLandroidx/annotation/NonNull;N(Ljava/lang/String;Ljava/lang/String;Lcom/example/mp4composer/logger/Logger;)V-(Ljava/io/FileDescriptor;Ljava/lang/String;)VsrcFileDescriptor?(Landroid/net/Uri;Ljava/lang/String;Landroid/content/Context;)VsrcUriLandroid/net/Uri;contextLandroid/content/Context;f(Landroid/net/Uri;Ljava/lang/String;Landroid/content/Context;Lcom/example/mp4composer/logger/Logger;)V3(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;)V StackMapTableRuntimeInvisibleAnnotationsLandroid/annotation/TargetApi;valueE(Landroid/net/Uri;Ljava/io/FileDescriptor;Landroid/content/Context;)Vl(Landroid/net/Uri;Ljava/io/FileDescriptor;Landroid/content/Context;Lcom/example/mp4composer/logger/Logger;)VY(Lcom/example/mp4composer/filter/GlFilter;)Lcom/example/mp4composer/composer/Mp4Composer;size2(II)Lcom/example/mp4composer/composer/Mp4Composer;widthheight!Landroidx/annotation/RequiresApi;api videoBitrate1(I)Lcom/example/mp4composer/composer/Mp4Composer;1(Z)Lcom/example/mp4composer/composer/Mp4Composer;R(Lcom/example/mp4composer/Rotation;)Lcom/example/mp4composer/composer/Mp4Composer;R(Lcom/example/mp4composer/FillMode;)Lcom/example/mp4composer/composer/Mp4Composer;customFillMode\(Lcom/example/mp4composer/FillModeCustomItem;)Lcom/example/mp4composer/composer/Mp4Composer;g(Lcom/example/mp4composer/composer/Mp4Composer$Listener;)Lcom/example/mp4composer/composer/Mp4Composer;1(F)Lcom/example/mp4composer/composer/Mp4Composer; changePitch](Lcom/example/mp4composer/VideoFormatMimeType;)Lcom/example/mp4composer/composer/Mp4Composer;W(Lcom/example/mp4composer/logger/Logger;)Lcom/example/mp4composer/composer/Mp4Composer;trim2(JJ)Lcom/example/mp4composer/composer/Mp4Composer;K(Landroid/opengl/EGLContext;)Lcom/example/mp4composer/composer/Mp4Composer;getExecutorService(()Ljava/util/concurrent/ExecutorService;start0()Lcom/example/mp4composer/composer/Mp4Composer;"notifyListenerOfFailureAndShutdown(Ljava/lang/Exception;)VfailureLjava/lang/Exception;cancel()VgetVideoRotation@(Lcom/example/mp4composer/source/DataSource;)Ljava/lang/Integer;eLjava/lang/RuntimeException; orientation$Ljava/lang/IllegalArgumentException; dataSourcemediaMetadataRetriever&Landroid/media/MediaMetadataRetriever;rxaLandroidx/annotation/Nullable; calcBitRate(II)IgetVideoResolution@(Lcom/example/mp4composer/source/DataSource;)Landroid/util/Size;rawWidth rawHeight retrievere access$000F(Lcom/example/mp4composer/composer/Mp4Composer;Ljava/lang/Exception;)Vx0x1 access$100W(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/logger/Logger; access$102~(Lcom/example/mp4composer/composer/Mp4Composer;Lcom/example/mp4composer/logger/Logger;)Lcom/example/mp4composer/logger/Logger; access$202(Lcom/example/mp4composer/composer/Mp4Composer;Lcom/example/mp4composer/composer/Mp4ComposerEngine;)Lcom/example/mp4composer/composer/Mp4ComposerEngine; access$300g(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/composer/Mp4Composer$Listener; access$200d(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/composer/Mp4ComposerEngine; access$400[(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/source/DataSource; access$500n(Lcom/example/mp4composer/composer/Mp4Composer;Lcom/example/mp4composer/source/DataSource;)Ljava/lang/Integer; access$600n(Lcom/example/mp4composer/composer/Mp4Composer;Lcom/example/mp4composer/source/DataSource;)Landroid/util/Size; access$700Y(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/filter/GlFilter; access$702(Lcom/example/mp4composer/composer/Mp4Composer;Lcom/example/mp4composer/filter/GlFilter;)Lcom/example/mp4composer/filter/GlFilter; access$800R(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/FillMode; access$802t(Lcom/example/mp4composer/composer/Mp4Composer;Lcom/example/mp4composer/FillMode;)Lcom/example/mp4composer/FillMode; access$900\(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/FillModeCustomItem; access$1000C(Lcom/example/mp4composer/composer/Mp4Composer;)Landroid/util/Size; access$1002V(Lcom/example/mp4composer/composer/Mp4Composer;Landroid/util/Size;)Landroid/util/Size; access$1100R(Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/Rotation; access$12001(Lcom/example/mp4composer/composer/Mp4Composer;)F access$12022(Lcom/example/mp4composer/composer/Mp4Composer;F)F access$1300K(Lcom/example/mp4composer/composer/Mp4Composer;)Landroid/opengl/EGLContext; access$1302f(Lcom/example/mp4composer/composer/Mp4Composer;Landroid/opengl/EGLContext;)Landroid/opengl/EGLContext; access$1400()Ljava/lang/String; access$15001(Lcom/example/mp4composer/composer/Mp4Composer;)I access$15022(Lcom/example/mp4composer/composer/Mp4Composer;I)I access$16003(Lcom/example/mp4composer/composer/Mp4Composer;II)Ix2 access$1700B(Lcom/example/mp4composer/composer/Mp4Composer;)Ljava/lang/String; access$1800H(Lcom/example/mp4composer/composer/Mp4Composer;)Ljava/io/FileDescriptor; access$19001(Lcom/example/mp4composer/composer/Mp4Composer;)Z access$2000 access$2100 access$2200 access$23001(Lcom/example/mp4composer/composer/Mp4Composer;)J access$2400 access$2500](Lcom/example/mp4composer/composer/Mp4Composer;)Lcom/example/mp4composer/VideoFormatMimeType; access$2600V(Lcom/example/mp4composer/composer/Mp4Composer;)Ljava/util/concurrent/ExecutorService; SourceFileMp4Composer.java  ~ }p |p {p op gh fc mn bc yz qr kl wx uv ij de st ,com/example/mp4composer/logger/AndroidLogger  r v .com/example/mp4composer/composer/Mp4Composer$1  1com/example/mp4composer/source/FilePathDataSource 7com/example/mp4composer/source/FileDescriptorDataSource  ,com/example/mp4composer/source/UriDataSource  n"java/lang/IllegalArgumentExceptiondestFileDescriptor can not use  android/util/Size  v  .com/example/mp4composer/composer/Mp4Composer$2    $android/media/MediaMetadataRetriever    java/lang/RuntimeException)Failed to release mediaMetadataRetriever.  MediaMetadataRetriever)getVideoRotation IllegalArgumentException !getVideoRotation RuntimeExceptionjava/lang/ExceptiongetVideoRotation Exceptionjava/lang/StringBuilderbitrate=     +getVideoResolution IllegalArgumentException#getVideoResolution RuntimeExceptiongetVideoResolution Exception,com/example/mp4composer/composer/Mp4Composer java/lang/Object5com/example/mp4composer/composer/Mp4Composer$Listener2com/example/mp4composer/source/DataSource$Listenerjava/io/FileDescriptorandroid/net/Uriandroid/content/Context%com/example/mp4composer/logger/Loggerjava/lang/Stringjava/lang/Integer)com/example/mp4composer/source/DataSourcejava/lang/Throwable com/example/mp4composer/RotationNORMAL com/example/mp4composer/FillModePRESERVE_ASPECT_FIT+com/example/mp4composer/VideoFormatMimeTypeAUTO1(Lcom/example/mp4composer/composer/Mp4Composer;)Vp(Ljava/lang/String;Lcom/example/mp4composer/logger/Logger;Lcom/example/mp4composer/source/DataSource$Listener;)V(Ljava/io/FileDescriptor;)V(Landroid/net/Uri;Landroid/content/Context;Lcom/example/mp4composer/logger/Logger;Lcom/example/mp4composer/source/DataSource$Listener;)Vandroid/os/Build$VERSIONVERSIONSDK_INT(Ljava/lang/String;)V(II)VCUSTOMjava/util/concurrent/ExecutorsnewSingleThreadExecutor$java/util/concurrent/ExecutorServiceexecute(Ljava/lang/Runnable;)VonFailedshutdown2com/example/mp4composer/composer/Mp4ComposerEnginegetFileDescriptor()Ljava/io/FileDescriptor; setDataSourceextractMetadata(I)Ljava/lang/String;releaseerror<(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)VvalueOf'(Ljava/lang/String;)Ljava/lang/Integer;(I)Ljava/lang/Integer;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;toStringdebugparseInt(Ljava/lang/String;)Ijava/lang/Class getSimpleNameandroid/os/Build!\^bcdefcghijklmnopqrstuvwxyz{p|p}p~CP*+,Y K L cfc k** ** *!* **** *"*$*%Y*&'*-*(Y+-*')*, FN/ 0135!6&7+8095:<;CCOOTPeQjR*kkckfcka** ** *!* **** *"*$*%Y*&'**Y++*, BT/ 0135!6&7+8095:<;CCOU[V`W aahafc [*+,-Y, Z[*fcn** ** *!* **** *"*$*%Y*&'**-Y+-*'.*, F]/ 0135!6&7+8095:<;CCO^U_h`ma4nnnfcnnx** ** *!* **** *"*$*%Y*&'/ 0Y12**Y++* *, Nd/ 0135!6&7+8095:<;CCOeWfahmirjwk xxhxgha I [*+,-Y3 op*gh IA** ** *!* **** *"*$*%Y*&'/ 0Y12**-Y+-*'.* *, Rs/ 0135!6&7+8095:<;CCOtWuawgxzyz{4gha Ii?*+* ~ijQ*4Y5*  nn I?* * mno?** op|?** |p}?** }pq?*+* qru?*+* uvJ*+*6* wxs?*+* sty?*#* yz?** {p?*+* ?*+* R **!*  ~ ?*+* N* *7* [***89Y*:;* e  p"* *+<* *=ijlm!o""J* *>rsu )M?Y@M,+AB,CN-&:,,D:* FG-H:,,D:* FGN*IJ-GK:,,D:* FGN*IL-GK:,,D:* FGN*IN-GK:,,D:* FG:,,D:* FG"*-EHPSE"h0BHh0}E"EBHEE"MBHME"BHh} E 5 "&*-/?BHLPSUehiw}  & /UMci444))e'*B BBBB B|,Okk>* QYRSTUVW **,,n,n !mn0 AM?Y@M,+AB,CN,C:-&:,,D:* FG-X6X64Y5:,,D:* FGN*IY-G:,,D:* FGN*IZ-G:,,D:* FGN*I[-G:,,D:* FG: ,,D: * F G /7:EiqtE/0Oi0E/EOiEE/MOiM E/Oi!),E!8 #,/37:<LOU\imqtv  !%),.><vnc#fcU4n\-n11 1. AAe?, B!BBBB B:*+&/*& ;*+Z&;*+Z&/*& /*& /*& :*+&e:*+&e/*& ;*+Z&j/*& ;*+Z&v/*& /*&   ;*+Z&l  /*&  /*& ;*#Z&z/*& ;*+Z& &/* & ;*Z &nE* & nn/* &  !/* & "#/*& $#/*& %#/*& &#/*& '(/*& )(/*& *+/*& ,-/*& .! \] (/0a*_\` 9%s` _ PK!!1++Icom/example/mp4composer/composer/Mp4ComposerEngine$ProgressCallback.class3   onProgress(D)V SourceFileMp4ComposerEngine.java Ccom/example/mp4composer/composer/Mp4ComposerEngine$ProgressCallbackProgressCallback InnerClassesjava/lang/Object2com/example/mp4composer/composer/Mp4ComposerEngine  PK!!U.U.8com/example/mp4composer/composer/Mp4ComposerEngine.class3 ~                ! "#$%&  ' ( ) * +,- $. / 012 (34 567 8:< (=> 2? @ 2A B C?zG?(\) ~DEF =G HI AJ KL M N O 2P KP PQR +S PT PU VW RX YZ Y[ \ R] Y^ Y_ Y` Yab 5D ( (cdfh (ij kl km (nopq s 2t Kt 2u Ku 2v wx Kv@ yz{|}ProgressCallback InnerClassesTAGLjava/lang/String; ConstantValue AUDIO_PREFIX VIDEO_PREFIXPROGRESS_UNKNOWNDSLEEP_TO_WAIT_TRACK_TRANSCODERSJPROGRESS_INTERVAL_STEPS videoComposer0Lcom/example/mp4composer/composer/VideoComposer; audioComposer1Lcom/example/mp4composer/composer/IAudioComposer;mediaExtractorLandroid/media/MediaExtractor; mediaMuxerLandroid/media/MediaMuxer;progressCallbackELcom/example/mp4composer/composer/Mp4ComposerEngine$ProgressCallback; durationUsmediaMetadataRetriever&Landroid/media/MediaMetadataRetriever;canceledZlogger'Lcom/example/mp4composer/logger/Logger;*(Lcom/example/mp4composer/logger/Logger;)VCodeLineNumberTableLocalVariableTablethis4Lcom/example/mp4composer/composer/Mp4ComposerEngine;$RuntimeInvisibleParameterAnnotationsLandroidx/annotation/NonNull;setProgressCallbackH(Lcom/example/mp4composer/composer/Mp4ComposerEngine$ProgressCallback;)Vcomposeg(Lcom/example/mp4composer/source/DataSource;Ljava/lang/String;Ljava/io/FileDescriptor;Landroid/util/Size;Lcom/example/mp4composer/filter/GlFilter;IZLcom/example/mp4composer/Rotation;Landroid/util/Size;Lcom/example/mp4composer/FillMode;Lcom/example/mp4composer/FillModeCustomItem;FZZZJJLcom/example/mp4composer/VideoFormatMimeType;Landroid/opengl/EGLContext;)Ve!Ljava/lang/NumberFormatException; mediaFormatLandroid/media/MediaFormat;mimeTypeiIinputMediaFormatoutputMediaFormat muxRender,Lcom/example/mp4composer/composer/MuxRender;videoTrackIndexaudioTrackIndexactualVideoOutputFormatLjava/lang/RuntimeException; srcDataSource+Lcom/example/mp4composer/source/DataSource;destSrcdestFileDescriptorLjava/io/FileDescriptor;outputResolutionLandroid/util/Size;filter)Lcom/example/mp4composer/filter/GlFilter;bitratemuterotation"Lcom/example/mp4composer/Rotation;inputResolutionfillMode"Lcom/example/mp4composer/FillMode;fillModeCustomItem,Lcom/example/mp4composer/FillModeCustomItem; timeScaleFisPitchChanged flipVerticalflipHorizontal trimStartMs trimEndMsvideoFormatMimeType-Lcom/example/mp4composer/VideoFormatMimeType; shareContextLandroid/opengl/EGLContext; StackMapTable#$~-1Q ExceptionsRuntimeInvisibleAnnotations!Landroid/annotation/SuppressLint;valueNewApi!Landroidx/annotation/RequiresApi;apicancel()V isCanceled()Z,createVideoOutputFormatWithAvailableEncoders^(Lcom/example/mp4composer/VideoFormatMimeType;ILandroid/util/Size;)Landroid/media/MediaFormat;mediaCodecListLandroid/media/MediaCodecList;hevcMediaFormatavcMediaFormatmp4vesMediaFormatWcreateAudioOutputFormat8(Landroid/media/MediaFormat;)Landroid/media/MediaFormat; outputFormat inputFormatcreateVideoFormatC(Ljava/lang/String;ILandroid/util/Size;)Landroid/media/MediaFormat; runPipelines videoProgress audioProgressprogressstepped loopCount{runPipelinesNoAudio SourceFileMp4ComposerEngine.java android/media/MediaExtractor ~   android/media/MediaMuxer%android/media/MediaMuxer$OutputFormat OutputFormat  $android/media/MediaMetadataRetriever   java/lang/NumberFormatException2com/example/mp4composer/composer/Mp4ComposerEngineMp4ComposerEnginejava/lang/StringBuilderDuration (us):    *com/example/mp4composer/composer/MuxRender   android/media/MediaFormatmime video/ audio/ android/os/Build$VERSION_CODES VERSION_CODES frame-rate .com/example/mp4composer/composer/VideoComposer    .com/example/mp4composer/composer/AudioComposerjava/util/logging/Logger  3com/example/mp4composer/composer/RemixAudioComposer      java/lang/RuntimeExceptionBCould not shutdown mediaExtractor, codecs and mediaMuxer pipeline. Failed to release mediaMuxer.)Failed to release mediaMetadataRetriever. android/media/MediaCodecList         audio/mp4a-latm  aac-profile.android/media/MediaCodecInfo$CodecProfileLevelCodecProfileLevel sample-rate  channel-count   i-frame-interval color-format.android/media/MediaCodecInfo$CodecCapabilitiesCodecCapabilities      java/lang/InterruptedExceptionjava/lang/ObjectCcom/example/mp4composer/composer/Mp4ComposerEngine$ProgressCallback)com/example/mp4composer/source/DataSourcejava/lang/Stringjava/io/FileDescriptorandroid/util/Size'com/example/mp4composer/filter/GlFilter com/example/mp4composer/Rotation com/example/mp4composer/FillMode*com/example/mp4composer/FillModeCustomItem+com/example/mp4composer/VideoFormatMimeTypeandroid/opengl/EGLContextjava/lang/Throwablejava/io/IOExceptiongetFileDescriptor()Ljava/io/FileDescriptor; setDataSource(Ljava/io/FileDescriptor;)Vandroid/os/Build$VERSIONVERSIONSDK_INT(Ljava/io/FileDescriptor;I)V(Ljava/lang/String;I)VextractMetadata(I)Ljava/lang/String;java/lang/Long parseLong(Ljava/lang/String;)Jappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(J)Ljava/lang/StringBuilder;toString()Ljava/lang/String;%com/example/mp4composer/logger/Loggerdebug'(Ljava/lang/String;Ljava/lang/String;)VD(Landroid/media/MediaMuxer;Lcom/example/mp4composer/logger/Logger;)V getTrackCount()IgetTrackFormat(I)Landroid/media/MediaFormat; getString&(Ljava/lang/String;)Ljava/lang/String; startsWith(Ljava/lang/String;)Zandroid/os/Build setInteger(Landroid/media/MediaExtractor;ILandroid/media/MediaFormat;Lcom/example/mp4composer/composer/MuxRender;FJJLcom/example/mp4composer/logger/Logger;)VsetUp(Lcom/example/mp4composer/filter/GlFilter;Lcom/example/mp4composer/Rotation;Landroid/util/Size;Landroid/util/Size;Lcom/example/mp4composer/FillMode;Lcom/example/mp4composer/FillModeCustomItem;ZZLandroid/opengl/EGLContext;)V selectTrack(I)Vequals(Ljava/lang/Object;)Zj(Landroid/media/MediaExtractor;ILcom/example/mp4composer/composer/MuxRender;JJLjava/util/logging/Logger;)Vm(Landroid/media/MediaExtractor;ILandroid/media/MediaFormat;Lcom/example/mp4composer/composer/MuxRender;FZJJ)V/com/example/mp4composer/composer/IAudioComposersetupstopreleaseerror<(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)VAUTO getFormatfindEncoderForFormat/(Landroid/media/MediaFormat;)Ljava/lang/String;HEVCAVCMPEG4H263 setStringandroid/media/MediaCodecInfo getInteger(Ljava/lang/String;)IgetWidth getHeight1(Ljava/lang/String;II)Landroid/media/MediaFormat; onProgress(D)V isFinished stepPipelinegetWrittenPresentationTimeUs()Jjava/lang/Mathmin(DD)Djava/lang/Threadsleep(J)V ~-+nuuB F **+56 7 >*+ :; I*Y*+ ,* Y- * Y, *Y*+** i :**Y *!"#$Y* *%:666*&D*':)*:"+, 6-,6.:  01*2Y* *34*4   5*6**':7: 88 :.<$*=Y**>?@ *AY*  B@*@C*6*D*E* F*4*4G*4*@*@H*@**I*:*KL* * M* :*NL**O*:*PL:*4*4G*4*@*@H*@**I*:*KL* * M* :*NL**O*:*PL YmpADJUhkJ|JJ  J14Jz^V WX$Y4[A]L^Y`mcparbydfijklmnopqrkv wy}<~U^t  ).5<ADFU\chkm|  %,146EHj$r0'Myr[XU Fm6IIIIIIIIII I I I I IIIIII1%4 n:' BBBSBBB[sI4*Q  /*Q  F~RYSN*T*U,V:-WXU,V:-WYU,V:-WZU,V:-W[U,V> $'4=@MVYforR ~~~ u4JM1f'I J\*)*]*(Y^L+)\_+`'1+b*bc1+de1+f*fc1+6  (.14<BEH2J 5*,g,hiN-d1  -01-j1-km1-*  $+ 3 *555 ($I @* **np*Q*4q*@r*4s*@t> a@* ruq h*4q*4w*ox9*@r*@y*ox9czo9**pu|:<}R ;IW[n !$&)'+,>CW" @%QSL  I @ @* **np*Qr*4qh*4s> a@* Auq 7*4q*4w*ox9**pu|:}F01 236/778;9N:p;w<?ADBFI*p7Z=QL  I  2 /9; aegler9 PK!!2com/example/mp4composer/composer/MuxRender$1.class3)     -$SwitchMap$com$example$mp4composer$SampleType[I()VCodeLineNumberTableLocalVariableTable StackMapTable SourceFileMuxRender.javaEnclosingMethod ! "# $% &'java/lang/NoSuchFieldError (%,com/example/mp4composer/composer/MuxRender$1 InnerClassesjava/lang/Object*com/example/mp4composer/composer/MuxRender"com/example/mp4composer/SampleTypevalues'()[Lcom/example/mp4composer/SampleType;VIDEO$Lcom/example/mp4composer/SampleType;ordinal()IAUDIO    j( OKOK #&* WM PK!!$;com/example/mp4composer/composer/MuxRender$SampleInfo.class3F 3 4 5 6 7 8 8 9 9 :<= sampleType$Lcom/example/mp4composer/SampleType;sizeIpresentationTimeUsJflags? BufferInfo InnerClassesM(Lcom/example/mp4composer/SampleType;ILandroid/media/MediaCodec$BufferInfo;)VCodeLineNumberTableLocalVariableTablethis SampleInfo7Lcom/example/mp4composer/composer/MuxRender$SampleInfo; bufferInfo%Landroid/media/MediaCodec$BufferInfo;writeToBufferInfo)(Landroid/media/MediaCodec$BufferInfo;I)Voffset access$000`(Lcom/example/mp4composer/composer/MuxRender$SampleInfo;Landroid/media/MediaCodec$BufferInfo;I)Vx0x1x2 access$100](Lcom/example/mp4composer/composer/MuxRender$SampleInfo;)Lcom/example/mp4composer/SampleType; access$200:(Lcom/example/mp4composer/composer/MuxRender$SampleInfo;)I@{(Lcom/example/mp4composer/SampleType;ILandroid/media/MediaCodec$BufferInfo;Lcom/example/mp4composer/composer/MuxRender$1;)Vx3.Lcom/example/mp4composer/composer/MuxRender$1; SourceFileMuxRender.java    !" A   BCD5com/example/mp4composer/composer/MuxRender$SampleInfojava/lang/ObjectE#android/media/MediaCodec$BufferInfo,com/example/mp4composer/composer/MuxRender$1()Vset(IIJI)V*com/example/mp4composer/composer/MuxRenderandroid/media/MediaCodec  {**+**-*- }~ *  !"T+***    #$%E*+w &' ()*/*w &+,/*w &.Z*+-w4&'( /012> ; -PK!!Wf60com/example/mp4composer/composer/MuxRender.class3 ?} ~  }  @   }  }           (}  - -  - ( (  -  InnerClasses SampleInfoTAGLjava/lang/String; ConstantValue BUFFER_SIZEImuxerLandroid/media/MediaMuxer; videoFormatLandroid/media/MediaFormat; audioFormatvideoTrackIndexaudioTrackIndex byteBufferLjava/nio/ByteBuffer;sampleInfoListLjava/util/List; SignatureILjava/util/List;startedZlogger'Lcom/example/mp4composer/logger/Logger;D(Landroid/media/MediaMuxer;Lcom/example/mp4composer/logger/Logger;)VCodeLineNumberTableLocalVariableTablethis,Lcom/example/mp4composer/composer/MuxRender;$RuntimeInvisibleParameterAnnotationsLandroidx/annotation/NonNull;setOutputFormatB(Lcom/example/mp4composer/SampleType;Landroid/media/MediaFormat;)V sampleType$Lcom/example/mp4composer/SampleType;format StackMapTableonSetOutputFormat()V sampleInfo7Lcom/example/mp4composer/composer/MuxRender$SampleInfo; bufferInfo BufferInfo%Landroid/media/MediaCodec$BufferInfo;offsetRuntimeInvisibleAnnotations!Landroidx/annotation/RequiresApi;apiwriteSampleDataa(Lcom/example/mp4composer/SampleType;Ljava/nio/ByteBuffer;Landroid/media/MediaCodec$BufferInfo;)VbyteBufgetTrackIndexForSampleType'(Lcom/example/mp4composer/SampleType;)I SourceFileMuxRender.java Yi HI WXjava/util/ArrayList QR  JK LKjava/lang/AssertionError MG*com/example/mp4composer/composer/MuxRender MuxRenderjava/lang/StringBuilder Added track #  with android/media/MediaFormatmime  to muxer  NG i UV OP "Output format determined, writing   samples /  bytes to muxer.#android/media/MediaCodec$BufferInfo  5com/example/mp4composer/composer/MuxRender$SampleInfo yz v i oG G  Y java/lang/Object,com/example/mp4composer/composer/MuxRender$1java/util/Iterator-$SwitchMap$com$example$mp4composer$SampleType[I"com/example/mp4composer/SampleTypeordinal()Iandroid/media/MediaMuxeraddTrack(Landroid/media/MediaFormat;)Iappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder; getString&(Ljava/lang/String;)Ljava/lang/String;toString()Ljava/lang/String;%com/example/mp4composer/logger/Loggerdebug'(Ljava/lang/String;Ljava/lang/String;)Vstartjava/nio/ByteBufferallocate(I)Ljava/nio/ByteBuffer;flip()Ljava/nio/Buffer;java/util/Listsizelimitandroid/media/MediaCodeciterator()Ljava/util/Iterator;hasNext()Znext()Ljava/lang/Object; access$000`(Lcom/example/mp4composer/composer/MuxRender$SampleInfo;Landroid/media/MediaCodec$BufferInfo;I)V access$100](Lcom/example/mp4composer/composer/MuxRender$SampleInfo;)Lcom/example/mp4composer/SampleType;>(ILjava/nio/ByteBuffer;Landroid/media/MediaCodec$BufferInfo;)V access$200:(Lcom/example/mp4composer/composer/MuxRender$SampleInfo;)Iclear(I)Ljava/nio/Buffer;positionallocateDirectjava/nio/ByteOrder nativeOrder()Ljava/nio/ByteOrder;order+(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;put,(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;{(Lcom/example/mp4composer/SampleType;ILandroid/media/MediaCodec$BufferInfo;Lcom/example/mp4composer/composer/MuxRender$1;)Vadd(Ljava/lang/Object;)Z ? CDEFGE8HIJKLKMGNGOPQRSTUVWXYZ[h**+*,*Y\#$ %&'] ^_HIWX` aabc[=+.,$*, *, Y \*$,)-,/1042<4] =^_=de=fKg$hi[m* * *** *Y** *** *Y** P* I*** *Y** *** *! * "W*Y#*$%* &'(Y)L=**N-+5-,-:+.**/0* +12`=*3* \j9;<T=c>@BCGHJKM N4OBNGPOQQRoSvTUVWX[]*o$jk^_OVlnQToGgLUpq:r stIuvw[e***+0,-1,-4-5`6W,-47W* *89:; * ,W\* _`ac$d-e4fChLidj]*e^_edeexPelng,r stIuyz[6+.&!** Y \m$o)q.s]6^_6deg${|A@-B (mPK!!k9com/example/mp4composer/composer/RemixAudioComposer.class3? R  ) ) ) ) ) ) ) ) ) ) 3   )    ) 3  ) ) # ) ) # ) # ) ) 3    3 3 3 3 )   #  #   ) ) A ) )     )    SAMPLE_TYPE$Lcom/example/mp4composer/SampleType;DRAIN_STATE_NONEI ConstantValue$DRAIN_STATE_SHOULD_RETRY_IMMEDIATELYDRAIN_STATE_CONSUMED extractorLandroid/media/MediaExtractor;muxer,Lcom/example/mp4composer/composer/MuxRender;writtenPresentationTimeUsJ trackIndex outputFormatLandroid/media/MediaFormat; bufferInfo BufferInfo InnerClasses%Landroid/media/MediaCodec$BufferInfo;decoderLandroid/media/MediaCodec;encoderactualOutputFormatisExtractorEOSZ isDecoderEOS isEncoderEOSdecoderStartedencoderStarted audioChannel5Lcom/example/mp4composer/composer/AudioChannelWithSP; timeScaleFisPitchChanged trimStartUs trimEndUs numTracksaddPrimingDelay frameCounter primingDelaym(Landroid/media/MediaExtractor;ILandroid/media/MediaFormat;Lcom/example/mp4composer/composer/MuxRender;FZJJ)VCodeLineNumberTableLocalVariableTablethis5Lcom/example/mp4composer/composer/RemixAudioComposer; trimStartMs trimEndMs StackMapTablesetup()VeLjava/io/IOException; inputFormat stepPipeline()ZstatusbusyRuntimeInvisibleAnnotations!Landroidx/annotation/RequiresApi;apidrainExtractor(J)I timeoutUsresult sampleSize isKeyFrame drainDecoder drainEncodergetWrittenPresentationTimeUs()J isFinishedrelease SourceFileRemixAudioComposer.java #android/media/MediaCodec$BufferInfo gj |W ^_ dW ef `a wx yp   zc {c android/media/MediaFormatmime     mljava/io/IOExceptionjava/lang/IllegalStateException  android/media/MediaCodec   tp   kl sp3com/example/mp4composer/composer/AudioChannelWithSP  uv  3com/example/mp4composer/composer/RemixAudioComposer  op      !android/media/MediaExtractor " # qp $% &' () *W-com/example/mp4composer/composer/AudioChannel +, -W .c rp nfjava/lang/RuntimeException"Audio output format changed twice. /audio/mp4a-latm0 12 }p TU 34)Could not determine actual output format. 56 78 9 :; bc < = >Ujava/lang/Object/com/example/mp4composer/composer/IAudioComposer*com/example/mp4composer/composer/MuxRenderjava/util/concurrent/TimeUnit MILLISECONDSLjava/util/concurrent/TimeUnit;toMicros(J)J selectTrack(I)V getString&(Ljava/lang/String;)Ljava/lang/String;createEncoderByType.(Ljava/lang/String;)Landroid/media/MediaCodec;(Ljava/lang/Throwable;)V configureP(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)VstartgetTrackFormat(I)Landroid/media/MediaFormat;createDecoderByTypeT(Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/media/MediaFormat;FZ)VisAnyPendingBuffIndex feedEncoder(J)ZgetSampleTrackIndex()IdequeueInputBufferqueueInputBuffer(IIIJI)VgetInputBuffer(I)Ljava/nio/ByteBuffer;readSampleData(Ljava/nio/ByteBuffer;I)IgetSampleFlags getSampleTimeadvancedequeueOutputBuffer)(Landroid/media/MediaCodec$BufferInfo;J)IgetOutputFormat()Landroid/media/MediaFormat;setActualDecodedFormat(Landroid/media/MediaFormat;)VflagsdrainDecoderBufferAndQueue(IJ)VsizepresentationTimeUs(Ljava/lang/String;)Vjava/lang/Stringequals(Ljava/lang/Object;)ZsetOutputFormatB(Lcom/example/mp4composer/SampleType;Landroid/media/MediaFormat;)Vset(IIJI)VreleaseOutputBuffer(IZ)VgetOutputBufferwriteSampleDataa(Lcom/example/mp4composer/SampleType;Ljava/nio/ByteBuffer;Landroid/media/MediaCodec$BufferInfo;)Vstop"com/example/mp4composer/SampleTypeAUDIO )RSTUVWXYZWX[\WX]^_`abcdWefgjklmlnfopqprpsptpuvwxypzc{c|W}p~Wc A \**Y**+**-* * * *  *   2 @&7ABC#D)E/F5GAH[I\ \\^_\dW\ef\`a\wx\yp\c\c 9P  Y**** LY+******L*+ ! MY,*!+*!*"*#Y*!*** * $% N[^JM ORPQ(S6T=UBWNY[\^Z_[h]s^z_ab* _ NQf^ 5 L<* &<*%'* (=<*% *<* +<* gkmnp"q(s-u=vJx " WLJp  I|*,*-> **!.6*,*! /**!016*2~6*!*4/*5W*Y`B} ~)049FH[n>cdW)vW[DWn1p? "@ Iz*6*!*7>+)*%*!89*:~*6*% <*=*%*><2 02@BNS_ix zzcdW  &  I*?**7>[Y*@ AYBC**8@*D*@EF* G*@H*@ AYIC*:~*?* *:J*:~*K* G*L*M**>N*K^ 029CN`npry cW &,! I6 *N* j  /*? C*!*" *!O*!P*!** *O*P*& !(6=B C  QGi hPK!!o+:<<:com/example/mp4composer/composer/SonicAudioProcessor.class3 9/ 0 1 2 3 4 5 6 7 8 9 :;E <= > ? @ A B C D E F G H I J K LF M N O PQ R S? T U V W X Y Z [ \ ]^_ `a b c d :efg hi jk </ l m n o? |Zr?Jw p q r s t u v w x y z { | } ~      SONIC_MIN_PITCHI ConstantValueASONIC_MAX_PITCHSONIC_AMDF_FREQ inputBuffer[S outputBuffer pitchBufferdownSampleBufferspeedFvolumepitchrateoldRatePositionnewRatePosition useChordPitchZquality numChannelsinputBufferSizepitchBufferSizeoutputBufferSizenumInputSamplesnumOutputSamplesnumPitchSamples minPeriod maxPeriod maxRequiredremainingInputToCopy sampleRate prevPeriod prevMinDiffminDiffmaxDiff$assertionsDisabled(II)VCodeLineNumberTableLocalVariableTablethis6Lcom/example/mp4composer/composer/SonicAudioProcessor;resize([SI)[SoldArray newLengthnewArraylength StackMapTabledmove ([SI[SII)VdestdestPossource sourcePos numSamples scaleSamples([SIIF)VvaluexSamplesamplespositionfixedPointVolumestartstop=getSpeed()FsetSpeed(F)VgetPitchsetPitchgetRatesetRate getChordPitch()Z setChordPitch(Z)V getQuality()I setQuality(I)V getVolume setVolumeallocateStreamBuffers getSampleRategetNumChannelsenlargeOutputBufferIfNeededenlargeInputBufferIfNeededaddFloatSamplesToInputBuffer([FI)V[FxBufferaddShortSamplesToInputBuffer([SI)V#addUnsignedByteSamplesToInputBuffer([BI)VsampleS[BaddBytesToInputBufferxByteinBuffernumBytesremoveInputSamplesremainingSamples copyToOutput([SII)VcopyInputToOutput(I)IreadFloatFromStream([FI)I maxSamplesreadShortFromStream([SI)IreadUnsignedByteFromStream([BI)IreadBytesFromStream outBuffermaxBytes flushStream()VsrexpectedOutputSamplessamplesAvailabledownSampleInputjiskipsamplesPerValuefindPitchPeriodInRange([SIII)IsValpValdiffperiod bestPeriod worstPeriodprevPeriodBetter(IIZ)ZpreferNewPeriodfindPitchPeriod([SIZ)IminPmaxP retPeriod overlapAdd(II[SI[SI[SI)Vtoud frameCount channelCountout outPositionrampDownrampDownPositionrampUprampUpPositionoverlapAddWithSeparation(III[SI[SI[SI)V separationoutPos rampDownPos rampUpPosmoveNewSamplesToPitchBufferoriginalNumOutputSamplesremovePitchSamples adjustPitch newPeriodgetSign interpolate([SIII)SininPos oldSampleRate newSampleRateleftright leftPosition rightPositionratiowidth adjustRate(FI)VskipPitchPeriod([SIFI)I newSamplesinsertPitchPeriod changeSpeedprocessStreamInputwriteFloatToStreamwriteShortToStreamwriteUnsignedByteToStreamwriteBytesToStreamchangeFloatSpeed ([FIFFFFZII)IstreamsonicChangeShortSpeed ([SIFFFFZII)I SourceFileSonicAudioProcessor.java hi ki ji li m\ n\ op q\ r\  }\4com/example/mp4composer/composer/SonicAudioProcessor y\ z\ {\ s\ cd u\ ed t\ fd gd ~\ w\ v\ |\  x\ $ \ \ \  audio r adjustPitch:      3Assertion failed: newRatePosition != newSampleRate java/lang/Object  pjava/lang/AssertionError    !   " #  java/lang/System arraycopy*(Ljava/lang/Object;ILjava/lang/Object;II)Vjava/lang/Mathmin(II)Iandroid/util/Log'(Ljava/lang/String;Ljava/lang/String;)ILjava/io/PrintStream;java/io/PrintStreamprintf<(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;java/lang/ClassdesiredAssertionStatus 9 [\]^_\]`a\]bcdedfdgdhijikilim\n\opq\r\s\t\u\v\w\x\y\z\{\|\}\~\\\\p93*** * * * *** * . >? @ABCD#E(F-G2H 33}\3r\$* h= N++6+- -OP QS"T4$$d$\ d \ @z-* h+* h* h  _`>d\d\\1 ] j6* h6* h`669+5h z6   6  6 + VƱ2 ijkm&n2o:pBqJrOtVm\vf 2$\ =\]]d]\]\]jiU\M\B\ " /*{ >*# hi/* >*# ki/* P*#** li/*  >*  op/*  >*  q\/* >*# ji{** *l*Al**h****h ****h ****h ** ***B %-9AMUakpuz {{}\{r\/* /*  x/*`*$*Y*z``**** .//\.x/*`*$*Y*z``**** .//\.E*** h>6* h*+0jV*Y`&  " 4: D 4#\EEE\1\ "$****+ *Y` # $$d$\L*** h66* h&+3~d>*xV*Y`""#$%,&;$A(K)>,.\LLL\<\ -V* hl>*** h66`*+3~+`3x6*V*Y`& 0 345$697E5K9U:H9/\VVV\ M\=\.f*d=*** *@BCD \\s*!***+ *Y`LMNO*d\\l"**"#=**$*Y"d"U WX Y ""\ \U*>6 d6>6* h+*5nQ*** *6 bce fhijl(m7l=oMpSq> \UUU\P\M\ >*>6 d6>*+* *** *. z{} ~&6<4>>d>\9\6\ Y*>6 d6>6* h+*5z`T*** *6  (;AQW>$\YYY\T\Q\ #I* hl>*66 d666* h-*56+x~T+x`zT*** *h* hB #),;DQ_ev|RD/6\\ }\w\t\5K*<**nE**jF*$n*%b%n&b`6**h`6*h* h** h`V*Y*h`*'* ***"*%B0<O^dsy>?%\\ii0h\?$#/* 8 ]*l6* h6* h=6>66+h``5`6l6*V2 !$.?ELV\\ '\$8\B\]]d]\]\U\M\/ 6666* h=6  r6 6   5+ `56 + ` `56      d  d`6  h h  6 6 h h  6 6 *l(*l)Z ",4?X^ kos4$ ? %9\ "f\ v\ d\y\z\\\ \\[  *4 *hh**h*** # $ &')+&-(00124*44\4\4p  ! 6** *l6* *+**+6*+,***l*l+6gh6xd6x`6* *6* *6* *++6*+,**+6**(*)- *66**(**fACDF,G?IGJ`LfMmNvOPQSTVWYZ^_acdep <\vT\K\\d\p`\\\5 N  r e6^h`6 h`6 h`6 6  5,  5 dh 5 h`lV `6  `6  `6 ˄2 t uvw#x,yFzL{R|Xx^td &8\ M\ D\ #;\ a\e\e\ede\ede\ede\9" 7 6  h `6  h `6 h `6 6`z  5dhlV `6 M/  5dh 5dh`lV `6  `6   5dhlV `6  `6  ZJ $/5GPVsy'\\ \ $\ \ \r\\d\d\d\ D#(1  W*d=*%`*$*Y*z``*******%* **Y%`%"%5GLV WW \P\5 q$****%d *Y%d%#$$\ ~ 6**.*%d***/=*n>*!* &* ****`d0/d6123W** ****4*Y``6p*5F  +49Bejr>j'\+y\4p \ \\1 S+I  \@ L+56+* `56*h6*h6*`h6  d6  d6  h  dh` l" +29z LLdL\L\L\G=5\ ,\+!\ 2\ 9\ **#n>*6@ @z>z6*.6*%d*`h*hW*!6* /*** h`*** h`6V*Y`*Y`*Y`*0**789:W; *"*>`>:**/6#**#?``>**#@`>*`*A6 S T VWYZ%\1]8^M`\cfekf41+\llhi[\Y\ '"+*<**nE*F* %*jF$B $D *$F***$** * *G% *%H* ***d*IFklmop"r4s<uIvNxUy^zf|l}r{* \i{i" #Q *+J*K    \$Q *+L*K   d \%Q *+M*K    \&Q *+N*K    \ '( JYO:  $P %Q R S T *U V W< *XW.   '.5:@Hf JJ\JhiJkiJliJjiJopJ}\Jr\ =) *+ KY O:  %P Q R S T +' V W= +YW.  !(/6;AIp KKdK\KhiKkiKliKjiKopK}\Kr\ >) ,4Z; @-.PK!!!!4com/example/mp4composer/composer/VideoComposer.class3 d  : : : : : : : : : $   :     :   : $ $   ) : ) ) ) ) ) ) ) )  : ) : : : : : : )    : $    $ $ $ $ :       ) )  ! :"#$ Y% & '( )* )+, - . )/0TAGLjava/lang/String; ConstantValue1DRAIN_STATE_NONEI$DRAIN_STATE_SHOULD_RETRY_IMMEDIATELYDRAIN_STATE_CONSUMEDmediaExtractorLandroid/media/MediaExtractor; trackIndex outputFormatLandroid/media/MediaFormat; muxRender,Lcom/example/mp4composer/composer/MuxRender; bufferInfo BufferInfo InnerClasses%Landroid/media/MediaCodec$BufferInfo;decoderLandroid/media/MediaCodec;encoderactualOutputFormatdecoderSurface1Lcom/example/mp4composer/composer/DecoderSurface;encoderSurface1Lcom/example/mp4composer/composer/EncoderSurface;isExtractorEOSZ isDecoderEOS isEncoderEOSdecoderStartedencoderStartedwrittenPresentationTimeUsJ timeScaleF trimStartUs trimEndUslogger'Lcom/example/mp4composer/logger/Logger;(Landroid/media/MediaExtractor;ILandroid/media/MediaFormat;Lcom/example/mp4composer/composer/MuxRender;FJJLcom/example/mp4composer/logger/Logger;)VCodeLineNumberTableLocalVariableTablethis0Lcom/example/mp4composer/composer/VideoComposer; trimStartMs trimEndMs StackMapTable23$RuntimeInvisibleParameterAnnotationsLandroidx/annotation/NonNull;setUp(Lcom/example/mp4composer/filter/GlFilter;Lcom/example/mp4composer/Rotation;Landroid/util/Size;Landroid/util/Size;Lcom/example/mp4composer/FillMode;Lcom/example/mp4composer/FillModeCustomItem;ZZLandroid/opengl/EGLContext;)VeLjava/io/IOException;filter)Lcom/example/mp4composer/filter/GlFilter;rotation"Lcom/example/mp4composer/Rotation;outputResolutionLandroid/util/Size;inputResolutionfillMode"Lcom/example/mp4composer/FillMode;fillModeCustomItem,Lcom/example/mp4composer/FillModeCustomItem; flipVerticalflipHorizontal shareContextLandroid/opengl/EGLContext; inputFormatRuntimeInvisibleAnnotations!Landroidx/annotation/RequiresApi;api stepPipeline()ZbusystatusgetWrittenPresentationTimeUs()J isFinishedrelease()VdrainExtractor()IresultsampleSizeCompat isKeyFrame drainDecoderdoRender drainEncoder SourceFileVideoComposer.java #android/media/MediaCodec$BufferInfo wz pq rj st uv 4 56 78 9:android/media/MediaFormatmime ;< => }|java/io/IOExceptionjava/lang/IllegalStateException ?android/media/MediaCodec @A/com/example/mp4composer/composer/EncoderSurface BC D E F GHandroid/media/MediaExtractor IJrotation-degrees KL MN/com/example/mp4composer/composer/DecoderSurface O  PQ RS TS UV WX YZ [Z \ ]> {| ^C .com/example/mp4composer/composer/VideoComposer _ ` ab cd ef gh i j k lm nj o pj q rs t u vw x ~tjava/lang/RuntimeException"Video output format changed twice. y z{| }~2  )Could not determine actual output format.  f java/lang/Object VideoComposer*com/example/mp4composer/composer/MuxRender%com/example/mp4composer/logger/Loggerjava/util/concurrent/TimeUnit MILLISECONDSLjava/util/concurrent/TimeUnit;toMicros(J)J selectTrack(I)V getString&(Ljava/lang/String;)Ljava/lang/String;createEncoderByType.(Ljava/lang/String;)Landroid/media/MediaCodec;(Ljava/lang/Throwable;)V configureP(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)VcreateInputSurface()Landroid/view/Surface;4(Landroid/view/Surface;Landroid/opengl/EGLContext;)V makeCurrentstartgetTrackFormat(I)Landroid/media/MediaFormat;seekTo(JI)V containsKey(Ljava/lang/String;)Z setInteger(Ljava/lang/String;I)VS(Lcom/example/mp4composer/filter/GlFilter;Lcom/example/mp4composer/logger/Logger;)V setRotation%(Lcom/example/mp4composer/Rotation;)VsetOutputResolution(Landroid/util/Size;)VsetInputResolution setFillMode%(Lcom/example/mp4composer/FillMode;)VsetFillModeCustomItem/(Lcom/example/mp4composer/FillModeCustomItem;)VsetFlipHorizontal(Z)VsetFlipVerticalcompleteParamscreateDecoderByType getSurfacestopgetSampleTrackIndexdequeueInputBuffer(J)IqueueInputBuffer(IIIJI)VgetInputBuffer(I)Ljava/nio/ByteBuffer;readSampleData(Ljava/nio/ByteBuffer;I)IgetSampleFlags getSampleTimeadvancedequeueOutputBuffer)(Landroid/media/MediaCodec$BufferInfo;J)IflagssignalEndOfInputStreamsizepresentationTimeUsreleaseOutputBuffer(IZ)V awaitNewImage drawImagesetPresentationTime(J)V swapBuffers(Ljava/lang/String;)VgetOutputFormat()Landroid/media/MediaFormat;"com/example/mp4composer/SampleTypeVIDEO$Lcom/example/mp4composer/SampleType;setOutputFormatB(Lcom/example/mp4composer/SampleType;Landroid/media/MediaFormat;)VonSetOutputFormatset(IIJI)VgetOutputBufferwriteSampleDataa(Lcom/example/mp4composer/SampleType;Ljava/nio/ByteBuffer;Landroid/media/MediaCodec$BufferInfo;)V :defghijgkljgmnjgopqrjstuvwz{|}|~t < W**Y*+**-** *  *   * . 9&:;<=$>*?6@PAVB\ WWpqWrjWstWuvWWWW =E  !^ ****: Y ***Y* * *!*"**#: ** % &'  &(*)Y+**+*+,,*+--*+.*+/*+0*+1*+2*+3* 45: Y *5 *+6*5!*7 ~N PSQ R*T8ULVSWZX_Zl[x\`bcdefghijmpnoq rst  lt ^ _d I,<*8<*9=<*;<* x{ |%* ,*j   I6 *<* j  /*= i*+*+>*+**?**5*7 *5@*5A*5**" *@*A*>!&-;BGN\ch i  Ib*B*C< **5 D=*B*5 E**5FG>*H~6*5*I* nE*JW> (.27CEVi4rj(mjV?ji,=  @ I*K*5* L<*M~*N*K*O*O0*P* !*P** =*5Q-*+R*+S**PTiV*W*P **P<R 0246BINV jP &2@7 I}*=** L<PN*X YYZ[**\X*]*X^*_*X YY`[*M~*=* *Ma*M~*Q*]*b*c**P<*Q^ 029CN\cegnxj &!! Iy xPK!!dQ  6com/example/mp4composer/filter/GlBilateralFilter.class3:)*+ ,;o - . / 0 123 VERTEX_SHADERLjava/lang/String; ConstantValueFRAGMENT_SHADERtexelWidthOffsetFtexelHeightOffsetblurSize()VCodeLineNumberTableLocalVariableTablethis2Lcom/example/mp4composer/filter/GlBilateralFilter;getTexelWidthOffset()FsetTexelWidthOffset(F)VgetTexelHeightOffsetsetTexelHeightOffset getBlurSize setBlurSizeonDraw SourceFileGlBilateralFilter.java0com/example/mp4composer/filter/GlBilateralFilterattribute vec4 aPosition;attribute vec4 aTextureCoord;const lowp int GAUSSIAN_SAMPLES = 9;uniform highp float texelWidthOffset;uniform highp float texelHeightOffset;uniform highp float blurSize;varying highp vec2 vTextureCoord;varying highp vec2 blurCoordinates[GAUSSIAN_SAMPLES];void main() {gl_Position = aPosition;vTextureCoord = aTextureCoord.xy;int multiplier = 0;highp vec2 blurStep;highp vec2 singleStepOffset = vec2(texelHeightOffset, texelWidthOffset) * blurSize;for (lowp int i = 0; i < GAUSSIAN_SAMPLES; i++) {multiplier = (i - ((GAUSSIAN_SAMPLES - 1) / 2));blurStep = float(multiplier) * singleStepOffset;blurCoordinates[i] = vTextureCoord.xy + blurStep;}} precision mediump float;uniform lowp sampler2D sTexture;const lowp int GAUSSIAN_SAMPLES = 9;varying highp vec2 vTextureCoord;varying highp vec2 blurCoordinates[GAUSSIAN_SAMPLES];const mediump float distanceNormalizationFactor = 1.5;void main() {lowp vec4 centralColor = texture2D(sTexture, blurCoordinates[4]);lowp float gaussianWeightTotal = 0.18;lowp vec4 sum = centralColor * 0.18;lowp vec4 sampleColor = texture2D(sTexture, blurCoordinates[0]);lowp float distanceFromCentralColor;distanceFromCentralColor = min(distance(centralColor, sampleColor) * distanceNormalizationFactor, 1.0);lowp float gaussianWeight = 0.05 * (1.0 - distanceFromCentralColor);gaussianWeightTotal += gaussianWeight;sum += sampleColor * gaussianWeight;sampleColor = texture2D(sTexture, blurCoordinates[1]);distanceFromCentralColor = min(distance(centralColor, sampleColor) * distanceNormalizationFactor, 1.0);gaussianWeight = 0.09 * (1.0 - distanceFromCentralColor);gaussianWeightTotal += gaussianWeight;sum += sampleColor * gaussianWeight;sampleColor = texture2D(sTexture, blurCoordinates[2]);distanceFromCentralColor = min(distance(centralColor, sampleColor) * distanceNormalizationFactor, 1.0);gaussianWeight = 0.12 * (1.0 - distanceFromCentralColor);gaussianWeightTotal += gaussianWeight;sum += sampleColor * gaussianWeight;sampleColor = texture2D(sTexture, blurCoordinates[3]);distanceFromCentralColor = min(distance(centralColor, sampleColor) * distanceNormalizationFactor, 1.0);gaussianWeight = 0.15 * (1.0 - distanceFromCentralColor);gaussianWeightTotal += gaussianWeight;sum += sampleColor * gaussianWeight;sampleColor = texture2D(sTexture, blurCoordinates[5]);distanceFromCentralColor = min(distance(centralColor, sampleColor) * distanceNormalizationFactor, 1.0);gaussianWeight = 0.15 * (1.0 - distanceFromCentralColor);gaussianWeightTotal += gaussianWeight;sum += sampleColor * gaussianWeight;sampleColor = texture2D(sTexture, blurCoordinates[6]);distanceFromCentralColor = min(distance(centralColor, sampleColor) * distanceNormalizationFactor, 1.0);gaussianWeight = 0.12 * (1.0 - distanceFromCentralColor);gaussianWeightTotal += gaussianWeight;sum += sampleColor * gaussianWeight;sampleColor = texture2D(sTexture, blurCoordinates[7]);distanceFromCentralColor = min(distance(centralColor, sampleColor) * distanceNormalizationFactor, 1.0);gaussianWeight = 0.09 * (1.0 - distanceFromCentralColor);gaussianWeightTotal += gaussianWeight;sum += sampleColor * gaussianWeight;sampleColor = texture2D(sTexture, blurCoordinates[8]);distanceFromCentralColor = min(distance(centralColor, sampleColor) * distanceNormalizationFactor, 1.0);gaussianWeight = 0.05 * (1.0 - distanceFromCentralColor);gaussianWeightTotal += gaussianWeight;sum += sampleColor * gaussianWeight;gl_FragColor = sum / gaussianWeightTotal;} 4    567 89'com/example/mp4composer/filter/GlFilter'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!T**** topqu /*y  !>*# }~"/* #!>*# $/* %!>*# &^(* * * * * *  ' ('(PK!!fMW 4com/example/mp4composer/filter/GlBoxBlurFilter.class3:)*+ ,;D - . / 0 123 VERTEX_SHADERLjava/lang/String; ConstantValueFRAGMENT_SHADERtexelWidthOffsetFtexelHeightOffsetblurSize()VCodeLineNumberTableLocalVariableTablethis0Lcom/example/mp4composer/filter/GlBoxBlurFilter;getTexelWidthOffset()FsetTexelWidthOffset(F)VgetTexelHeightOffsetsetTexelHeightOffset getBlurSize setBlurSizeonDraw SourceFileGlBoxBlurFilter.java.com/example/mp4composer/filter/GlBoxBlurFilterattribute vec4 aPosition;attribute vec4 aTextureCoord;uniform highp float texelWidthOffset;uniform highp float texelHeightOffset;uniform highp float blurSize;varying highp vec2 centerTextureCoordinate;varying highp vec2 oneStepLeftTextureCoordinate;varying highp vec2 twoStepsLeftTextureCoordinate;varying highp vec2 oneStepRightTextureCoordinate;varying highp vec2 twoStepsRightTextureCoordinate;void main() {gl_Position = aPosition;vec2 firstOffset = vec2(1.5 * texelWidthOffset, 1.5 * texelHeightOffset) * blurSize;vec2 secondOffset = vec2(3.5 * texelWidthOffset, 3.5 * texelHeightOffset) * blurSize;centerTextureCoordinate = aTextureCoord.xy;oneStepLeftTextureCoordinate = centerTextureCoordinate - firstOffset;twoStepsLeftTextureCoordinate = centerTextureCoordinate - secondOffset;oneStepRightTextureCoordinate = centerTextureCoordinate + firstOffset;twoStepsRightTextureCoordinate = centerTextureCoordinate + secondOffset;}precision mediump float;uniform lowp sampler2D sTexture;varying highp vec2 centerTextureCoordinate;varying highp vec2 oneStepLeftTextureCoordinate;varying highp vec2 twoStepsLeftTextureCoordinate;varying highp vec2 oneStepRightTextureCoordinate;varying highp vec2 twoStepsRightTextureCoordinate;void main() {lowp vec4 color = texture2D(sTexture, centerTextureCoordinate) * 0.2;color += texture2D(sTexture, oneStepLeftTextureCoordinate) * 0.2;color += texture2D(sTexture, oneStepRightTextureCoordinate) * 0.2;color += texture2D(sTexture, twoStepsLeftTextureCoordinate) * 0.2;color += texture2D(sTexture, twoStepsRightTextureCoordinate) * 0.2;gl_FragColor = color;} 4    567 89'com/example/mp4composer/filter/GlFilter'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!T**** @:;<A /*D  !>*# HI"/*L #!>*# PQ$/*T %!>*# XY&^(* * * * * * ^ _`'a ('(PK!!UCd!!7com/example/mp4composer/filter/GlBrightnessFilter.class3*    ! "#BRIGHTNESS_FRAGMENT_SHADERLjava/lang/String; ConstantValue brightnessF()VCodeLineNumberTableLocalVariableTablethis3Lcom/example/mp4composer/filter/GlBrightnessFilter; setBrightness(F)VonDraw SourceFileGlBrightnessFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 1com/example/mp4composer/filter/GlBrightnessFilter&precision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform lowp float brightness; void main() { lowp vec4 textureColor = texture2D(sTexture, vTextureCoord); gl_FragColor = vec4((textureColor.rgb + vec3(brightness)), textureColor.w); } $  %&' ()'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!   @**   >*#  <**   ! PK!!> > <com/example/mp4composer/filter/GlBulgeDistortionFilter.class3D./01 2? 3 4> 5 67 8 9: 9;FRAGMENT_SHADERLjava/lang/String; ConstantValuecenterXFcenterYradiusscale()VCodeLineNumberTableLocalVariableTablethis8Lcom/example/mp4composer/filter/GlBulgeDistortionFilter; getCenterX()F setCenterX(F)V getCenterY setCenterY getRadius setRadiusgetScalesetScaleonDraw SourceFileGlBulgeDistortionFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 6com/example/mp4composer/filter/GlBulgeDistortionFilterBprecision mediump float;varying highp vec2 vTextureCoord;uniform lowp sampler2D sTexture;uniform highp vec2 center;uniform highp float radius;uniform highp float scale;void main() {highp vec2 textureCoordinateToUse = vTextureCoord;highp float dist = distance(center, vTextureCoord);textureCoordinateToUse -= center;if (dist < radius) {highp float percent = 1.0 - ((radius - dist) / radius) * scale;percent = percent * percent;textureCoordinateToUse = textureCoordinateToUse * percent;}textureCoordinateToUse += center;gl_FragColor = texture2D(sTexture, textureCoordinateToUse);} <    center =>? @A BC'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform2f(IFF)V glUniform1f(IF)V! _!**** * )#$%& * ! !"/*-  #$>*# 12 %"/*5  &$>*# 9: '"/* =  ($>*#  AB )"/* E  *$>*#  IJ +b,* *** * * * PQR+S , ,-PK!!f kSS:com/example/mp4composer/filter/GlCGAColorspaceFilter.class3 FRAGMENT_SHADERLjava/lang/String; ConstantValue()VCodeLineNumberTableLocalVariableTablethis6Lcom/example/mp4composer/filter/GlCGAColorspaceFilter; SourceFileGlCGAColorspaceFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 4com/example/mp4composer/filter/GlCGAColorspaceFilterprecision mediump float;varying vec2 vTextureCoord;uniform lowp sampler2D sTexture;void main() {highp vec2 sampleDivisor = vec2(1.0 / 200.0, 1.0 / 320.0);highp vec2 samplePos = vTextureCoord - mod(vTextureCoord, sampleDivisor);highp vec4 color = texture2D(sTexture, samplePos);mediump vec4 colorCyan = vec4(85.0 / 255.0, 1.0, 1.0, 1.0);mediump vec4 colorMagenta = vec4(1.0, 85.0 / 255.0, 1.0, 1.0);mediump vec4 colorWhite = vec4(1.0, 1.0, 1.0, 1.0);mediump vec4 colorBlack = vec4(0.0, 0.0, 0.0, 1.0);mediump vec4 endColor;highp float blackDistance = distance(color, colorBlack);highp float whiteDistance = distance(color, colorWhite);highp float magentaDistance = distance(color, colorMagenta);highp float cyanDistance = distance(color, colorCyan);mediump vec4 finalColor;highp float colorDistance = min(magentaDistance, cyanDistance);colorDistance = min(colorDistance, whiteDistance);colorDistance = min(colorDistance, blackDistance);if (colorDistance == blackDistance) {finalColor = colorBlack;} else if (colorDistance == whiteDistance) {finalColor = colorWhite;} else if (colorDistance == cyanDistance) {finalColor = colorCyan;} else {finalColor = colorMagenta;}gl_FragColor = finalColor;} '(Ljava/lang/String;Ljava/lang/String;)V!  7 * 56  PK!!N++5com/example/mp4composer/filter/GlContrastFilter.class3+  ? ! " #$CONTRAST_FRAGMENT_SHADERLjava/lang/String; ConstantValuecontrastF()VCodeLineNumberTableLocalVariableTablethis1Lcom/example/mp4composer/filter/GlContrastFilter; setContrast(F)VonDraw SourceFileGlContrastFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } /com/example/mp4composer/filter/GlContrastFilter6precision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform lowp float contrast; void main() { lowp vec4 textureColor = texture2D(sTexture, vTextureCoord); gl_FragColor = vec4(((textureColor.rgb - vec3(0.5)) * contrast + vec3(0.5)), textureColor.w); } %  &'( )*'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!  A** >*# !"<* *  & ' PK!!> 7com/example/mp4composer/filter/GlCrosshatchFilter.class3;*+,- .< /;D 0 1 23 4:CROSSHATCH_FRAGMENT_SHADERLjava/lang/String; ConstantValuecrossHatchSpacingF lineWidth()VCodeLineNumberTableLocalVariableTablethis3Lcom/example/mp4composer/filter/GlCrosshatchFilter;onDrawsetCrossHatchSpacing(F)V setLineWidth setFrameSize(II)VsinglePixelSpacingwidthIheight StackMapTable SourceFileGlCrosshatchFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 1com/example/mp4composer/filter/GlCrosshatchFilterprecision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform highp float crossHatchSpacing; uniform highp float lineWidth; const highp vec3 W = vec3(0.2125, 0.7154, 0.0721); void main() { highp float luminance = dot(texture2D(sTexture, vTextureCoord).rgb, W); lowp vec4 colorToDisplay = vec4(1.0, 1.0, 1.0, 1.0); if (luminance < 1.00) { if (mod(vTextureCoord.x + vTextureCoord.y, crossHatchSpacing) <= lineWidth) { colorToDisplay = vec4(0.0, 0.0, 0.0, 1.0); } } if (luminance < 0.75) { if (mod(vTextureCoord.x - vTextureCoord.y, crossHatchSpacing) <= lineWidth) { colorToDisplay = vec4(0.0, 0.0, 0.0, 1.0); } } if (luminance < 0.50) { if (mod(vTextureCoord.x + vTextureCoord.y - (crossHatchSpacing / 2.0), crossHatchSpacing) <= lineWidth) { colorToDisplay = vec4(0.0, 0.0, 0.0, 1.0); } } if (luminance < 0.3) { if (mod(vTextureCoord.x - vTextureCoord.y - (crossHatchSpacing / 2.0), crossHatchSpacing) <= lineWidth) { colorToDisplay = vec4(0.0, 0.0, 0.0, 1.0); } } gl_FragColor = colorToDisplay; } 5   678 9: !"'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!K*** 2563 M* * * * : ;< >*# ?@ >*#  CD!"$* nFF*%*%HK LNPQ#T4#$$$%$&%#' ()PK!!:&5com/example/mp4composer/filter/GlExposureFilter.class3*    ! "#EXPOSURE_FRAGMENT_SHADERLjava/lang/String; ConstantValueexposureF()VCodeLineNumberTableLocalVariableTablethis1Lcom/example/mp4composer/filter/GlExposureFilter; setExposure(F)VonDraw SourceFileGlExposureFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } /com/example/mp4composer/filter/GlExposureFilter'precision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform highp float exposure; void main() { highp vec4 textureColor = texture2D(sTexture, vTextureCoord); gl_FragColor = vec4(textureColor.rgb * pow(2.0, exposure), textureColor.w); } $  %&' ()'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!   @**   >*#   <**  $ % PK!!F-com/example/mp4composer/filter/GlFilter.class3  =      1 0                      /   4 4 4 3 / DEFAULT_UNIFORM_SAMPLERLjava/lang/String; ConstantValueDEFAULT_VERTEX_SHADERDEFAULT_FRAGMENT_SHADER VERTICES_DATA[FFLOAT_SIZE_BYTESIVERTICES_DATA_POS_SIZEVERTICES_DATA_UV_SIZEVERTICES_DATA_STRIDE_BYTESVERTICES_DATA_POS_OFFSETVERTICES_DATA_UV_OFFSET vertexShaderSourcefragmentShaderSourceprogram vertexShaderfragmentShadervertexBufferName handleMapLjava/util/HashMap; Signature:Ljava/util/HashMap; clearColor()VCodeLineNumberTableLocalVariableTablethis)Lcom/example/mp4composer/filter/GlFilter;$(Landroid/content/res/Resources;II)VresLandroid/content/res/Resources;vertexShaderSourceResIdfragmentShaderSourceResId'(Ljava/lang/String;Ljava/lang/String;)VsetupsetFragmentShaderSource(Ljava/lang/String;)V setFrameSize(II)Vwidthheightreleasedraw4(ILcom/example/mp4composer/gl/GlFramebufferObject;)VtexNamefbo0Lcom/example/mp4composer/gl/GlFramebufferObject;onDraw useProgramgetVertexBufferName()I getHandle(Ljava/lang/String;)InamevalueLjava/lang/Integer;location StackMapTable getClearColor()[F setClearColor(FFFF)VredFgreenbluealpha SourceFile GlFilter.java'com/example/mp4composer/filter/GlFilterandroid/opengl/GLES20attribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } precision mediump float; varying highp vec2 vTextureCoord; uniform lowp sampler2D sTexture; void main() { gl_FragColor = texture2D(sTexture, vTextureCoord); } ]i ]^java/util/HashMap XY \D R? S? q^ UF VF TF CD WF aPosition {| aTextureCoordsTexture ^ x^ n n n w^ java/lang/Integer z java/lang/IllegalStateExceptionjava/lang/StringBuilder-Could not get attrib or uniform location for ]l java/lang/Objectandroid/content/res/Resources getString(I)Ljava/lang/String;%com/example/mp4composer/utils/EglUtil loadShader(Ljava/lang/String;I)I createProgram(II)I createBuffer([F)IglDeleteProgram(I)VglDeleteShaderglDeleteBuffers(I[II)Vclear glBindBufferglEnableVertexAttribArrayglVertexAttribPointer (IIIZII)VglActiveTexture glBindTexture glUniform1i glDrawArrays(III)VglDisableVertexAttribArray glUseProgramget&(Ljava/lang/Object;)Ljava/lang/Object;intValueglGetAttribLocation(ILjava/lang/String;)IglGetUniformLocationappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;valueOf(I)Ljava/lang/Integer;put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;!=>?@A?@B?@CDEF@GHF@IJF@KLF@MNF@OPF@QR?S?TFUFVFWFXYZ[\D]^_7 *` CDa  bc]d_[*++` GHa*bcefgFhF]i_1**Y *Y QY QY QY Q *+ *, `J@&K+L0Ma 1bc1R?1S?j^_M*** ** *****W*W*W`& PQRS-T7V>WEXLYa Mbckl_>*+ ` \]abcS?mn_?`ba bcoFpFq^_@****** Y*O** `* ef ghij$k3l8n?oa @bcrs_*!"*#*$*%*$* %&' (*)**+*,*, ("#`Bsu vw'x0yB{G|N}X\bkt{a bctFuvw^_+`a bcx^_6*-` a bcyz_/*`a bc{|_[* +./M,,0*+1> *+2>3Y4Y567+789* +:;W`* #,1LYa*[bc[}? O~=F _/* `a bc_o*Y#QY$QY%QYQ ` a4bc^_jY;listLjava/util/ArrayList;Ljava/util/ArrayList;>; prevTexNameI-([Lcom/example/mp4composer/filter/GlFilter;)VCodeLineNumberTableLocalVariableTablethis.Lcom/example/mp4composer/filter/GlFilterGroup; glFilters*[Lcom/example/mp4composer/filter/GlFilter;(Ljava/util/Collection;)VLocalVariableTypeTableD(Ljava/util/Collection;)Vsetup()Vfbo0Lcom/example/mp4composer/gl/GlFramebufferObject;shader)Lcom/example/mp4composer/filter/GlFilter;maxcount StackMapTableucdtreleasepairLandroid/util/Pair;nLandroid/util/Pair;g setFrameSize(II)Vwidthheightdraw4(ILcom/example/mp4composer/gl/GlFramebufferObject;)VtexName SourceFileGlFilterGroup.javaandroid/opengl/GLES20v wx -6 -:java/util/ArrayList () $% 9:y z{ |}u ~ 'com/example/mp4composer/filter/GlFilter.com/example/mp4composer/gl/GlFramebufferObject android/util/Pair F: : KL 9L +, : OP { L,com/example/mp4composer/filter/GlFilterGroupjava/util/Iteratorjava/util/ArraysasList%([Ljava/lang/Object;)Ljava/util/List;java/util/Collectionsize()Iiterator()Ljava/util/Iterator;hasNext()Znext()Ljava/lang/Object;create9(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;add(Ljava/lang/Object;)ZfirstLjava/lang/Object;secondclearenableglClear(I)V getTexNameglBindFramebuffer!#$%&'()&*+,-./A *+0 1 23 45-6/g**Y*+01234%7 4'&89:/f* *]* <=* N- >- : `Y::*W06 " #$&5':)A*M,P._/b0e21>J;<P;<5-=>P?,N@,f23A !B+CDEF:/L*L+ 2+ M, ,, ,**0& 67"8,:3;==@>G?K@1"GHL237 "GIAB#JKL/P**N- ;- :±0"DF"G*H7J?KLMON1*"*GHP23PM,PN,7 "*GIAB(JOP/G**N- - :E+@** ,, , !"*,y0>TU!V)W1X<YB[Y]k`oavc|fgjk1*!sGH23Q,;<7 !sGIA BKJ RSPK!!2com/example/mp4composer/filter/GlGammaFilter.class3+  ? ! " #$GAMMA_FRAGMENT_SHADERLjava/lang/String; ConstantValuegammaF()VCodeLineNumberTableLocalVariableTablethis.Lcom/example/mp4composer/filter/GlGammaFilter;setGamma(F)VonDraw SourceFileGlGammaFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } ,com/example/mp4composer/filter/GlGammaFilterprecision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform lowp float gamma; void main() { lowp vec4 textureColor = texture2D(sTexture, vTextureCoord); gl_FragColor = vec4(pow(textureColor.rgb, vec3(gamma)), textureColor.w); } %  &'( )*'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!  A** >*# <* *   ! PK!! 6 9com/example/mp4composer/filter/GlGaussianBlurFilter.class3;*+, -<# . />L 0 1 234 VERTEX_SHADERLjava/lang/String; ConstantValueFRAGMENT_SHADERtexelWidthOffsetFtexelHeightOffsetblurSize()VCodeLineNumberTableLocalVariableTablethis5Lcom/example/mp4composer/filter/GlGaussianBlurFilter;getTexelWidthOffset()FsetTexelWidthOffset(F)VgetTexelHeightOffsetsetTexelHeightOffset getBlurSize setBlurSizeonDraw SourceFileGlGaussianBlurFilter.java3com/example/mp4composer/filter/GlGaussianBlurFilterattribute vec4 aPosition;attribute vec4 aTextureCoord;const lowp int GAUSSIAN_SAMPLES = 9;uniform highp float texelWidthOffset;uniform highp float texelHeightOffset;uniform highp float blurSize;varying highp vec2 blurCoordinates[GAUSSIAN_SAMPLES];void main() {gl_Position = aPosition;highp vec2 vTextureCoord = aTextureCoord.xy;int multiplier = 0;highp vec2 blurStep;highp vec2 singleStepOffset = vec2(texelHeightOffset, texelWidthOffset) * blurSize;for (lowp int i = 0; i < GAUSSIAN_SAMPLES; i++) {multiplier = (i - ((GAUSSIAN_SAMPLES - 1) / 2));blurStep = float(multiplier) * singleStepOffset;blurCoordinates[i] = vTextureCoord.xy + blurStep;}}precision mediump float;const lowp int GAUSSIAN_SAMPLES = 9;varying highp vec2 blurCoordinates[GAUSSIAN_SAMPLES];uniform lowp sampler2D sTexture;void main() {lowp vec4 sum = vec4(0.0);sum += texture2D(sTexture, blurCoordinates[0]) * 0.05;sum += texture2D(sTexture, blurCoordinates[1]) * 0.09;sum += texture2D(sTexture, blurCoordinates[2]) * 0.12;sum += texture2D(sTexture, blurCoordinates[3]) * 0.15;sum += texture2D(sTexture, blurCoordinates[4]) * 0.18;sum += texture2D(sTexture, blurCoordinates[5]) * 0.15;sum += texture2D(sTexture, blurCoordinates[6]) * 0.12;sum += texture2D(sTexture, blurCoordinates[7]) * 0.09;sum += texture2D(sTexture, blurCoordinates[8]) * 0.05;gl_FragColor = sum;} 5    678 9:'com/example/mp4composer/filter/GlFilter'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!U**** E@ABF  /*I !">*# MN# /*Q $">*# UV% /* Y &">*#  ]^'^(* * * * * * c de'f (()PK!!x6com/example/mp4composer/filter/GlGrayScaleFilter.class3 FRAGMENT_SHADERLjava/lang/String; ConstantValue()VCodeLineNumberTableLocalVariableTablethis2Lcom/example/mp4composer/filter/GlGrayScaleFilter; SourceFileGlGrayScaleFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 0com/example/mp4composer/filter/GlGrayScaleFilterprecision mediump float;varying vec2 vTextureCoord;uniform lowp sampler2D sTexture;const highp vec3 weight = vec3(0.2125, 0.7154, 0.0721);void main() {float luminance = dot(texture2D(sTexture, vTextureCoord).rgb, weight);gl_FragColor = vec4(vec3(luminance), 1.0);} '(Ljava/lang/String;Ljava/lang/String;)V!  7 *   PK!!^W  5com/example/mp4composer/filter/GlHalftoneFilter.class37&'() *<# + , - . /0HALFTONE_FRAGMENT_SHADERLjava/lang/String; ConstantValuefractionalWidthOfPixelF aspectRatio()VCodeLineNumberTableLocalVariableTablethis1Lcom/example/mp4composer/filter/GlHalftoneFilter;setFractionalWidthOfAPixel(F)VfractionalWidthOfAPixel setFrameSize(II)VwidthIheightonDraw SourceFileGlHalftoneFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } /com/example/mp4composer/filter/GlHalftoneFilterprecision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform highp float fractionalWidthOfPixel; uniform highp float aspectRatio; const highp vec3 W = vec3(0.2125, 0.7154, 0.0721); void main() { highp vec2 sampleDivisor = vec2(fractionalWidthOfPixel, fractionalWidthOfPixel / aspectRatio); highp vec2 samplePos = vTextureCoord - mod(vTextureCoord, sampleDivisor) + 0.5 * sampleDivisor; highp vec2 textureCoordinateToUse = vec2(vTextureCoord.x, (vTextureCoord.y * aspectRatio + 0.5 - 0.5 * aspectRatio)); highp vec2 adjustedSamplePos = vec2(samplePos.x, (samplePos.y * aspectRatio + 0.5 - 0.5 * aspectRatio)); highp float distanceFromSamplePoint = distance(adjustedSamplePos, textureCoordinateToUse); lowp vec3 sampledColor = texture2D(sTexture, samplePos).rgb; highp float dotScaling = 1.0 - dot(sampledColor, W); lowp float checkForPresenceWithinDot = 1.0 - step(distanceFromSamplePoint, (fractionalWidthOfPixel * 0.5) * dotScaling); gl_FragColor = vec4(vec3(checkForPresenceWithinDot), 1.0); } 1    234 56'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!J***  #$! >*# '(V* *n,-.  !"!#M* * * * 2 34 $%PK!!]bYY1com/example/mp4composer/filter/GlHazeFilter.class33#$%& '>L ( ) * +,FRAGMENT_SHADERLjava/lang/String; ConstantValuedistanceFslope()VCodeLineNumberTableLocalVariableTablethis-Lcom/example/mp4composer/filter/GlHazeFilter; getDistance()F setDistance(F)VgetSlopesetSlopeonDraw SourceFileGlHazeFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } +com/example/mp4composer/filter/GlHazeFilterRprecision mediump float;varying highp vec2 vTextureCoord;uniform lowp sampler2D sTexture;uniform lowp float distance;uniform highp float slope;void main() {highp vec4 color = vec4(1.0);highp float d = vTextureCoord.y * slope + distance;highp vec4 c = texture2D(sTexture, vTextureCoord);c = (c - d * color) / (1.0 -d);gl_FragColor = c;} -   ./0 12'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V! J***  ! /*$ >*# ()/*, >*# 01 M* * * * 5 67 !"PK!!<com/example/mp4composer/filter/GlHighlightShadowFilter.class3/ !" # $ % & '( HIGHLIGHT_SHADOW_FRAGMENT_SHADERLjava/lang/String; ConstantValueshadowsF highlights()VCodeLineNumberTableLocalVariableTablethis8Lcom/example/mp4composer/filter/GlHighlightShadowFilter; setShadows(F)V setHighlightsonDraw SourceFileGlHighlightShadowFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 6com/example/mp4composer/filter/GlHighlightShadowFilterKprecision mediump float; uniform lowp sampler2D sTexture; varying vec2 vTextureCoord; uniform lowp float shadows; uniform lowp float highlights; const mediump vec3 luminanceWeighting = vec3(0.3, 0.3, 0.3); void main() { lowp vec4 source = texture2D(sTexture, vTextureCoord); mediump float luminance = dot(source.rgb, luminanceWeighting); mediump float shadow = clamp((pow(luminance, 1.0/(shadows+1.0)) + (-0.76)*pow(luminance, 2.0/(shadows+1.0))) - luminance, 0.0, 1.0); mediump float highlight = clamp((1.0 - (pow(1.0-luminance, 1.0/(2.0-highlights)) + (-0.8)*pow(1.0-luminance, 2.0/(2.0-highlights)))) - luminance, -1.0, 0.0); lowp vec3 result = vec3(0.0, 0.0, 0.0) + ((luminance + shadow + highlight) - 0.0) * ((source.rgb - vec3(0.0, 0.0, 0.0))/(luminance - 0.0)); gl_FragColor = vec4(result.rgb, source.a); } )   *+, -.'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V! I** * ! " >*# %&>*# )*M* * * * . /0 PK!!X|R0com/example/mp4composer/filter/GlHueFilter.class3,  B !" # $%HUE_FRAGMENT_SHADERLjava/lang/String; ConstantValuehueF()VCodeLineNumberTableLocalVariableTablethis,Lcom/example/mp4composer/filter/GlHueFilter;setHue(F)VonDraw SourceFileGlHueFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } *com/example/mp4composer/filter/GlHueFilter precision highp float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform mediump float hueAdjust; const highp vec4 kRGBToYPrime = vec4 (0.299, 0.587, 0.114, 0.0); const highp vec4 kRGBToI = vec4 (0.595716, -0.274453, -0.321263, 0.0); const highp vec4 kRGBToQ = vec4 (0.211456, -0.522591, 0.31135, 0.0); const highp vec4 kYIQToR = vec4 (1.0, 0.9563, 0.6210, 0.0); const highp vec4 kYIQToG = vec4 (1.0, -0.2721, -0.6474, 0.0); const highp vec4 kYIQToB = vec4 (1.0, -1.1070, 1.7046, 0.0); void main () { // Sample the input pixel highp vec4 color = texture2D(sTexture, vTextureCoord); // Convert to YIQ highp float YPrime = dot (color, kRGBToYPrime); highp float I = dot (color, kRGBToI); highp float Q = dot (color, kRGBToQ); // Calculate the hue and chroma highp float hue = atan (Q, I); highp float chroma = sqrt (I * I + Q * Q); // Make the user's adjustments hue += (-hueAdjust); //why negative rotation? // Convert back to YIQ Q = chroma * sin (hue); I = chroma * cos (hue); // Convert back to RGB highp vec4 yIQ = vec4 (YPrime, I, Q, 0.0); color.r = dot (yIQ, kYIQToR); color.g = dot (yIQ, kYIQToG); color.b = dot (yIQ, kYIQToB); // Save the result gl_FragColor = color; } &  hueAdjust '() *+'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!  A**586 >*# ;<<* *  A B PK!!7o\\3com/example/mp4composer/filter/GlInvertFilter.class3 FRAGMENT_SHADERLjava/lang/String; ConstantValue()VCodeLineNumberTableLocalVariableTablethis/Lcom/example/mp4composer/filter/GlInvertFilter; SourceFileGlInvertFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } -com/example/mp4composer/filter/GlInvertFilterprecision mediump float;varying vec2 vTextureCoord;uniform lowp sampler2D sTexture;void main() {lowp vec4 color = texture2D(sTexture, vTextureCoord);gl_FragColor = vec4((1.0 - color.rgb), color.w);} '(Ljava/lang/String;Ljava/lang/String;)V!  7 *   PK!!OB B 8com/example/mp4composer/filter/GlLookUpTableFilter.class3X3456 7 89 : ;< => ? @ A B C D EF EGFRAGMENT_SHADERLjava/lang/String; ConstantValuehTexI lutTextureLandroid/graphics/Bitmap;(Landroid/graphics/Bitmap;)VCodeLineNumberTableLocalVariableTablethis4Lcom/example/mp4composer/filter/GlLookUpTableFilter;bitmap#(Landroid/content/res/Resources;I)V resourcesLandroid/content/res/Resources;fxIDonDraw()VoffsetDepthMapTextureUniformsetup loadTexture StackMapTablereleaseLutBitmapreset SourceFileGlLookUpTableFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 2com/example/mp4composer/filter/GlLookUpTableFilterprecision mediump float;uniform mediump sampler2D lutTexture; uniform lowp sampler2D sTexture; varying highp vec2 vTextureCoord; vec4 sampleAs3DTexture(vec3 uv) { float width = 16.; float sliceSize = 1.0 / width; float slicePixelSize = sliceSize / width; float sliceInnerSize = slicePixelSize * (width - 1.0); float zSlice0 = min(floor(uv.z * width), width - 1.0); float zSlice1 = min(zSlice0 + 1.0, width - 1.0); float xOffset = slicePixelSize * 0.5 + uv.x * sliceInnerSize; float s0 = xOffset + (zSlice0 * sliceSize); float s1 = xOffset + (zSlice1 * sliceSize); vec4 slice0Color = texture2D(lutTexture, vec2(s0, uv.y)); vec4 slice1Color = texture2D(lutTexture, vec2(s1, uv.y)); float zOffset = mod(uv.z * width, 1.0); vec4 result = mix(slice0Color, slice1Color, zOffset); return result; } void main() { vec4 pixel = texture2D(sTexture, vTextureCoord); vec4 gradedPixel = sampleAs3DTexture(pixel.rgb); gradedPixel.a = pixel.a; pixel = gradedPixel; gl_FragColor = pixel; } H %com/example/mp4composer/utils/EglUtil I JK LMandroid/opengl/GLES20 NO PQ RQ ,* -* -ST UV W*'(Ljava/lang/String;Ljava/lang/String;)Vandroid/graphics/BitmapFactorydecodeResource;(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; getHandle(Ljava/lang/String;)IglActiveTexture(I)V glBindTexture(II)V glUniform1i(Landroid/graphics/Bitmap;IZ)Iandroid/graphics/Bitmap isRecycled()Zrecycle!S**+* /0 12!"#$%a**+ * 6789! "#&'()*`* <  * AB CDE!"#+,*; ** IJK!  "#-*Q*** NOQ! "#./*]**** TUVX! "#.0*E*** [\]! "#12PK!!w:!FF6com/example/mp4composer/filter/GlLuminanceFilter.class3 LUMINANCE_FRAGMENT_SHADERLjava/lang/String; ConstantValue()VCodeLineNumberTableLocalVariableTablethis2Lcom/example/mp4composer/filter/GlLuminanceFilter; SourceFileGlLuminanceFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 0com/example/mp4composer/filter/GlLuminanceFilterprecision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; // Values from "Graphics Shaders: Theory and Practice" by Bailey and Cunningham const highp vec3 W = vec3(0.2125, 0.7154, 0.0721); void main() { lowp vec4 textureColor = texture2D(sTexture, vTextureCoord); float luminance = dot(textureColor.rgb, W); gl_FragColor = vec4(vec3(luminance), textureColor.a); } '(Ljava/lang/String;Ljava/lang/String;)V!  7 *   PK!!?com/example/mp4composer/filter/GlLuminanceThresholdFilter.class3+  ? ! " #$#LUMINANCE_THRESHOLD_FRAGMENT_SHADERLjava/lang/String; ConstantValue thresholdF()VCodeLineNumberTableLocalVariableTablethis;Lcom/example/mp4composer/filter/GlLuminanceThresholdFilter; setThreshold(F)VonDraw SourceFileGlLuminanceThresholdFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 9com/example/mp4composer/filter/GlLuminanceThresholdFilterprecision mediump float;varying highp vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform highp float threshold; const highp vec3 W = vec3(0.2125, 0.7154, 0.0721); void main() { highp vec4 textureColor = texture2D(sTexture, vTextureCoord); highp float luminance = dot(textureColor.rgb, W); highp float thresholdResult = step(threshold, luminance); gl_FragColor = vec4(vec3(thresholdResult), textureColor.w); } %  &'( )*'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!  A** >*#  !<* *  % & PK!!g9p p 3com/example/mp4composer/filter/GlLut512Filter.class3Q2345 6 7 8 9 :; < => ? @A B C DhTexI NO_TEXTURE ConstantValue lutTextureLandroid/graphics/Bitmap;FRAGMENT_SHADERLjava/lang/String;(Landroid/graphics/Bitmap;)VCodeLineNumberTableLocalVariableTablethis/Lcom/example/mp4composer/filter/GlLut512Filter;bitmap#(Landroid/content/res/Resources;I)V resourcesLandroid/content/res/Resources;fxIDsetup()V loadTexture StackMapTableonDrawoffsetDepthMapTextureUniform SourceFileGlLut512Filter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } -com/example/mp4composer/filter/GlLut512Filter=#extension GL_OES_EGL_image_external : require precision mediump float;uniform mediump sampler2D lutTexture; uniform lowp sampler2D sTexture; varying vec2 vTextureCoord; vec4 lookup(in vec4 textureColor, in sampler2D lookupTable); void main() { vec4 color = texture2D(sTexture, vTextureCoord); gl_FragColor = lookup(color, lutTexture); } vec4 lookup(in vec4 textureColor, in sampler2D lookupTable) { textureColor = clamp(textureColor, 0.0, 1.0); mediump float blueColor = textureColor.b * 63.0; mediump vec2 quad1; quad1.y = floor(floor(blueColor) / 8.0); quad1.x = floor(blueColor) - (quad1.y * 8.0); mediump vec2 quad2; quad2.y = floor(ceil(blueColor) / 8.0); quad2.x = ceil(blueColor) - (quad2.y * 8.0); highp vec2 texPos1; texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r); texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g); highp vec2 texPos2; texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r); texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g); lowp vec4 newColor1 = texture2D(lookupTable, texPos1); lowp vec4 newColor2 = texture2D(lookupTable, texPos2); lowp vec4 newColor = mix(newColor1, newColor2, fract(blueColor)); return newColor; } E   F GH *+ ,+%com/example/mp4composer/utils/EglUtil ,I JKandroid/opengl/GLES20 LM NO PO'(Ljava/lang/String;Ljava/lang/String;)Vandroid/graphics/BitmapFactorydecodeResource;(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;(Landroid/graphics/Bitmap;IZ)I getHandle(Ljava/lang/String;)IglActiveTexture(I)V glBindTexture(II)V glUniform1i! \***+*!9 :;<"#$%& j***+ *!? @AB" #$'()*+ ; * * !GHI"  #$,+ Q*** !LMO" #$-.+ `*< *!ST UVW"#$/01PK!!pg* * 0com/example/mp4composer/filter/GlLutFilter.class3X3456 7 89 : ;< => ? @ A B C D EF EGFRAGMENT_SHADERLjava/lang/String; ConstantValuehTexI lutTextureLandroid/graphics/Bitmap;(Landroid/graphics/Bitmap;)VCodeLineNumberTableLocalVariableTablethis,Lcom/example/mp4composer/filter/GlLutFilter;bitmap#(Landroid/content/res/Resources;I)V resourcesLandroid/content/res/Resources;fxIDonDraw()VoffsetDepthMapTextureUniformsetup loadTexture StackMapTablereleaseLutBitmapreset SourceFileGlLutFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } *com/example/mp4composer/filter/GlLutFilterprecision mediump float;uniform mediump sampler2D lutTexture; uniform lowp sampler2D sTexture; varying highp vec2 vTextureCoord; vec4 sampleAs3DTexture(vec3 uv) { float width = 16.; float sliceSize = 1.0 / width; float slicePixelSize = sliceSize / width; float sliceInnerSize = slicePixelSize * (width - 1.0); float zSlice0 = min(floor(uv.z * width), width - 1.0); float zSlice1 = min(zSlice0 + 1.0, width - 1.0); float xOffset = slicePixelSize * 0.5 + uv.x * sliceInnerSize; float s0 = xOffset + (zSlice0 * sliceSize); float s1 = xOffset + (zSlice1 * sliceSize); vec4 slice0Color = texture2D(lutTexture, vec2(s0, uv.y)); vec4 slice1Color = texture2D(lutTexture, vec2(s1, uv.y)); float zOffset = mod(uv.z * width, 1.0); vec4 result = mix(slice0Color, slice1Color, zOffset); return result; } void main() { vec4 pixel = texture2D(sTexture, vTextureCoord); vec4 gradedPixel = sampleAs3DTexture(pixel.rgb); gradedPixel.a = pixel.a; pixel = gradedPixel; gl_FragColor = pixel; } H %com/example/mp4composer/utils/EglUtil I JK LMandroid/opengl/GLES20 NO PQ RQ ,* -* -ST UV W*'(Ljava/lang/String;Ljava/lang/String;)Vandroid/graphics/BitmapFactorydecodeResource;(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; getHandle(Ljava/lang/String;)IglActiveTexture(I)V glBindTexture(II)V glUniform1i(Landroid/graphics/Bitmap;IZ)Iandroid/graphics/Bitmap isRecycled()Zrecycle!S**+* /0 12!"#$%a**+ * 6789! "#&'()*`* <  * AB CDE!"#+,*; ** IJK!  "#-*Q*** NOQ! "#./*]**** TUVX! "#.0*E*** [\]! "#12PK!!M##7com/example/mp4composer/filter/GlMonochromeFilter.class3, ! " # $%FRAGMENT_SHADERLjava/lang/String; ConstantValue intensityF()VCodeLineNumberTableLocalVariableTablethis3Lcom/example/mp4composer/filter/GlMonochromeFilter; getIntensity()F setIntensity(F)VonDraw SourceFileGlMonochromeFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 1com/example/mp4composer/filter/GlMonochromeFilterprecision lowp float;varying highp vec2 vTextureCoord;uniform lowp sampler2D sTexture;uniform float intensity;const mediump vec3 luminanceWeighting = vec3(0.2125, 0.7154, 0.0721);void main() {lowp vec4 textureColor = texture2D(sTexture, vTextureCoord);float luminance = dot(textureColor.rgb, luminanceWeighting);lowp vec4 desat = vec4(vec3(luminance), 1.0);lowp vec4 outputColor = vec4((desat.r < 0.5 ? (2.0 * desat.r * 0.6) : (1.0 - 2.0 * (1.0 - desat.r) * (1.0 - 0.6))),(desat.g < 0.5 ? (2.0 * desat.g * 0.45) : (1.0 - 2.0 * (1.0 - desat.g) * (1.0 - 0.45))),(desat.b < 0.5 ? (2.0 * desat.b * 0.3) : (1.0 - 2.0 * (1.0 - desat.b) * (1.0 - 0.3))),1.0);gl_FragColor = vec4(mix(textureColor.rgb, outputColor.rgb, intensity), textureColor.a);} &  '() *+'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!   @** (% ) /*, >*# 01 <**  5 6 PK!!Dz4com/example/mp4composer/filter/GlOpacityFilter.class3*    ! "#OPACITY_FRAGMENT_SHADERLjava/lang/String; ConstantValueopacityF()VCodeLineNumberTableLocalVariableTablethis0Lcom/example/mp4composer/filter/GlOpacityFilter; setOpacity(F)VonDraw SourceFileGlOpacityFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } .com/example/mp4composer/filter/GlOpacityFilter'precision mediump float; varying highp vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform lowp float opacity; void main() { lowp vec4 textureColor = texture2D(sTexture, vTextureCoord); gl_FragColor = vec4(textureColor.rgb, textureColor.a * opacity); } $  %&' ()'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!   @**   >*#  ! <**  % & PK!!j| 4com/example/mp4composer/filter/GlOverlayFilter.class3RSTU V W XY Z [ \ ] ^ _ ` ab cd e fg h i/ j c_ c` kl cmn o _ ` p qr s t cu vw x cytextures[IbitmapLandroid/graphics/Bitmap;inputResolutionLandroid/util/Size;FRAGMENT_SHADERLjava/lang/String; ConstantValue()VCodeLineNumberTableLocalVariableTablethis0Lcom/example/mp4composer/filter/GlOverlayFilter; setResolution(Landroid/util/Size;)V resolution setFrameSize(II)VwidthIheight createBitmapsetuponDraw bitmapCanvasLandroid/graphics/Canvas;offsetDepthMapTextureUniform StackMapTablen drawCanvas(Landroid/graphics/Canvas;)V releaseBitmap(Landroid/graphics/Bitmap;)V SourceFileGlOverlayFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } .com/example/mp4composer/filter/GlOverlayFilterQprecision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform lowp sampler2D oTexture; void main() { lowp vec4 textureColor = texture2D(sTexture, vTextureCoord); lowp vec4 textureColor2 = texture2D(oTexture, vTextureCoord); gl_FragColor = mix(textureColor, textureColor2, textureColor2.a); } 5z ,- ./android/util/Size 5@ 01 ?@ <= NO {| }|~  D E6 android/opengl/GLES20 @ D6 android/graphics/Canvas 5O LMoTexture  @ 6'(Ljava/lang/String;Ljava/lang/String;)VgetWidth()I getHeightandroid/graphics/Bitmap$ConfigConfig InnerClasses ARGB_8888 Landroid/graphics/Bitmap$Config;android/graphics/Bitmap=(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap; glGenTextures(I[II)V glBindTextureglTexParameteri(III)Vandroid/graphics/Colorargb(IIII)I eraseColor(I)Vscale(FFFF)V getHandle(Ljava/lang/String;)IglActiveTexture isRecycled()Zandroid/opengl/GLUtils texImage2D (IIILandroid/graphics/Bitmap;I)V glUniform1irecycle!,-./01234567`&** **Yз 8%9 &:;<=7>*+ 8 '(9:;>1?@7Z* *Y 8,-.9 :;ABCBD67R * ** * 81239  :;E67L** *. (& (& ( (*8& 78 9;%<1=<>G@KA9 L:;F67+**** ** **Y*L+ + l+!l"*+#*$%=&' *.**( *)*8>EF H-I1L?MKN`OeQlSqT}VWZ[9 :;KXGHl7IBJ  !kKLM NO7Q**( *+K8` abd9 ./JPQ ac@PK!!77com/example/mp4composer/filter/GlPixelationFilter.class38&'() * +: a , - . / 01PIXELATION_FRAGMENT_SHADERLjava/lang/String; ConstantValuepixelFimageWidthFactorimageHeightFactor()VCodeLineNumberTableLocalVariableTablethis3Lcom/example/mp4composer/filter/GlPixelationFilter; setFrameSize(II)VwidthIheightonDraw SourceFileGlPixelationFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 1com/example/mp4composer/filter/GlPixelationFilterprecision highp float; varying highp vec2 vTextureCoord; uniform float imageWidthFactor; uniform float imageHeightFactor; uniform lowp sampler2D sTexture; uniform float pixel; void main() { vec2 uv = vTextureCoord.xy; float dx = pixel * imageWidthFactor; float dy = pixel * imageHeightFactor; vec2 coord = vec2(dx * floor(uv.x / dx), dy * floor(uv.y / dy)); vec3 tc = texture2D(sTexture, coord).xyz; gl_FragColor = vec4(tc, 1.0); } 2     345 67'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!T** **  ! a* * n* n %&'(  !"!#^(* * * * * * , -.'/ ($%PK!!aa6com/example/mp4composer/filter/GlPosterizeFilter.class3+  ! " #$POSTERIZE_FRAGMENT_SHADERLjava/lang/String; ConstantValue colorLevelsI()VCodeLineNumberTableLocalVariableTablethis2Lcom/example/mp4composer/filter/GlPosterizeFilter;setColorLevels(I)V StackMapTableonDraw SourceFileGlPosterizeFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 0com/example/mp4composer/filter/GlPosterizeFilterprecision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform highp float colorLevels; void main() { highp vec4 textureColor = texture2D(sTexture, vTextureCoord); gl_FragColor = floor((textureColor * colorLevels) + vec4(0.5)) / colorLevels; } %  &'( )*'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!   A**  v# * ** !"###  =**  '( PK!!Obb0com/example/mp4composer/filter/GlRGBFilter.class34#$%& ' ( ) * + ,-RGB_FRAGMENT_SHADERLjava/lang/String; ConstantValueredFgreenblue()VCodeLineNumberTableLocalVariableTablethis,Lcom/example/mp4composer/filter/GlRGBFilter;setRed(F)VsetGreensetBlueonDraw SourceFileGlRGBFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } *com/example/mp4composer/filter/GlRGBFilterwprecision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform highp float red; uniform highp float green; uniform highp float blue; void main() { highp vec4 textureColor = texture2D(sTexture, vTextureCoord); gl_FragColor = vec4(textureColor.r * red, textureColor.g * green, textureColor.b * blue, 1.0); } .    /01 23'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!R** * * ! "# >*# &'>*# *+>*# ./ ^(* * * * * * 3 45'6 (!"PK!!{7com/example/mp4composer/filter/GlSaturationFilter.class3*    ! "#SATURATION_FRAGMENT_SHADERLjava/lang/String; ConstantValue saturationF()VCodeLineNumberTableLocalVariableTablethis3Lcom/example/mp4composer/filter/GlSaturationFilter; setSaturation(F)VonDraw SourceFileGlSaturationFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 1com/example/mp4composer/filter/GlSaturationFilterprecision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform lowp float saturation; const mediump vec3 luminanceWeighting = vec3(0.2125, 0.7154, 0.0721); void main() { lowp vec4 textureColor = texture2D(sTexture, vTextureCoord); lowp float luminance = dot(textureColor.rgb, luminanceWeighting); lowp vec3 greyScaleColor = vec3(luminance); gl_FragColor = vec4(mix(greyScaleColor, textureColor.rgb, saturation), textureColor.w); } $  %&' ()'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!   @**   >*# !" <**  & ' PK!!R##2com/example/mp4composer/filter/GlSepiaFilter.class3 FRAGMENT_SHADERLjava/lang/String; ConstantValue()VCodeLineNumberTableLocalVariableTablethis.Lcom/example/mp4composer/filter/GlSepiaFilter; SourceFileGlSepiaFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } ,com/example/mp4composer/filter/GlSepiaFilterprecision mediump float;varying vec2 vTextureCoord;uniform lowp sampler2D sTexture;const highp vec3 weight = vec3(0.2125, 0.7154, 0.0721);void main() { vec4 FragColor = texture2D(sTexture, vTextureCoord); gl_FragColor.r = dot(FragColor.rgb, vec3(.393, .769, .189)); gl_FragColor.g = dot(FragColor.rgb, vec3(.349, .686, .168)); gl_FragColor.b = dot(FragColor.rgb, vec3(.272, .534, .131)); } '(Ljava/lang/String;Ljava/lang/String;)V!  7 *   PK!!{U  4com/example/mp4composer/filter/GlSharpenFilter.class3;*+, -;o . / 0 1 234 VERTEX_SHADERLjava/lang/String; ConstantValueFRAGMENT_SHADERimageWidthFactorFimageHeightFactor sharpness()VCodeLineNumberTableLocalVariableTablethis0Lcom/example/mp4composer/filter/GlSharpenFilter; getSharpness()F setSharpness(F)V setFrameSize(II)VwidthIheightonDraw SourceFileGlSharpenFilter.java.com/example/mp4composer/filter/GlSharpenFilterwattribute vec4 aPosition;attribute vec4 aTextureCoord;uniform float imageWidthFactor;uniform float imageHeightFactor;uniform float sharpness;varying highp vec2 textureCoordinate;varying highp vec2 leftTextureCoordinate;varying highp vec2 rightTextureCoordinate;varying highp vec2 topTextureCoordinate;varying highp vec2 bottomTextureCoordinate;varying float centerMultiplier;varying float edgeMultiplier;void main() {gl_Position = aPosition;mediump vec2 widthStep = vec2(imageWidthFactor, 0.0);mediump vec2 heightStep = vec2(0.0, imageHeightFactor);textureCoordinate = aTextureCoord.xy;leftTextureCoordinate = textureCoordinate - widthStep;rightTextureCoordinate = textureCoordinate + widthStep;topTextureCoordinate = textureCoordinate + heightStep;bottomTextureCoordinate = textureCoordinate - heightStep;centerMultiplier = 1.0 + 4.0 * sharpness;edgeMultiplier = sharpness;}precision highp float;uniform lowp sampler2D sTexture;varying highp vec2 textureCoordinate;varying highp vec2 leftTextureCoordinate;varying highp vec2 rightTextureCoordinate;varying highp vec2 topTextureCoordinate;varying highp vec2 bottomTextureCoordinate;varying float centerMultiplier;varying float edgeMultiplier;void main() {mediump vec3 textureColor = texture2D(sTexture, textureCoordinate).rgb;mediump vec3 leftTextureColor = texture2D(sTexture, leftTextureCoordinate).rgb;mediump vec3 rightTextureColor = texture2D(sTexture, rightTextureCoordinate).rgb;mediump vec3 topTextureColor = texture2D(sTexture, topTextureCoordinate).rgb;mediump vec3 bottomTextureColor = texture2D(sTexture, bottomTextureCoordinate).rgb;gl_FragColor = vec4((textureColor * centerMultiplier - (leftTextureColor * edgeMultiplier + rightTextureColor * edgeMultiplier + topTextureColor * edgeMultiplier + bottomTextureColor * edgeMultiplier)), texture2D(sTexture, bottomTextureCoordinate).w);} 5    678 9:'com/example/mp4composer/filter/GlFilter'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!T**** IDEFJ /*M  !>*# QR"#W* n* nWXY $%&%'^(* * * * * * ] ^_'` (()PK!!-]E5com/example/mp4composer/filter/GlSolarizeFilter.class3+  ? ! " #$SOLATIZE_FRAGMENT_SHADERLjava/lang/String; ConstantValue thresholdF()VCodeLineNumberTableLocalVariableTablethis1Lcom/example/mp4composer/filter/GlSolarizeFilter; setThreshold(F)VonDraw SourceFileGlSolarizeFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } /com/example/mp4composer/filter/GlSolarizeFilterprecision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform highp float threshold; const highp vec3 W = vec3(0.2125, 0.7154, 0.0721); void main() { highp vec4 textureColor = texture2D(sTexture, vTextureCoord); highp float luminance = dot(textureColor.rgb, W); highp float thresholdResult = step(luminance, threshold); highp vec3 finalColor = abs(thresholdResult - textureColor.rgb); gl_FragColor = vec4(finalColor, textureColor.w); } %  &'( )*'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!  A** >*# !"<* *  & ' PK!!L =com/example/mp4composer/filter/GlSphereRefractionFilter.class3D-./0 1? 2 3 4 5?5 67 8 9: 9;FRAGMENT_SHADERLjava/lang/String; ConstantValuecenterXFcenterYradius aspectRatiorefractiveIndex()VCodeLineNumberTableLocalVariableTablethis9Lcom/example/mp4composer/filter/GlSphereRefractionFilter; setCenterX(F)V setCenterY setRadiussetAspectRatiosetRefractiveIndexonDraw SourceFileGlSphereRefractionFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 7com/example/mp4composer/filter/GlSphereRefractionFilterprecision mediump float;varying vec2 vTextureCoord;uniform lowp sampler2D sTexture;uniform highp vec2 center;uniform highp float radius;uniform highp float aspectRatio;uniform highp float refractiveIndex;void main() {highp vec2 textureCoordinateToUse = vec2(vTextureCoord.x, (vTextureCoord.y * aspectRatio + 0.5 - 0.5 * aspectRatio));highp float distanceFromCenter = distance(center, textureCoordinateToUse);lowp float checkForPresenceWithinSphere = step(distanceFromCenter, radius);distanceFromCenter = distanceFromCenter / radius;highp float normalizedDepth = radius * sqrt(1.0 - distanceFromCenter * distanceFromCenter);highp vec3 sphereNormal = normalize(vec3(textureCoordinateToUse - center, normalizedDepth));highp vec3 refractedVector = refract(vec3(0.0, 0.0, -1.0), sphereNormal, refractiveIndex);gl_FragColor = texture2D(sTexture, (refractedVector.xy + 1.0) * 0.5) * checkForPresenceWithinSphere;} <     center =>? @A BC'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform2f(IFF)V glUniform1f(IF)V!h&**** * *  +$%&'(%,! &"#$%>*# /0!"#&%>*# 34!"#'%>*#  78!"#(%>*#  ;<!"#)%>*#  ?@!"#*s9* **** ** **  FGH+I8J! 9"#+,PK!!}2com/example/mp4composer/filter/GlSwirlFilter.class3F+,-. / 0? 12 3 4 5 6 7 89 8:SWIRL_FRAGMENT_SHADERLjava/lang/String; ConstantValueangleFradiuscenterLandroid/graphics/PointF;()VCodeLineNumberTableLocalVariableTablethis.Lcom/example/mp4composer/filter/GlSwirlFilter;setAngle(F)V setRadius setCenter(Landroid/graphics/PointF;)VonDraw SourceFileGlSwirlFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } ,com/example/mp4composer/filter/GlSwirlFilterprecision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform highp vec2 center; uniform highp float radius; uniform highp float angle; void main() { highp vec2 textureCoordinateToUse = vTextureCoord; highp float dist = distance(center, vTextureCoord); if (dist < radius) { textureCoordinateToUse -= center; highp float percent = (radius - dist) / radius; highp float theta = percent * percent * angle * 8.0; highp float s = sin(theta); highp float c = cos(theta); textureCoordinateToUse = vec2(dot(textureCoordinateToUse, vec2(c, -s)), dot(textureCoordinateToUse, vec2(s, c))); textureCoordinateToUse += center; } gl_FragColor = texture2D(sTexture, textureCoordinateToUse ); } ;  android/graphics/PointF <  => ? @A BC DE'(Ljava/lang/String;Ljava/lang/String;)V(FF)V getHandle(Ljava/lang/String;)Ixyandroid/opengl/GLES20 glUniform2f(IFF)V glUniform1f(IF)V!]#** ** Y &) *+"' #!"#$>*# ./ !"%$>*# 23 !"&'>*+  67 !"(h2* * * * ** *;<$=1> 2!")*PK!!}ʸb b Ccom/example/mp4composer/filter/GlThreex3TextureSamplingFilter.class37() * + , - ./0,THREE_X_THREE_TEXTURE_SAMPLING_VERTEX_SHADERLjava/lang/String; ConstantValue texelWidthF texelHeight(Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis?Lcom/example/mp4composer/filter/GlThreex3TextureSamplingFilter;fragmentShaderSource getTexelWidth()F setTexelWidth(F)VgetTexelHeightsetTexelHeight setFrameSize(II)VwidthIheightonDraw()V SourceFile#GlThreex3TextureSamplingFilter.java=com/example/mp4composer/filter/GlThreex3TextureSamplingFilterattribute vec4 aPosition;attribute vec4 aTextureCoord;uniform highp float texelWidth;uniform highp float texelHeight;varying highp vec2 textureCoordinate;varying highp vec2 leftTextureCoordinate;varying highp vec2 rightTextureCoordinate;varying highp vec2 topTextureCoordinate;varying highp vec2 topLeftTextureCoordinate;varying highp vec2 topRightTextureCoordinate;varying highp vec2 bottomTextureCoordinate;varying highp vec2 bottomLeftTextureCoordinate;varying highp vec2 bottomRightTextureCoordinate;void main() {gl_Position = aPosition;vec2 widthStep = vec2(texelWidth, 0.0);vec2 heightStep = vec2(0.0, texelHeight);vec2 widthHeightStep = vec2(texelWidth, texelHeight);vec2 widthNegativeHeightStep = vec2(texelWidth, -texelHeight);textureCoordinate = aTextureCoord.xy;leftTextureCoordinate = textureCoordinate - widthStep;rightTextureCoordinate = textureCoordinate + widthStep;topTextureCoordinate = textureCoordinate - heightStep;topLeftTextureCoordinate = textureCoordinate - widthHeightStep;topRightTextureCoordinate = textureCoordinate + widthNegativeHeightStep;bottomTextureCoordinate = textureCoordinate + heightStep;bottomLeftTextureCoordinate = textureCoordinate - widthNegativeHeightStep;bottomRightTextureCoordinate = textureCoordinate + widthHeightStep;} 1   234 56'com/example/mp4composer/filter/GlFilter'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!   @*+ 67 /*: >*# >?/*B >*# FG W* n* nKLM !"#"$%M*** *Q RS &'PK!!lG8com/example/mp4composer/filter/GlToneCurveFilter$1.class3i . /0 1 ,2 3 ,4 56 ,7 ,8 ,9 ,: ,; 5<= > ?@C ?A BC DEFGthis$02Lcom/example/mp4composer/filter/GlToneCurveFilter;5(Lcom/example/mp4composer/filter/GlToneCurveFilter;)VCodeLineNumberTableLocalVariableTablethis InnerClasses4Lcom/example/mp4composer/filter/GlToneCurveFilter$1;run()VcurrentCurveIndexI StackMapTable SourceFileGlToneCurveFilter.javaEnclosingMethodH I%  %android/opengl/GLES20 JK LM NO PQR ST UQ VQ WQ XY Z[ \]java/lang/Float ^_` ab cbd ef gh2com/example/mp4composer/filter/GlToneCurveFilter$1java/lang/Objectjava/lang/Runnable0com/example/mp4composer/filter/GlToneCurveFilterupdateToneCurveTextureglActiveTexture(I)V access$0006(Lcom/example/mp4composer/filter/GlToneCurveFilter;)[I glBindTexture(II)V access$100I(Lcom/example/mp4composer/filter/GlToneCurveFilter;)Ljava/util/ArrayList;java/util/ArrayListsize()I access$200 access$300 access$400 access$5028(Lcom/example/mp4composer/filter/GlToneCurveFilter;[B)[B access$5006(Lcom/example/mp4composer/filter/GlToneCurveFilter;)[Bget(I)Ljava/lang/Object; floatValue()Fjava/lang/Mathmax(FF)Fminjava/nio/ByteBufferwrap([B)Ljava/nio/ByteBuffer; glTexImage2D(IIIIIIIILjava/nio/Buffer;)V > *+*  !# $% b *.* @* 0*  * * W<*h`* b* b ~T*h`* b* b ~T*h*b* b ~T*h`T$ *2 Taj.<Ba c&'b!#( c)*+,-" PK!!:8com/example/mp4composer/filter/GlToneCurveFilter$2.class3/ ! " #$ %&'(this$02Lcom/example/mp4composer/filter/GlToneCurveFilter;5(Lcom/example/mp4composer/filter/GlToneCurveFilter;)VCodeLineNumberTableLocalVariableTablethis InnerClasses4Lcom/example/mp4composer/filter/GlToneCurveFilter$2;compare5(Landroid/graphics/PointF;Landroid/graphics/PointF;)Ipoint1Landroid/graphics/PointF;point2 StackMapTable'(Ljava/lang/Object;Ljava/lang/Object;)I SignatureCLjava/lang/Object;Ljava/util/Comparator; SourceFileGlToneCurveFilter.javaEnclosingMethod) *+ , -.android/graphics/PointF 2com/example/mp4composer/filter/GlToneCurveFilter$2java/lang/Objectjava/util/Comparator0com/example/mp4composer/filter/GlToneCurveFiltercreateSplineCurve1([Landroid/graphics/PointF;)Ljava/util/ArrayList;()VxF    > *+*   v+,+,   A 7 *+,    PK!!r''6com/example/mp4composer/filter/GlToneCurveFilter.class3x   ?      /   #         -; -  -d 4     :   !" > #$% &C ' A( ) A* -+ -, -- ./ .0@ 12 A3 14 56 78 T9@@o 1:@ T; InnerClassesFRAGMENT_SHADERLjava/lang/String; ConstantValuergbCompositeControlPoints[Landroid/graphics/PointF;redControlPointsgreenControlPointsblueControlPointsrgbCompositeCurveLjava/util/ArrayList; Signature(Ljava/util/ArrayList;redCurve greenCurve blueCurve runOnDrawLjava/util/LinkedList;,Ljava/util/LinkedList;textures[ItoneCurveByteArray[B(Ljava/io/InputStream;)VCodeLineNumberTableLocalVariableTablethis2Lcom/example/mp4composer/filter/GlToneCurveFilter;inputLjava/io/InputStream;defaultCurvePointssetup()V StackMapTableonDrawoffsetDepthMapTextureUniformIsetFromCurveFileInputStreamySxj pointCountpointsiversion totalCurvescurves pointRateFeLjava/io/IOException;LocalVariableTypeTable1Ljava/util/ArrayList<[Landroid/graphics/PointF;>;< readShort(Ljava/io/InputStream;)S ExceptionssetRgbCompositeControlPoints([Landroid/graphics/PointF;)VsetRedControlPointssetGreenControlPointssetBlueControlPoints(Ljava/lang/Runnable;)VrunnableLjava/lang/Runnable;=>updateToneCurveTexturecreateSplineCurve1([Landroid/graphics/PointF;)Ljava/util/ArrayList;pointLandroid/graphics/PointF; origPointLandroid/graphics/Point;distancenewPoint pointsSortedconvertedPoints[Landroid/graphics/Point; splinePointsfirstSplinePointlastSplinePointpreparedSplinePoints/Ljava/util/ArrayList;%?D([Landroid/graphics/PointF;)Ljava/util/ArrayList;createSplineCurve20([Landroid/graphics/Point;)Ljava/util/ArrayList;tDabhcurnextsdAnsd[Doutput)Ljava/util/ArrayList;J([Landroid/graphics/Point;)Ljava/util/ArrayList;createSecondDerivativeP1P2P3kmatrix[[DresultD([Landroid/graphics/Point;)Ljava/util/ArrayList; access$0006(Lcom/example/mp4composer/filter/GlToneCurveFilter;)[Ix0 access$100I(Lcom/example/mp4composer/filter/GlToneCurveFilter;)Ljava/util/ArrayList; access$200 access$300 access$400 access$5028(Lcom/example/mp4composer/filter/GlToneCurveFilter;[B)[Bx1 access$5006(Lcom/example/mp4composer/filter/GlToneCurveFilter;)[B SourceFileGlToneCurveFilter.java tu hi ni mi li rs'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 0com/example/mp4composer/filter/GlToneCurveFilterLprecision mediump float; varying highp vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform mediump sampler2D toneCurveTexture; void main() { lowp vec4 textureColor = texture2D(sTexture, vTextureCoord); lowp float redCurveValue = texture2D(toneCurveTexture, vec2(textureColor.r, 0.0)).r; lowp float greenCurveValue = texture2D(toneCurveTexture, vec2(textureColor.g, 0.0)).g; lowp float blueCurveValue = texture2D(toneCurveTexture, vec2(textureColor.b, 0.0)).b; gl_FragColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, textureColor.a); } v@android/graphics/PointF vA cd ed fd gdjava/util/LinkedList v op w BCandroid/opengl/GLES20 DE FG HI JKjava/lang/Runnable LtoneCurveTexture MN OPQ RS TU VE java/util/ArrayList vP WX< Y Z[java/io/IOException \ ]^ _`2com/example/mp4composer/filter/GlToneCurveFilter$1 va od bK2com/example/mp4composer/filter/GlToneCurveFilter$2c deandroid/graphics/Point vE Wf g^ hi? jI Kk lm nop qr java/lang/Double st uv qwjava/io/InputStreamjava/lang/Objectjava/lang/Throwablejava/util/Iterator'(Ljava/lang/String;Ljava/lang/String;)V(FF)V glGenTextures(I[II)V glBindTexture(II)VglTexParameteri(III)VisEmpty()Z removeFirst()Ljava/lang/Object;run getHandle(Ljava/lang/String;)IglActiveTexture(I)Vjava/nio/ByteBufferwrap([B)Ljava/nio/ByteBuffer; glTexImage2D(IIIIIIIILjava/nio/Buffer;)V glUniform1iadd(Ljava/lang/Object;)Zcloseget(I)Ljava/lang/Object;printStackTraceread()IaddLast(Ljava/lang/Object;)V5(Lcom/example/mp4composer/filter/GlToneCurveFilter;)Vclonejava/util/Arrayssort,([Ljava/lang/Object;Ljava/util/Comparator;)V(ILjava/lang/Object;)Vsizeiterator()Ljava/util/Iterator;hasNextjava/lang/Mathpow(DD)Dsqrt(D)Djava/lang/FloatvalueOf(F)Ljava/lang/Float; doubleValue()Dround(D)J(D)Ljava/lang/Double;!  `ab cdedfdgdhijklijkmijknijkopjqrstuvwx* *  Y Y SY Y SY Y SM*,*,*,*,*Y*+********y:718:9?:D;I<N>Y@^BfCnDvE~Gz {|}~:Edxd** *. (& (& (  ( *!*"#$y* KL MO%P1Q<RGTQUcWz d{|Gx :*%&<'( *. *)*+y\^ _a4c9dz:{|3wx +,=+,>-Y.:/86R+,6 :6  -+,6 +,6  Y j j S 0W+1*23*23*23*23M,54y^hi kln!p'r.x8y>zD|\xbjnptz > D 11 'C.<dU i{|}~ 530 : x8*6x*6yz }~4xV*+***7*8yz{|dxV*+***7*8yz{|dxV*+***7*8yz{|dxV*+***7*8yz{|dox*YM*+9,çN,-yz{|x; *:Y*;<y  z  {|x d+++=3M,>Y*?@,AN6+,,2:-AYBCjDCjES-F:2A:G%G6AYEHId2A:G,G`6AYE0W-YI.:J:KmLA: AY G GE:  G GdMO P PdMOcQ8  P P v8  R0Wyv %/5RX^iq}ANS^ a z5(0x H A [ d{|ddQd%?^ii~i^~kZ 3/$e 33j x 3*SL+I=N6-+2TUR-Y`.:6d*2:*`2:G6GGdGGdo9  g9  9 GGd9 Pk PkckVo  k k g-1k  k k g-`1kckc9X X9 9AYZE0WP-I**d20Wyr .4@!K"Q#Y%j&()*,./014 %!9$:0<z s0`QYC3.i )@i.@_  j x/ *<[MN,2R,2R,2R6d*d2:*2:*`2:,2GGdVoR,2GGd\oR,2GGdVoR-PPdGGdoPPdGGdogRf-R-dR,d2R,d2R,d2R6E,21,d21o9,2\1,d21kgR,2R-\1-d1kgRd6E,21,`21o9,2\1,`21kgR,2R-\1-`1kgR-Y.:6-1,21o^0Wy%@AB EFGI!J'L2M:N@OHQ^RtSTLXY[]^abcde.a4h>iOjckjlzhoprz:@Hy*+HO+9G &i &+ [$GF jx/*yz |x/*yz |x/*yz |x/*yz |x/*yz |x;*+Zyz|ux/*yz |_>:PK!!) ) 1com/example/mp4composer/filter/GlToneFilter.class32#$ %>L &A ' ( )*+FRAGMENT_SHADERLjava/lang/String; ConstantValue thresholdFquantizationLevels()VCodeLineNumberTableLocalVariableTablethis-Lcom/example/mp4composer/filter/GlToneFilter; getThreshold()F setThreshold(F)VgetQuantizationLevelssetQuantizationLevelsonDraw SourceFileGlToneFilter.java+com/example/mp4composer/filter/GlToneFilterprecision highp float; uniform lowp sampler2D sTexture; varying vec2 textureCoordinate; varying vec2 leftTextureCoordinate; varying vec2 rightTextureCoordinate; varying vec2 topTextureCoordinate; varying vec2 topLeftTextureCoordinate; varying vec2 topRightTextureCoordinate; varying vec2 bottomTextureCoordinate; varying vec2 bottomLeftTextureCoordinate; varying vec2 bottomRightTextureCoordinate; uniform highp float threshold;uniform highp float quantizationLevels;const highp vec3 W = vec3(0.2125, 0.7154, 0.0721);void main() { vec4 textureColor = texture2D(sTexture, textureCoordinate);float bottomLeftIntensity = texture2D(sTexture, bottomLeftTextureCoordinate).r;float topRightIntensity = texture2D(sTexture, topRightTextureCoordinate).r;float topLeftIntensity = texture2D(sTexture, topLeftTextureCoordinate).r;float bottomRightIntensity = texture2D(sTexture, bottomRightTextureCoordinate).r;float leftIntensity = texture2D(sTexture, leftTextureCoordinate).r;float rightIntensity = texture2D(sTexture, rightTextureCoordinate).r;float bottomIntensity = texture2D(sTexture, bottomTextureCoordinate).r;float topIntensity = texture2D(sTexture, topTextureCoordinate).r;float h = -topLeftIntensity - 2.0 * topIntensity - topRightIntensity + bottomLeftIntensity + 2.0 * bottomIntensity + bottomRightIntensity;float v = -bottomLeftIntensity - 2.0 * leftIntensity - topLeftIntensity + bottomRightIntensity + 2.0 * rightIntensity + topRightIntensity;float mag = length(vec2(h, v));vec3 posterizedImageColor = floor((textureColor.rgb * quantizationLevels) + 0.5) / quantizationLevels;float thresholdTest = 1.0 - step(threshold, mag);gl_FragColor = vec4(posterizedImageColor * thresholdTest, textureColor.a);} ,   -./ 01=com/example/mp4composer/filter/GlThreex3TextureSamplingFilter(Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!  I***;6 7< /*A >*# EF/*I >*# MN M* * * * T UV !"PK!!]5com/example/mp4composer/filter/GlVibranceFilter.class3*    ! "#VIBRANCE_FRAGMENT_SHADERLjava/lang/String; ConstantValuevibranceF()VCodeLineNumberTableLocalVariableTablethis1Lcom/example/mp4composer/filter/GlVibranceFilter; setVibrance(F)VonDraw SourceFileGlVibranceFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } /com/example/mp4composer/filter/GlVibranceFilterprecision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform lowp float vibrance; void main() { lowp vec4 color = texture2D(sTexture, vTextureCoord); lowp float average = (color.r + color.g + color.b) / 3.0; lowp float mx = max(color.r, max(color.g, color.b)); lowp float amt = (mx - average) * (-vibrance * 3.0); color.rgb = mix(color.rgb, vec3(mx), amt); gl_FragColor = color; } $  %&' ()'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!   @**   >*#  <**  # $ PK!!Q5com/example/mp4composer/filter/GlVignetteFilter.class3A+,-. /? 0 1>L 2?Y 34 5 67 68FRAGMENT_SHADERLjava/lang/String; ConstantValuevignetteCenterXFvignetteCenterY vignetteStart vignetteEnd()VCodeLineNumberTableLocalVariableTablethis1Lcom/example/mp4composer/filter/GlVignetteFilter;getVignetteStart()FsetVignetteStart(F)VgetVignetteEndsetVignetteEndonDraw SourceFileGlVignetteFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } /com/example/mp4composer/filter/GlVignetteFilterprecision mediump float;varying vec2 vTextureCoord;uniform lowp sampler2D sTexture;uniform lowp vec2 vignetteCenter;uniform highp float vignetteStart;uniform highp float vignetteEnd;void main() {lowp vec3 rgb = texture2D(sTexture, vTextureCoord).rgb;lowp float d = distance(vTextureCoord, vec2(vignetteCenter.x, vignetteCenter.y));lowp float percent = smoothstep(vignetteStart, vignetteEnd, d);gl_FragColor = vec4(mix(rgb.x, 0.0, percent), mix(rgb.y, 0.0, percent), mix(rgb.z, 0.0, percent), 1.0);} 9    vignetteCenter :;< => ?@'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform2f(IFF)V glUniform1f(IF)V!_!**** * " # ! !"#/* '  !$%>*#  +, !&#/* /  !'%>*#  34 !(b,* **** ** :;<+= , !)*PK!!w8com/example/mp4composer/filter/GlWatermarkFilter$1.class30        !#D$SwitchMap$com$example$mp4composer$filter$GlWatermarkFilter$Position[I()VCodeLineNumberTableLocalVariableTable StackMapTable SourceFileGlWatermarkFilter.javaEnclosingMethod$% '( )* +,java/lang/NoSuchFieldError -* .* /*2com/example/mp4composer/filter/GlWatermarkFilter$1 InnerClassesjava/lang/Object0com/example/mp4composer/filter/GlWatermarkFilter9com/example/mp4composer/filter/GlWatermarkFilter$PositionPositionvalues>()[Lcom/example/mp4composer/filter/GlWatermarkFilter$Position;LEFT_TOP;Lcom/example/mp4composer/filter/GlWatermarkFilter$Position;ordinal()I LEFT_BOTTOM RIGHT_TOP RIGHT_BOTTOM   F OKOKOKOK #&'256ADWMMM" &@PK!!6_kk?com/example/mp4composer/filter/GlWatermarkFilter$Position.class3< , -.0 1 2 2 3 4 5 67LEFT_TOPPosition InnerClasses;Lcom/example/mp4composer/filter/GlWatermarkFilter$Position; LEFT_BOTTOM RIGHT_TOP RIGHT_BOTTOM$VALUES<[Lcom/example/mp4composer/filter/GlWatermarkFilter$Position;values>()[Lcom/example/mp4composer/filter/GlWatermarkFilter$Position;CodeLineNumberTablevalueOfO(Ljava/lang/String;)Lcom/example/mp4composer/filter/GlWatermarkFilter$Position;LocalVariableTablenameLjava/lang/String;(Ljava/lang/String;I)Vthis Signature()VMLjava/lang/Enum; SourceFileGlWatermarkFilter.java  89:9com/example/mp4composer/filter/GlWatermarkFilter$Position ; #$    java/lang/Enumclone()Ljava/lang/Object;0com/example/mp4composer/filter/GlWatermarkFilter5(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;@1@@@@ " - 4 *-  !"#$1*+- %&'('|TY Y  Y  YY SY SY SYS. /0'14-&)*+ /@PK!!a6com/example/mp4composer/filter/GlWatermarkFilter.class3D & ' ( ) *+ , - ./ .0 *0 .1 *1234 InnerClasses5PositionbitmapLandroid/graphics/Bitmap;position;Lcom/example/mp4composer/filter/GlWatermarkFilter$Position;(Landroid/graphics/Bitmap;)VCodeLineNumberTableLocalVariableTablethis2Lcom/example/mp4composer/filter/GlWatermarkFilter;W(Landroid/graphics/Bitmap;Lcom/example/mp4composer/filter/GlWatermarkFilter$Position;)V drawCanvas(Landroid/graphics/Canvas;)VcanvasLandroid/graphics/Canvas; StackMapTable SourceFileGlWatermarkFilter.java 6 7  8 9: ;< =>? @A B> C>0com/example/mp4composer/filter/GlWatermarkFilter.com/example/mp4composer/filter/GlOverlayFilter2com/example/mp4composer/filter/GlWatermarkFilter$19com/example/mp4composer/filter/GlWatermarkFilter$Position()VLEFT_TOPandroid/graphics/Bitmap isRecycled()ZD$SwitchMap$com$example$mp4composer$filter$GlWatermarkFilter$Position[Iordinal()Iandroid/graphics/Canvas drawBitmap6(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V getHeightgetWidth! Q***+ d***+*,   ***. .Hb+* Z+* + * d@+*+ * d &+*+ * d+ * d* <GJ!a"d${%~'+!"#< "$% @PK!!()VCodeLineNumberTableLocalVariableTablethis;Lcom/example/mp4composer/filter/GlWeakPixelInclusionFilter; SourceFileGlWeakPixelInclusionFilter.java9com/example/mp4composer/filter/GlWeakPixelInclusionFilterpprecision lowp float; uniform lowp sampler2D sTexture; varying vec2 textureCoordinate; varying vec2 leftTextureCoordinate; varying vec2 rightTextureCoordinate; varying vec2 topTextureCoordinate; varying vec2 topLeftTextureCoordinate; varying vec2 topRightTextureCoordinate; varying vec2 bottomTextureCoordinate; varying vec2 bottomLeftTextureCoordinate; varying vec2 bottomRightTextureCoordinate; void main() { float bottomLeftIntensity = texture2D(sTexture, bottomLeftTextureCoordinate).r;float topRightIntensity = texture2D(sTexture, topRightTextureCoordinate).r;float topLeftIntensity = texture2D(sTexture, topLeftTextureCoordinate).r;float bottomRightIntensity = texture2D(sTexture, bottomRightTextureCoordinate).r;float leftIntensity = texture2D(sTexture, leftTextureCoordinate).r;float rightIntensity = texture2D(sTexture, rightTextureCoordinate).r;float bottomIntensity = texture2D(sTexture, bottomTextureCoordinate).r;float topIntensity = texture2D(sTexture, topTextureCoordinate).r;float centerIntensity = texture2D(sTexture, textureCoordinate).r;float pixelIntensitySum = bottomLeftIntensity + topRightIntensity + topLeftIntensity + bottomRightIntensity + leftIntensity + rightIntensity + bottomIntensity + topIntensity + centerIntensity;float sumTest = step(1.5, pixelIntensitySum);float pixelTest = step(0.01, centerIntensity);gl_FragColor = vec4(vec3(sumTest * pixelTest), 1.0);} =com/example/mp4composer/filter/GlThreex3TextureSamplingFilter(Ljava/lang/String;)V!  5* -.  PK!!˷B  9com/example/mp4composer/filter/GlWhiteBalanceFilter.class3:*+,- .E@ / 0?:6C-@?uMUi@Y 1 23WHITE_BALANCE_FRAGMENT_SHADERLjava/lang/String; ConstantValue temperatureFtint()VCodeLineNumberTableLocalVariableTablethis5Lcom/example/mp4composer/filter/GlWhiteBalanceFilter;setTemperature(F)V StackMapTable,setTintonDraw SourceFileGlWhiteBalanceFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } 3com/example/mp4composer/filter/GlWhiteBalanceFilter uniform lowp sampler2D sTexture; varying vec2 vTextureCoord; uniform lowp float temperature; uniform lowp float tint; const lowp vec3 warmFilter = vec3(0.93, 0.54, 0.0); const mediump mat3 RGBtoYIQ = mat3(0.299, 0.587, 0.114, 0.596, -0.274, -0.322, 0.212, -0.523, 0.311); const mediump mat3 YIQtoRGB = mat3(1.0, 0.956, 0.621, 1.0, -0.272, -0.647, 1.0, -1.105, 1.702); void main() { lowp vec4 source = texture2D(sTexture, vTextureCoord); mediump vec3 yiq = RGBtoYIQ * source.rgb; //adjusting tint yiq.b = clamp(yiq.b + tint*0.5226*0.1, -0.5226, 0.5226); lowp vec3 rgb = YIQtoRGB * yiq; lowp vec3 processed = vec3( (rgb.r < 0.5 ? (2.0 * rgb.r * warmFilter.r) : (1.0 - 2.0 * (1.0 - rgb.r) * (1.0 - warmFilter.r))), //adjusting temperature (rgb.g < 0.5 ? (2.0 * rgb.g * warmFilter.g) : (1.0 - 2.0 * (1.0 - rgb.g) * (1.0 - warmFilter.g))), (rgb.b < 0.5 ? (2.0 * rgb.b * warmFilter.b) : (1.0 - 2.0 * (1.0 - rgb.b) * (1.0 - warmFilter.b)))); gl_FragColor = vec4(mix(rgb, processed, temperature), source.a); } 4   567 89'(Ljava/lang/String;Ljava/lang/String;)V getHandle(Ljava/lang/String;)Iandroid/opengl/GLES20 glUniform1f(IF)V!J*** %()&  !"#x%*# # gk # gk ,$-% !%$V% %%&#D *#o 0 1 ! 'M****5 67  !()PK!!MY 5com/example/mp4composer/filter/GlZoomBlurFilter.class3A'()* +,? - . / 0 1 2 34 35ZOOM_BLUR_FRAGMENT_SHADERLjava/lang/String; ConstantValue blurCenterLandroid/graphics/PointF;blurSizeF()VCodeLineNumberTableLocalVariableTablethis1Lcom/example/mp4composer/filter/GlZoomBlurFilter; setBlurCenter(Landroid/graphics/PointF;)V setBlurSize(F)VonDraw SourceFileGlZoomBlurFilter.java'com/example/mp4composer/filter/GlFilterattribute highp vec4 aPosition; attribute highp vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { gl_Position = aPosition; vTextureCoord = aTextureCoord.xy; } /com/example/mp4composer/filter/GlZoomBlurFilternprecision mediump float; varying vec2 vTextureCoord; uniform lowp sampler2D sTexture; uniform highp vec2 blurCenter; uniform highp float blurSize; void main() { // TODO: Do a more intelligent scaling based on resolution here highp vec2 samplingOffset = 1.0/100.0 * (blurCenter - vTextureCoord) * blurSize; lowp vec4 fragmentColor = texture2D(sTexture, vTextureCoord) * 0.18; fragmentColor += texture2D(sTexture, vTextureCoord + samplingOffset) * 0.15; fragmentColor += texture2D(sTexture, vTextureCoord + (2.0 * samplingOffset)) * 0.12; fragmentColor += texture2D(sTexture, vTextureCoord + (3.0 * samplingOffset)) * 0.09; fragmentColor += texture2D(sTexture, vTextureCoord + (4.0 * samplingOffset)) * 0.05; fragmentColor += texture2D(sTexture, vTextureCoord - samplingOffset) * 0.15; fragmentColor += texture2D(sTexture, vTextureCoord - (2.0 * samplingOffset)) * 0.12; fragmentColor += texture2D(sTexture, vTextureCoord - (3.0 * samplingOffset)) * 0.09; fragmentColor += texture2D(sTexture, vTextureCoord - (4.0 * samplingOffset)) * 0.05; gl_FragColor = fragmentColor; } 6android/graphics/PointF 7   89 : ;< => ?@'(Ljava/lang/String;Ljava/lang/String;)V(FF)V getHandle(Ljava/lang/String;)Ixyandroid/opengl/GLES20 glUniform2f(IFF)V glUniform1f(IF)V!S**Y * '#$(  !>*+  +,"#>*#  /0$W%* * * * * 45$6 %%&PK!!*1j j 4com/example/mp4composer/gl/GlFramebufferObject.class3S 0T /U /V /W XYZ T[ \ ] ^ _`i /a b /c@ d e /fA g h i j k lm n o pqr )_ s t uvwwidthIheightframebufferNamerenderBufferNametexName()VCodeLineNumberTableLocalVariableTablethis0Lcom/example/mp4composer/gl/GlFramebufferObject;getWidth()I getHeight getTexNamesetup(II)VstatuseLjava/lang/RuntimeException;args[IsaveFramebuffersaveRenderbuffer saveTexName StackMapTableHqreleaseenable SourceFileGlFramebufferObject.javaandroid/opengl/GLES20 78 12 32 62 xy"java/lang/IllegalArgumentExceptionjava/lang/StringBuilderGL_MAX_TEXTURE_SIZE z{ z| }~ 7GL_MAX_RENDERBUFFER_SIZE O8 y 42 C y 52 C y C java/lang/RuntimeException(Failed to initialize framebuffer object y y y.com/example/mp4composer/gl/GlFramebufferObjectjava/lang/Object glGetIntegerv(I[II)Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;toString()Ljava/lang/String;(Ljava/lang/String;)VglGenFramebuffersglBindFramebufferglGenRenderbuffersglBindRenderbufferglRenderbufferStorage(IIII)VglFramebufferRenderbuffer glGenTextures glBindTexture%com/example/mp4composer/utils/EglUtil setupSampler(III)V glTexImage2D(IIIIIIIILjava/nio/Buffer;)VglFramebufferTexture2D(IIIII)VglCheckFramebufferStatus(I)IglDeleteTexturesglDeleteRenderbuffersglDeleteFramebuffers!/01232425262789/*:; <=>?9/*:!; <=@?9/*:%; <=A?9/*:); <=BC9 s N 3--. -. YY  -. --. -. YY  -. --.6--.6--.6***--*-.*--*-.** --!*-. *" &&# $% *&'6()YY *  + :* "PS):)-/ 0174>5L6i9p:u;|<=>@CDFGHJKLMNPQRTVW&Y-Z4[P`S]U^Y_\bccjdre;\ -#D2UEFs<=s12s32oGHuI2J2K2LMBNO89> L+*O++,*+*O++-*+*O++.*:. hi jklm%n*o1p8q=r;><=:GHP898 *: u v;  <=QRPK!!y7 *com/example/mp4composer/gl/GlPreview.class3DEF G H IeJ KL MNOPQ RS T UV WXYZ[ \ ] ^ _ ` a b c de f g hGL_TEXTURE_EXTERNAL_OESI ConstantValue VERTEX_SHADERLjava/lang/String; texTarget(I)VCodeLineNumberTableLocalVariableTablethis&Lcom/example/mp4composer/gl/GlPreview;#createFragmentShaderSourceOESIfNeed(I)Ljava/lang/String; StackMapTablesetup()Vdraw (I[F[FF)VtexName mvpMatrix[FstMatrix aspectRatioF SourceFileGlPreview.javaandroid/opengl/GLES20$com/example/mp4composer/gl/GlPreviewIuniform mat4 uMVPMatrix; uniform mat4 uSTMatrix; uniform float uCRatio; attribute vec4 aPosition; attribute vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { vec4 scaledPos = aPosition; scaledPos.x = scaledPos.x * uCRatio; gl_Position = uMVPMatrix * scaledPos; vTextureCoord = (uSTMatrix * aTextureCoord).xy; } 56 .i -)java/lang/StringBuilder .9/#extension GL_OES_EGL_image_external : require jk'com/example/mp4composer/filter/GlFilterprecision mediump float; varying highp vec2 vTextureCoord; uniform lowp sampler2D sTexture; void main() { gl_FragColor = texture2D(sTexture, vTextureCoord); }  sampler2DsamplerExternalOESl mn op 89 uMVPMatrix qr uSTMatrixuCRatio aPosition aTextureCoord s9 tu vw xy z{ |/ }~ / {sTexture { /'(Ljava/lang/String;Ljava/lang/String;)Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;java/lang/StringreplaceD(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;toString()Ljava/lang/String; getHandle(Ljava/lang/String;)I useProgramglUniformMatrix4fv (IIZ[FI)V glUniform1f(IF)VgetVertexBufferName()I glBindBuffer(II)VglEnableVertexAttribArrayglVertexAttribPointer (IIIZII)VglActiveTexture glBindTexture glUniform1i glDrawArrays(III)VglDisableVertexAttribArray! ()*+,*-)./0L**1% &'234-) 560p%Y     1*+,-.!+"02 %-)7"890j(**W*W*W*W*W156 789 :';2 (34:;0:**,*-**** ** !"*#*$%&*'*' #1J>@AB)D2E;FLGUHgJlKtL~NPQRST2434<)=>?>@ABCPK!! B B 0com/example/mp4composer/gl/GlPreviewFilter.class3ABC D E FeG HI JKLMN OP Q RS T UVW X Y Z[ \ ]^ _ `a b c dGL_TEXTURE_EXTERNAL_OESI ConstantValue VERTEX_SHADERLjava/lang/String; texTarget(I)VCodeLineNumberTableLocalVariableTablethis,Lcom/example/mp4composer/gl/GlPreviewFilter;#createFragmentShaderSourceOESIfNeed(I)Ljava/lang/String; StackMapTabledraw (I[F[FF)VtexName mvpMatrix[FstMatrix aspectRatioF SourceFileGlPreviewFilter.javaandroid/opengl/GLES20*com/example/mp4composer/gl/GlPreviewFilterIuniform mat4 uMVPMatrix; uniform mat4 uSTMatrix; uniform float uCRatio; attribute vec4 aPosition; attribute vec4 aTextureCoord; varying highp vec2 vTextureCoord; void main() { vec4 scaledPos = aPosition; scaledPos.x = scaledPos.x * uCRatio; gl_Position = uMVPMatrix * scaledPos; vTextureCoord = (uSTMatrix * aTextureCoord).xy; } 45 -e ,(java/lang/StringBuilder -f/#extension GL_OES_EGL_image_external : require gh'com/example/mp4composer/filter/GlFilterprecision mediump float; varying highp vec2 vTextureCoord; uniform lowp sampler2D sTexture; void main() { gl_FragColor = texture2D(sTexture, vTextureCoord); }  sampler2DsamplerExternalOESi jk lm nf uMVPMatrix op qr uSTMatrixuCRatio st uv wx aPosition y. z{ aTextureCoord |. }xsTexture ~x  .'(Ljava/lang/String;Ljava/lang/String;)V()Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;java/lang/StringreplaceD(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;toString()Ljava/lang/String; useProgram getHandle(Ljava/lang/String;)IglUniformMatrix4fv (IIZ[FI)V glUniform1f(IF)VgetVertexBufferName()I glBindBuffer(II)VglEnableVertexAttribArrayglVertexAttribPointer (IIIZII)VglActiveTexture glBindTexture glUniform1i glDrawArrays(III)VglDisableVertexAttribArray! '()*+),(-./L**0% &'123,( 45/p%Y     0*+,-.!+"01 %,(6"78/:**,*-******  !*"*#$%*&*& "0J4678):2;;<L=U>g@lAtB~DFGHIJ14239(:;<;=>?@PK!!P1com/example/mp4composer/gl/GlSurfaceTexture.class3@ 23 4 5 6 78e 9 : ; <=>?surfaceTexture!Landroid/graphics/SurfaceTexture;onFrameAvailableListenerOnFrameAvailableListener InnerClasses:Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;(I)VCodeLineNumberTableLocalVariableTablethis-Lcom/example/mp4composer/gl/GlSurfaceTexture;texNameIsetOnFrameAvailableListener=(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)VlgetTextureTarget()IupdateTexImage()VgetTransformMatrix([F)Vmtx[FgetSurfaceTexture#()Landroid/graphics/SurfaceTexture;onFrameAvailable$(Landroid/graphics/SurfaceTexture;)V StackMapTablerelease SourceFileGlSurfaceTexture.java %android/graphics/SurfaceTexture    $com/example/mp4composer/gl/GlPreview $% &' ,- /%+com/example/mp4composer/gl/GlSurfaceTexturejava/lang/Object8android/graphics/SurfaceTexture$OnFrameAvailableListener! Y**Y**     >*+ !"#- $%6*   &'A *+    ()*+/*" ,-Z*** &')./%6*  ,- 01  PK!!S2com/example/mp4composer/logger/AndroidLogger.class3(     !()VCodeLineNumberTableLocalVariableTablethis.Lcom/example/mp4composer/logger/AndroidLogger;debug'(Ljava/lang/String;Ljava/lang/String;)VtagLjava/lang/String;messageerror<(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)VLjava/lang/Throwable;warning SourceFileAndroidLogger.java  " #$ %& '$,com/example/mp4composer/logger/AndroidLoggerjava/lang/Object%com/example/mp4composer/logger/Loggerandroid/util/Logd'(Ljava/lang/String;Ljava/lang/String;)Ie<(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)Iw!  /*    I+,W     T+,-W  *  I+,W   PK!![+com/example/mp4composer/logger/Logger.class3   debug'(Ljava/lang/String;Ljava/lang/String;)Verror<(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)Vwarning SourceFile Logger.java%com/example/mp4composer/logger/Loggerjava/lang/Object PK!!#H8com/example/mp4composer/source/DataSource$Listener.class3  onError(Ljava/lang/Exception;)V SourceFileDataSource.java 2com/example/mp4composer/source/DataSource$ListenerListener InnerClassesjava/lang/Object)com/example/mp4composer/source/DataSource   PK!!<+ii/com/example/mp4composer/source/DataSource.class3  Listener InnerClassesgetFileDescriptor()Ljava/io/FileDescriptor;RuntimeInvisibleAnnotationsLandroidx/annotation/NonNull; SourceFileDataSource.java)com/example/mp4composer/source/DataSourcejava/lang/Object2com/example/mp4composer/source/DataSource$Listener     PK!!!=com/example/mp4composer/source/FileDescriptorDataSource.class3  fileDescriptorLjava/io/FileDescriptor;(Ljava/io/FileDescriptor;)VCodeLineNumberTableLocalVariableTablethis9Lcom/example/mp4composer/source/FileDescriptorDataSource;getFileDescriptor()Ljava/io/FileDescriptor;RuntimeInvisibleAnnotationsLandroidx/annotation/NonNull; SourceFileFileDescriptorDataSource.java  7com/example/mp4composer/source/FileDescriptorDataSourcejava/lang/Object)com/example/mp4composer/source/DataSource()V!  F **+      /*   PK!!cLg337com/example/mp4composer/source/FilePathDataSource.class3` ?@ AB CD EF GH I J KLMN OPQRTAGLjava/lang/String;fileDescriptorLjava/io/FileDescriptor;SListener InnerClassesp(Ljava/lang/String;Lcom/example/mp4composer/logger/Logger;Lcom/example/mp4composer/source/DataSource$Listener;)VCodeLineNumberTableLocalVariableTablefileInputStreamLjava/io/FileInputStream;eLjava/io/FileNotFoundException;Ljava/io/IOException;this3Lcom/example/mp4composer/source/FilePathDataSource;filePathlogger'Lcom/example/mp4composer/logger/Logger;listener4Lcom/example/mp4composer/source/DataSource$Listener;srcFileLjava/io/File; StackMapTableNTUS@DBL$RuntimeInvisibleParameterAnnotationsLandroidx/annotation/NonNull;getFileDescriptor()Ljava/io/FileDescriptor;RuntimeInvisibleAnnotations()V SourceFileFilePathDataSource.java < java/io/File Vjava/io/FileInputStream Wjava/io/FileNotFoundException Unable to find fileU XY Z[ \9 java/io/IOExceptionUnable to read input file1com/example/mp4composer/source/FilePathDataSource] ^_java/lang/Object)com/example/mp4composer/source/DataSource2com/example/mp4composer/source/DataSource$Listenerjava/lang/String%com/example/mp4composer/logger/Logger(Ljava/lang/String;)V(Ljava/io/File;)Verror<(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)VonError(Ljava/lang/Exception;)VgetFDjava/lang/Class getSimpleName()Ljava/lang/String;!BX*Y+:Y::, - * :, - 4=@ :+34 =$@!B"O#W%\  !"B!#X$%X&X'(X)*J+,4$ -&./01234K5677789/* * $%:7;<! =>  PK!!gg2com/example/mp4composer/source/UriDataSource.class3` ; <=> ?@A BC DE F GH IJ KLMNTAGLjava/lang/String;fileDescriptorLjava/io/FileDescriptor;OListener InnerClasses(Landroid/net/Uri;Landroid/content/Context;Lcom/example/mp4composer/logger/Logger;Lcom/example/mp4composer/source/DataSource$Listener;)VCodeLineNumberTableLocalVariableTableeLjava/io/FileNotFoundException;this.Lcom/example/mp4composer/source/UriDataSource;uriLandroid/net/Uri;contextLandroid/content/Context;logger'Lcom/example/mp4composer/logger/Logger;listener4Lcom/example/mp4composer/source/DataSource$Listener;parcelFileDescriptor!Landroid/os/ParcelFileDescriptor; StackMapTableJPQROSA$RuntimeInvisibleParameterAnnotationsLandroidx/annotation/NonNull;getFileDescriptor()Ljava/io/FileDescriptor;RuntimeInvisibleAnnotations()V SourceFileUriDataSource.java 8Q TUrV WXjava/io/FileNotFoundException Unable to find fileR YZ [\S 45 ,com/example/mp4composer/source/UriDataSource] ^_java/lang/Object)com/example/mp4composer/source/DataSource2com/example/mp4composer/source/DataSource$Listenerandroid/net/Uriandroid/content/Context%com/example/mp4composer/logger/Loggerandroid/os/ParcelFileDescriptorgetContentResolver#()Landroid/content/ContentResolver;android/content/ContentResolveropenFileDescriptorF(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;error<(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)VonError(Ljava/lang/Exception;)Vjava/lang/Class getSimpleName()Ljava/lang/String;! 9*:,+::- * * %./8H99 !9"#9$%9&'2()*+,-./012333345/* $ 6378!  9:  PK!!rvZ+com/example/mp4composer/utils/EglUtil.class3p 4q r s t uvw qx y z { |} ~      /  ! !  !      FG/  NO_TEXTUREI ConstantValueFLOAT_SIZE_BYTES()VCodeLineNumberTableLocalVariableTablethis'Lcom/example/mp4composer/utils/EglUtil; loadShader(Ljava/lang/String;I)I strSourceLjava/lang/String;iTypecompiled[IiShader StackMapTableH createProgram(II)I vertexShader pixelShaderprogram linkStatus Exceptions setupSampler(III)Vtargetmagmin createBuffer([F)Idata[F(Ljava/nio/FloatBuffer;)ILjava/nio/FloatBuffer;buffers toFloatBuffer([F)Ljava/nio/FloatBuffer;bufferupdateBufferData(ILjava/nio/FloatBuffer;)V bufferName loadTexture(Landroid/graphics/Bitmap;IZ)IimgLandroid/graphics/Bitmap; usedTexIdrecycleZtextures SourceFile EglUtil.javaandroid/opengl/GLES20 ;< Load Shader Failedjava/lang/StringBuilder Compilation  java/lang/RuntimeExceptionCould not create program ; Could not link program U `a Y] cd%com/example/mp4composer/utils/EglUtil   a   k<java/lang/Objectandroid/opengl/GLExceptionglCreateShader(I)IglShaderSource(ILjava/lang/String;)VglCompileShader(I)V glGetShaderiv(II[II)Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;glGetShaderInfoLog(I)Ljava/lang/String;toString()Ljava/lang/String;android/util/Logd'(Ljava/lang/String;Ljava/lang/String;)IglCreateProgram()I(Ljava/lang/String;)VglAttachShader(II)V glLinkProgramglGetProgramivglDeleteProgramglTexParameterf(IIF)VglTexParameteri glGenBuffers(I[II)Vjava/nio/ByteBufferallocateDirect(I)Ljava/nio/ByteBuffer;java/nio/ByteOrder nativeOrder()Ljava/nio/ByteOrder;order+(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer; asFloatBuffer()Ljava/nio/FloatBuffer;java/nio/FloatBufferputposition(I)Ljava/nio/Buffer; glBindBuffercapacity glBufferData(IILjava/nio/Buffer;I)V glGenTextures glBindTextureandroid/opengl/GLUtils texImage2D(IILandroid/graphics/Bitmap;I)V texSubImage2D (IIIILandroid/graphics/Bitmap;)Vandroid/graphics/Bitmap!!45678967: ;<=3*> ? @A BC=@ M>*,,.! Y   W>& &' ()*+ ,<->/?*@DE@F6<GH 7I6J >K LM=C= Y N--.Y>2 34589; <$=,>3?7@AB?*CN6CO6?P6$QHJ .KRS TU=s%((((>F GHI$J? %V6%W6%X6 YZ=2*>M? [\ Y]=V L+++.* +.>QR ST?[^_H `a=e*h"#$%L+*&'W+>XYZ [\]?[\ b^ cd=[()(+*h++,()>abcd?e6[^ fg=q NJ-- -.. (/ (/ (0 (0 *1 . *2-O*3-.>>gh ijk#m.o9qDtPvWwaxezi{m}?*qhiqj6qklmmHJ PKnoPK!!Ej}}$com/example/mp4composer/R$bool.class4com/example/mp4composer/R$booljava/lang/Objectcom/example/mp4composer/Rboolabc_action_bar_embed_tabsIabc_allow_stacked_button_bar abc_config_actionMenuItemAllCaps()V   ConstantValueCode InnerClasses1      * PK!!zz%com/example/mp4composer/R$color.class4ecom/example/mp4composer/R$colorjava/lang/Objectcom/example/mp4composer/Rcolor0abc_background_cache_hint_selector_material_darkI1abc_background_cache_hint_selector_material_light(abc_btn_colored_borderless_text_materialabc_btn_colored_text_materialabc_color_highlight_material!abc_hint_foreground_material_dark"abc_hint_foreground_material_light!abc_input_method_navigation_guard+abc_primary_text_disable_only_material_dark,abc_primary_text_disable_only_material_lightabc_primary_text_material_darkabc_primary_text_material_lightabc_search_url_textabc_search_url_text_normalabc_search_url_text_pressedabc_search_url_text_selected abc_secondary_text_material_dark!abc_secondary_text_material_lightabc_tint_btn_checkableabc_tint_defaultabc_tint_edittextabc_tint_seek_thumbabc_tint_spinnerabc_tint_switch_trackaccent_material_darkaccent_material_light!background_floating_material_dark"background_floating_material_lightbackground_material_darkbackground_material_light(bright_foreground_disabled_material_dark)bright_foreground_disabled_material_light'bright_foreground_inverse_material_dark(bright_foreground_inverse_material_lightbright_foreground_material_dark bright_foreground_material_lightbutton_material_darkbutton_material_light%dim_foreground_disabled_material_dark&dim_foreground_disabled_material_lightdim_foreground_material_darkdim_foreground_material_lighterror_color_material_darkerror_color_material_lightforeground_material_darkforeground_material_lighthighlighted_text_material_darkhighlighted_text_material_lightmaterial_blue_grey_800material_blue_grey_900material_blue_grey_950material_deep_teal_200material_deep_teal_500material_grey_100material_grey_300material_grey_50material_grey_600material_grey_800material_grey_850material_grey_900 notification_action_color_filternotification_icon_bg_colorprimary_dark_material_darkprimary_dark_material_lightprimary_material_darkprimary_material_light"primary_text_default_material_dark#primary_text_default_material_light#primary_text_disabled_material_dark$primary_text_disabled_material_lightripple_material_darkripple_material_light$secondary_text_default_material_dark%secondary_text_default_material_light%secondary_text_disabled_material_dark&secondary_text_disabled_material_light#switch_thumb_disabled_material_dark$switch_thumb_disabled_material_lightswitch_thumb_material_darkswitch_thumb_material_light!switch_thumb_normal_material_dark"switch_thumb_normal_material_lighttooltip_background_darktooltip_background_light()V ^_ ` ConstantValueCode InnerClasses1T  b b b b  b  b  b  b  b  b  b  b  b  b  b  b  b  b  b  b  b  b b ! b " b # b $ b % b & b ' b ( b ) b * b + b , b - b . b / b 0 b 1 b 2 b 3 b 4 b 5 b 6 b 7 b 8 b 9 b : b ; b < b = b > b ? b @ b A b B b C b D b E b F b G b H b I b J b K b L b M b N b O b P b Q b R b S b T b U b V b W b X b Y b Z b [ b \ b ] b ^_c*ad PK!! ^^(com/example/mp4composer/R$drawable.class4}"com/example/mp4composer/R$drawablejava/lang/Objectcom/example/mp4composer/Rdrawableabc_ab_share_pack_mtrl_alphaI'abc_action_bar_item_background_materialabc_btn_borderless_materialabc_btn_check_materialabc_btn_check_material_animabc_btn_check_to_on_mtrl_000abc_btn_check_to_on_mtrl_015abc_btn_colored_materialabc_btn_default_mtrl_shapeabc_btn_radio_materialabc_btn_radio_material_animabc_btn_radio_to_on_mtrl_000abc_btn_radio_to_on_mtrl_015abc_btn_switch_to_on_mtrl_00001abc_btn_switch_to_on_mtrl_00012abc_cab_background_internal_bgabc_cab_background_top_material!abc_cab_background_top_mtrl_alphaabc_control_background_materialabc_dialog_material_backgroundabc_edit_text_materialabc_ic_ab_back_material"abc_ic_arrow_drop_right_black_24dpabc_ic_clear_material#abc_ic_commit_search_api_mtrl_alphaabc_ic_go_search_api_materialabc_ic_menu_copy_mtrl_am_alphaabc_ic_menu_cut_mtrl_alphaabc_ic_menu_overflow_materialabc_ic_menu_paste_mtrl_am_alpha abc_ic_menu_selectall_mtrl_alphaabc_ic_menu_share_mtrl_alphaabc_ic_search_api_materialabc_ic_star_black_16dpabc_ic_star_black_36dpabc_ic_star_black_48dpabc_ic_star_half_black_16dpabc_ic_star_half_black_36dpabc_ic_star_half_black_48dp abc_ic_voice_search_api_materialabc_item_background_holo_darkabc_item_background_holo_lightabc_list_divider_materialabc_list_divider_mtrl_alphaabc_list_focused_holoabc_list_longpressed_holoabc_list_pressed_holo_darkabc_list_pressed_holo_light1abc_list_selector_background_transition_holo_dark2abc_list_selector_background_transition_holo_light$abc_list_selector_disabled_holo_dark%abc_list_selector_disabled_holo_lightabc_list_selector_holo_darkabc_list_selector_holo_light abc_menu_hardkey_panel_mtrl_multabc_popup_background_mtrl_mult abc_ratingbar_indicator_materialabc_ratingbar_materialabc_ratingbar_small_material#abc_scrubber_control_off_mtrl_alpha(abc_scrubber_control_to_pressed_mtrl_000(abc_scrubber_control_to_pressed_mtrl_005abc_scrubber_primary_mtrl_alphaabc_scrubber_track_mtrl_alphaabc_seekbar_thumb_materialabc_seekbar_tick_mark_materialabc_seekbar_track_materialabc_spinner_mtrl_am_alpha)abc_spinner_textfield_background_materialabc_switch_thumb_materialabc_switch_track_mtrl_alphaabc_tab_indicator_materialabc_tab_indicator_mtrl_alphaabc_text_cursor_material%abc_text_select_handle_left_mtrl_dark&abc_text_select_handle_left_mtrl_light'abc_text_select_handle_middle_mtrl_dark(abc_text_select_handle_middle_mtrl_light&abc_text_select_handle_right_mtrl_dark'abc_text_select_handle_right_mtrl_light"abc_textfield_activated_mtrl_alpha abc_textfield_default_mtrl_alpha)abc_textfield_search_activated_mtrl_alpha'abc_textfield_search_default_mtrl_alphaabc_textfield_search_materialabc_vector_testbtn_checkbox_checked_mtrl0btn_checkbox_checked_to_unchecked_mtrl_animationbtn_checkbox_unchecked_mtrl0btn_checkbox_unchecked_to_checked_mtrl_animationbtn_radio_off_mtrl"btn_radio_off_to_on_mtrl_animationbtn_radio_on_mtrl"btn_radio_on_to_off_mtrl_animationnotification_action_backgroundnotification_bgnotification_bg_lownotification_bg_low_normalnotification_bg_low_pressednotification_bg_normalnotification_bg_normal_pressednotification_icon_backgroundnotification_template_icon_bg!notification_template_icon_low_bgnotification_tile_bg!notify_panel_notification_icon_bgtooltip_frame_darktooltip_frame_light()V vw x ConstantValueCode InnerClasses1l  z z z z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z z ! z " z # z $ z % z & z ' z ( z ) z * z + z , z - z . z / z 0 z 1 z 2 z 3 z 4 z 5 z 6 z 7 z 8 z 9 z : z ; z < z = z > z ? z @ z A z B z C z D z E z F z G z H z I z J z K z L z M z N z O z P z Q z R z S z T z U z V z W z X z Y z Z z [ z \ z ] z ^ z _ z ` z a z b z c z d z e z f z g z h z i z j z k z l z m z n z o z p z q z r z s z t z u z vw{*y| PK!!3`NiNi)com/example/mp4composer/R$styleable.class4#com/example/mp4composer/R$styleablejava/lang/Objectcom/example/mp4composer/R styleable ActionBar[IActionBar_backgroundIActionBar_backgroundSplitActionBar_backgroundStackedActionBar_contentInsetEnd$ActionBar_contentInsetEndWithActionsActionBar_contentInsetLeftActionBar_contentInsetRightActionBar_contentInsetStart)ActionBar_contentInsetStartWithNavigation ActionBar_customNavigationLayout ActionBar_displayOptions ActionBar_divider ActionBar_elevation ActionBar_height ActionBar_hideOnContentScrollActionBar_homeAsUpIndicatorActionBar_homeLayoutActionBar_icon$ActionBar_indeterminateProgressStyleActionBar_itemPaddingActionBar_logoActionBar_navigationModeActionBar_popupThemeActionBar_progressBarPaddingActionBar_progressBarStyleActionBar_subtitleActionBar_subtitleTextStyleActionBar_titleActionBar_titleTextStyleActionBarLayout&ActionBarLayout_android_layout_gravityActionMenuItemView#ActionMenuItemView_android_minWidthActionMenuView ActionModeActionMode_backgroundActionMode_backgroundSplitActionMode_closeItemLayoutActionMode_heightActionMode_subtitleTextStyleActionMode_titleTextStyleActivityChooserView8ActivityChooserView_expandActivityOverflowButtonDrawable(ActivityChooserView_initialActivityCount AlertDialogAlertDialog_android_layoutAlertDialog_buttonIconDimen!AlertDialog_buttonPanelSideLayoutAlertDialog_listItemLayoutAlertDialog_listLayout!AlertDialog_multiChoiceItemLayoutAlertDialog_showTitle"AlertDialog_singleChoiceItemLayoutAnimatedStateListDrawableCompat4AnimatedStateListDrawableCompat_android_constantSize.AnimatedStateListDrawableCompat_android_dither9AnimatedStateListDrawableCompat_android_enterFadeDuration8AnimatedStateListDrawableCompat_android_exitFadeDuration7AnimatedStateListDrawableCompat_android_variablePadding/AnimatedStateListDrawableCompat_android_visibleAnimatedStateListDrawableItem.AnimatedStateListDrawableItem_android_drawable(AnimatedStateListDrawableItem_android_id#AnimatedStateListDrawableTransition4AnimatedStateListDrawableTransition_android_drawable2AnimatedStateListDrawableTransition_android_fromId6AnimatedStateListDrawableTransition_android_reversible0AnimatedStateListDrawableTransition_android_toIdAppCompatImageViewAppCompatImageView_android_srcAppCompatImageView_srcCompatAppCompatImageView_tintAppCompatImageView_tintModeAppCompatSeekBarAppCompatSeekBar_android_thumbAppCompatSeekBar_tickMarkAppCompatSeekBar_tickMarkTint!AppCompatSeekBar_tickMarkTintModeAppCompatTextHelper*AppCompatTextHelper_android_drawableBottom'AppCompatTextHelper_android_drawableEnd(AppCompatTextHelper_android_drawableLeft)AppCompatTextHelper_android_drawableRight)AppCompatTextHelper_android_drawableStart'AppCompatTextHelper_android_drawableTop*AppCompatTextHelper_android_textAppearanceAppCompatTextView(AppCompatTextView_android_textAppearance%AppCompatTextView_autoSizeMaxTextSize%AppCompatTextView_autoSizeMinTextSize%AppCompatTextView_autoSizePresetSizes)AppCompatTextView_autoSizeStepGranularity"AppCompatTextView_autoSizeTextType&AppCompatTextView_drawableBottomCompat#AppCompatTextView_drawableEndCompat$AppCompatTextView_drawableLeftCompat%AppCompatTextView_drawableRightCompat%AppCompatTextView_drawableStartCompatAppCompatTextView_drawableTint"AppCompatTextView_drawableTintMode#AppCompatTextView_drawableTopCompat*AppCompatTextView_firstBaselineToTopHeightAppCompatTextView_fontFamily'AppCompatTextView_fontVariationSettings,AppCompatTextView_lastBaselineToBottomHeightAppCompatTextView_lineHeightAppCompatTextView_textAllCapsAppCompatTextView_textLocaleAppCompatThemeAppCompatTheme_actionBarDivider&AppCompatTheme_actionBarItemBackground"AppCompatTheme_actionBarPopupThemeAppCompatTheme_actionBarSize"AppCompatTheme_actionBarSplitStyleAppCompatTheme_actionBarStyle#AppCompatTheme_actionBarTabBarStyle AppCompatTheme_actionBarTabStyle$AppCompatTheme_actionBarTabTextStyleAppCompatTheme_actionBarTheme#AppCompatTheme_actionBarWidgetTheme AppCompatTheme_actionButtonStyle"AppCompatTheme_actionDropDownStyle'AppCompatTheme_actionMenuTextAppearance"AppCompatTheme_actionMenuTextColor#AppCompatTheme_actionModeBackground)AppCompatTheme_actionModeCloseButtonStyle&AppCompatTheme_actionModeCloseDrawable%AppCompatTheme_actionModeCopyDrawable$AppCompatTheme_actionModeCutDrawable%AppCompatTheme_actionModeFindDrawable&AppCompatTheme_actionModePasteDrawable)AppCompatTheme_actionModePopupWindowStyle*AppCompatTheme_actionModeSelectAllDrawable&AppCompatTheme_actionModeShareDrawable(AppCompatTheme_actionModeSplitBackgroundAppCompatTheme_actionModeStyle*AppCompatTheme_actionModeWebSearchDrawable(AppCompatTheme_actionOverflowButtonStyle&AppCompatTheme_actionOverflowMenuStyle'AppCompatTheme_activityChooserViewStyle*AppCompatTheme_alertDialogButtonGroupStyle'AppCompatTheme_alertDialogCenterButtons AppCompatTheme_alertDialogStyle!AppCompatTheme_alertDialogTheme"+AppCompatTheme_android_windowAnimationStyle#'AppCompatTheme_android_windowIsFloating$(AppCompatTheme_autoCompleteTextViewStyle%$AppCompatTheme_borderlessButtonStyle&#AppCompatTheme_buttonBarButtonStyle'+AppCompatTheme_buttonBarNegativeButtonStyle(*AppCompatTheme_buttonBarNeutralButtonStyle)+AppCompatTheme_buttonBarPositiveButtonStyle*AppCompatTheme_buttonBarStyle+AppCompatTheme_buttonStyle,AppCompatTheme_buttonStyleSmall-AppCompatTheme_checkboxStyle.#AppCompatTheme_checkedTextViewStyle/AppCompatTheme_colorAccent0&AppCompatTheme_colorBackgroundFloating1 AppCompatTheme_colorButtonNormal2$AppCompatTheme_colorControlActivated3$AppCompatTheme_colorControlHighlight4!AppCompatTheme_colorControlNormal5AppCompatTheme_colorError6AppCompatTheme_colorPrimary7AppCompatTheme_colorPrimaryDark8%AppCompatTheme_colorSwitchThumbNormal9 AppCompatTheme_controlBackground:!AppCompatTheme_dialogCornerRadius;%AppCompatTheme_dialogPreferredPadding<AppCompatTheme_dialogTheme= AppCompatTheme_dividerHorizontal>AppCompatTheme_dividerVertical?$AppCompatTheme_dropDownListViewStyle@.AppCompatTheme_dropdownListPreferredItemHeightA!AppCompatTheme_editTextBackgroundBAppCompatTheme_editTextColorCAppCompatTheme_editTextStyleD AppCompatTheme_homeAsUpIndicatorEAppCompatTheme_imageButtonStyleF,AppCompatTheme_listChoiceBackgroundIndicatorG2AppCompatTheme_listChoiceIndicatorMultipleAnimatedH0AppCompatTheme_listChoiceIndicatorSingleAnimatedI%AppCompatTheme_listDividerAlertDialogJ AppCompatTheme_listMenuViewStyleK#AppCompatTheme_listPopupWindowStyleL&AppCompatTheme_listPreferredItemHeightM+AppCompatTheme_listPreferredItemHeightLargeN+AppCompatTheme_listPreferredItemHeightSmallO*AppCompatTheme_listPreferredItemPaddingEndP+AppCompatTheme_listPreferredItemPaddingLeftQ,AppCompatTheme_listPreferredItemPaddingRightR,AppCompatTheme_listPreferredItemPaddingStartSAppCompatTheme_panelBackgroundT!AppCompatTheme_panelMenuListThemeU!AppCompatTheme_panelMenuListWidthVAppCompatTheme_popupMenuStyleWAppCompatTheme_popupWindowStyleXAppCompatTheme_radioButtonStyleYAppCompatTheme_ratingBarStyleZ&AppCompatTheme_ratingBarStyleIndicator["AppCompatTheme_ratingBarStyleSmall\AppCompatTheme_searchViewStyle]AppCompatTheme_seekBarStyle^'AppCompatTheme_selectableItemBackground_1AppCompatTheme_selectableItemBackgroundBorderless`'AppCompatTheme_spinnerDropDownItemStyleaAppCompatTheme_spinnerStylebAppCompatTheme_switchStylec+AppCompatTheme_textAppearanceLargePopupMenud%AppCompatTheme_textAppearanceListIteme.AppCompatTheme_textAppearanceListItemSecondaryf*AppCompatTheme_textAppearanceListItemSmallg,AppCompatTheme_textAppearancePopupMenuHeaderh1AppCompatTheme_textAppearanceSearchResultSubtitlei.AppCompatTheme_textAppearanceSearchResultTitlej+AppCompatTheme_textAppearanceSmallPopupMenuk+AppCompatTheme_textColorAlertDialogListIteml!AppCompatTheme_textColorSearchUrlm+AppCompatTheme_toolbarNavigationButtonStylenAppCompatTheme_toolbarStyleo%AppCompatTheme_tooltipForegroundColorp%AppCompatTheme_tooltipFrameBackgroundq AppCompatTheme_viewInflaterClassrAppCompatTheme_windowActionBars%AppCompatTheme_windowActionBarOverlayt&AppCompatTheme_windowActionModeOverlayu%AppCompatTheme_windowFixedHeightMajorv%AppCompatTheme_windowFixedHeightMinorw$AppCompatTheme_windowFixedWidthMajorx$AppCompatTheme_windowFixedWidthMinory"AppCompatTheme_windowMinWidthMajorz"AppCompatTheme_windowMinWidthMinor{AppCompatTheme_windowNoTitle|ButtonBarLayoutButtonBarLayout_allowStackingColorStateListItemColorStateListItem_alpha ColorStateListItem_android_alpha ColorStateListItem_android_colorCompoundButtonCompoundButton_android_buttonCompoundButton_buttonCompatCompoundButton_buttonTintCompoundButton_buttonTintModeDrawerArrowToggle!DrawerArrowToggle_arrowHeadLength"DrawerArrowToggle_arrowShaftLengthDrawerArrowToggle_barLengthDrawerArrowToggle_colorDrawerArrowToggle_drawableSize DrawerArrowToggle_gapBetweenBarsDrawerArrowToggle_spinBarsDrawerArrowToggle_thickness FontFamily FontFamily_fontProviderAuthorityFontFamily_fontProviderCerts$FontFamily_fontProviderFetchStrategy#FontFamily_fontProviderFetchTimeoutFontFamily_fontProviderPackageFontFamily_fontProviderQueryFontFamilyFontFontFamilyFont_android_font FontFamilyFont_android_fontStyle,FontFamilyFont_android_fontVariationSettings!FontFamilyFont_android_fontWeightFontFamilyFont_android_ttcIndexFontFamilyFont_fontFontFamilyFont_fontStyle$FontFamilyFont_fontVariationSettingsFontFamilyFont_fontWeightFontFamilyFont_ttcIndex GradientColor!GradientColor_android_centerColorGradientColor_android_centerXGradientColor_android_centerYGradientColor_android_endColorGradientColor_android_endXGradientColor_android_endY$GradientColor_android_gradientRadius GradientColor_android_startColorGradientColor_android_startXGradientColor_android_startYGradientColor_android_tileModeGradientColor_android_typeGradientColorItemGradientColorItem_android_color GradientColorItem_android_offsetLinearLayoutCompat*LinearLayoutCompat_android_baselineAligned4LinearLayoutCompat_android_baselineAlignedChildIndex"LinearLayoutCompat_android_gravity&LinearLayoutCompat_android_orientation$LinearLayoutCompat_android_weightSumLinearLayoutCompat_divider!LinearLayoutCompat_dividerPadding*LinearLayoutCompat_measureWithLargestChildLinearLayoutCompat_showDividersLinearLayoutCompat_Layout0LinearLayoutCompat_Layout_android_layout_gravity/LinearLayoutCompat_Layout_android_layout_height/LinearLayoutCompat_Layout_android_layout_weight.LinearLayoutCompat_Layout_android_layout_widthListPopupWindow0ListPopupWindow_android_dropDownHorizontalOffset.ListPopupWindow_android_dropDownVerticalOffset MenuGroup#MenuGroup_android_checkableBehaviorMenuGroup_android_enabledMenuGroup_android_idMenuGroup_android_menuCategory!MenuGroup_android_orderInCategoryMenuGroup_android_visibleMenuItemMenuItem_actionLayoutMenuItem_actionProviderClassMenuItem_actionViewClassMenuItem_alphabeticModifiers#MenuItem_android_alphabeticShortcutMenuItem_android_checkableMenuItem_android_checkedMenuItem_android_enabledMenuItem_android_iconMenuItem_android_idMenuItem_android_menuCategory MenuItem_android_numericShortcutMenuItem_android_onClick MenuItem_android_orderInCategoryMenuItem_android_titleMenuItem_android_titleCondensedMenuItem_android_visibleMenuItem_contentDescriptionMenuItem_iconTintMenuItem_iconTintModeMenuItem_numericModifiersMenuItem_showAsActionMenuItem_tooltipTextMenuView!MenuView_android_headerBackground"MenuView_android_horizontalDividerMenuView_android_itemBackground&MenuView_android_itemIconDisabledAlpha#MenuView_android_itemTextAppearance MenuView_android_verticalDivider%MenuView_android_windowAnimationStyleMenuView_preserveIconSpacingMenuView_subMenuArrow PopupWindow'PopupWindow_android_popupAnimationStyle#PopupWindow_android_popupBackgroundPopupWindow_overlapAnchorPopupWindowBackgroundState-PopupWindowBackgroundState_state_above_anchorRecycleListView&RecycleListView_paddingBottomNoButtons!RecycleListView_paddingTopNoTitle SearchViewSearchView_android_focusableSearchView_android_imeOptionsSearchView_android_inputTypeSearchView_android_maxWidthSearchView_closeIconSearchView_commitIconSearchView_defaultQueryHintSearchView_goIconSearchView_iconifiedByDefaultSearchView_layoutSearchView_queryBackgroundSearchView_queryHintSearchView_searchHintIconSearchView_searchIconSearchView_submitBackgroundSearchView_suggestionRowLayoutSearchView_voiceIconSpinnerSpinner_android_dropDownWidthSpinner_android_entriesSpinner_android_popupBackgroundSpinner_android_promptSpinner_popupThemeStateListDrawable&StateListDrawable_android_constantSize StateListDrawable_android_dither+StateListDrawable_android_enterFadeDuration*StateListDrawable_android_exitFadeDuration)StateListDrawable_android_variablePadding!StateListDrawable_android_visibleStateListDrawableItem&StateListDrawableItem_android_drawable SwitchCompatSwitchCompat_android_textOffSwitchCompat_android_textOnSwitchCompat_android_thumbSwitchCompat_showTextSwitchCompat_splitTrackSwitchCompat_switchMinWidthSwitchCompat_switchPadding!SwitchCompat_switchTextAppearanceSwitchCompat_thumbTextPaddingSwitchCompat_thumbTintSwitchCompat_thumbTintModeSwitchCompat_trackSwitchCompat_trackTintSwitchCompat_trackTintModeTextAppearance!TextAppearance_android_fontFamily"TextAppearance_android_shadowColorTextAppearance_android_shadowDxTextAppearance_android_shadowDy#TextAppearance_android_shadowRadius TextAppearance_android_textColor$TextAppearance_android_textColorHint$TextAppearance_android_textColorLink%TextAppearance_android_textFontWeightTextAppearance_android_textSize TextAppearance_android_textStyleTextAppearance_android_typefaceTextAppearance_fontFamily$TextAppearance_fontVariationSettingsTextAppearance_textAllCapsTextAppearance_textLocaleToolbarToolbar_android_gravityToolbar_android_minHeightToolbar_buttonGravity"Toolbar_collapseContentDescriptionToolbar_collapseIconToolbar_contentInsetEnd"Toolbar_contentInsetEndWithActionsToolbar_contentInsetLeftToolbar_contentInsetRightToolbar_contentInsetStart'Toolbar_contentInsetStartWithNavigation Toolbar_logoToolbar_logoDescriptionToolbar_maxButtonHeight Toolbar_menu$Toolbar_navigationContentDescriptionToolbar_navigationIconToolbar_popupThemeToolbar_subtitleToolbar_subtitleTextAppearanceToolbar_subtitleTextColor Toolbar_titleToolbar_titleMarginToolbar_titleMarginBottomToolbar_titleMarginEndToolbar_titleMarginStartToolbar_titleMarginTopToolbar_titleMarginsToolbar_titleTextAppearanceToolbar_titleTextColorViewView_android_focusableView_android_themeView_paddingEndView_paddingStart View_themeViewBackgroundHelper'ViewBackgroundHelper_android_background#ViewBackgroundHelper_backgroundTint'ViewBackgroundHelper_backgroundTintModeViewStubCompatViewStubCompat_android_id!ViewStubCompat_android_inflatedIdViewStubCompat_android_layout()V Z[ \  _ E b? G e I g J i Q k T n   ] v d zJKI g  l B q nopm4 v  ~ W  r  t  x  }   2?p3o       &'(        o  /-01,.  v      d   b{      %$  abcd   @ -   L  R  V  ConstantValueCode InnerClasses1                      ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F  G H  I J K  L  M  N  O  P  Q R  S  T U  V  W  X  Y  Z  [  \  ] ^  _  `  a  b  c  d e  f  g h  i  j  k  l m  n  o  p  q r  s  t  u  v w  x  y  z  {  |  }  ~             " $ & ( * , . 0 2 4            " $ & ( * , . 0 2 4 6 8 : < > @ B D                                                                         ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s  t u  v  w  x y  z  {  |  } ~                                                                          "                                                                            "  $  &  (  *  ,  .  0  2  4  6  8                                                           "  $  &  (  *  ,                                                    "  $  &          !  "  #  $  %  &  '  ( " ) $ * & + ( , * - .  /  0  1  2  3  4  5  6  7  8  9 " : $ ; & < ( = * > , ? . @ 0 A 2 B 4 C 6 D 8 E : F < G > H @ I B J D K  L M  N  O  P  Q  R S  T  U  V W  X  Y Z[*] ^[   YOYOYOYOYOYOYOYOYOY OY OY OY OY OYOYOYOYOYOYOYOYOYOYOYOYOYOYOYO` YaOc YdOf h YOYOYOYOYOYOj YOYOl YmOYOYOYOYOYOYOYOo YpOYqOYrOYsOYtOYuOw YxOYyO{ YxOY|OY}OY~O YOYOYOYO YOYOYOYO YOYOYOYOYOYOYO YOYOYOYOYOYOYOYOYOY OY OY OY OY OYOYOYOYOYOYOYO} YOYOYOYOYOYOYOYOYOY OY OY OY OY OYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOY OY!OY"OY#OY$OY%OY&OY'OY(OY)OY*OY+OY,OY-OY.OY/OY0OY1OY2OY3OY4OY5OY6OY7OY8OY9OY:OY;OY<OY=OY>OY?OY@OYAOYBOYCOYDOYEOYFOYGOYHOYIOYJOYKOYLOYMOYNOYOOYPOYQOYROYSOYTOYUOYVOYWOYXOYYOYZOY[OY\OY]OY^OY_OY`OYaOYbOYcOYdOYeOYfOYgOYhOYiOYjOYkOYlOYmOYnOYoOYpOYqOYrOYsOYtOYuOYvOYwOYxOYyOYzOY{OY|O YO YOYOYO YOYOYOYO YOYOYOYOYOYOYOYO YOYOYOYOYOYO YOYOYOYOYOYOYOYOYOY O YOYOYOYOYOYOYOYOYOY OY OY O YOYO YOYOYOYOYOYOYOYOYO YaOYOYOYO YOYO YOYOYyOYOYOYuO YOYOYOYOYOYOYOYOYOY yOY OY OY OY OYOYOYuOYOYOYOYOYOYO YOYOYOYOYOYOYOYOYO YOYOYO YO YOYO YOYOYOYOYOYOYOYOYOY OY OY OY OY OYOYOYO YOYOYOYOYO YpOYqOYrOYsOYtOYuO YxO YOYOYOYOYOYOYOYOYOY OY OY OY OY O YOYOYOYOYOYOYOYOYOY OY OY  OY OY OYOYO  YOY OYOYOYOYOYOYOYOY OY OY OY OY OYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYO YOYOYOYOYO YOYOYO YyOYOYmO PK!!1RL}}%com/example/mp4composer/R$dimen.class4com/example/mp4composer/R$dimenjava/lang/Objectcom/example/mp4composer/Rdimen%abc_action_bar_content_inset_materialI%abc_action_bar_content_inset_with_nav&abc_action_bar_default_height_material+abc_action_bar_default_padding_end_material-abc_action_bar_default_padding_start_material!abc_action_bar_elevation_material-abc_action_bar_icon_vertical_padding_material,abc_action_bar_overflow_padding_end_material.abc_action_bar_overflow_padding_start_material!abc_action_bar_stacked_max_height$abc_action_bar_stacked_tab_max_width.abc_action_bar_subtitle_bottom_margin_material+abc_action_bar_subtitle_top_margin_material%abc_action_button_min_height_material$abc_action_button_min_width_material-abc_action_button_min_width_overflow_material"abc_alert_dialog_button_bar_heightabc_alert_dialog_button_dimen$abc_button_inset_horizontal_material"abc_button_inset_vertical_material&abc_button_padding_horizontal_material$abc_button_padding_vertical_material&abc_cascading_menus_min_smallest_widthabc_config_prefDialogWidthabc_control_corner_materialabc_control_inset_materialabc_control_padding_material!abc_dialog_corner_radius_materialabc_dialog_fixed_height_majorabc_dialog_fixed_height_minorabc_dialog_fixed_width_majorabc_dialog_fixed_width_minor)abc_dialog_list_padding_bottom_no_buttons$abc_dialog_list_padding_top_no_titleabc_dialog_min_width_majorabc_dialog_min_width_minorabc_dialog_padding_materialabc_dialog_padding_top_material!abc_dialog_title_divider_material abc_disabled_alpha_material_dark!abc_disabled_alpha_material_lightabc_dropdownitem_icon_width"abc_dropdownitem_text_padding_left#abc_dropdownitem_text_padding_right#abc_edit_text_inset_bottom_material'abc_edit_text_inset_horizontal_material abc_edit_text_inset_top_materialabc_floating_window_z#abc_list_item_height_large_materialabc_list_item_height_material#abc_list_item_height_small_material)abc_list_item_padding_horizontal_materialabc_panel_menu_list_width abc_progress_bar_height_material abc_search_view_preferred_heightabc_search_view_preferred_width,abc_seekbar_track_background_height_material*abc_seekbar_track_progress_height_material(abc_select_dialog_padding_start_materialabc_switch_paddingabc_text_size_body_1_materialabc_text_size_body_2_materialabc_text_size_button_materialabc_text_size_caption_material abc_text_size_display_1_material abc_text_size_display_2_material abc_text_size_display_3_material abc_text_size_display_4_materialabc_text_size_headline_materialabc_text_size_large_materialabc_text_size_medium_material"abc_text_size_menu_header_materialabc_text_size_menu_materialabc_text_size_small_materialabc_text_size_subhead_material'abc_text_size_subtitle_material_toolbarabc_text_size_title_material$abc_text_size_title_material_toolbar'compat_button_inset_horizontal_material%compat_button_inset_vertical_material)compat_button_padding_horizontal_material'compat_button_padding_vertical_materialcompat_control_corner_material)compat_notification_large_icon_max_height(compat_notification_large_icon_max_widthdisabled_alpha_material_darkdisabled_alpha_material_light highlight_alpha_material_coloredhighlight_alpha_material_darkhighlight_alpha_material_lighthint_alpha_material_darkhint_alpha_material_light hint_pressed_alpha_material_dark!hint_pressed_alpha_material_lightnotification_action_icon_sizenotification_action_text_sizenotification_big_circle_margin!notification_content_margin_startnotification_large_icon_heightnotification_large_icon_width$notification_main_column_padding_top notification_media_narrow_marginnotification_right_icon_size#notification_right_side_padding_top*notification_small_icon_background_padding%notification_small_icon_size_as_largenotification_subtext_sizenotification_top_padnotification_top_pad_large_texttooltip_corner_radiustooltip_horizontal_paddingtooltip_margin#tooltip_precise_anchor_extra_offset tooltip_precise_anchor_thresholdtooltip_vertical_paddingtooltip_y_offset_non_touchtooltip_y_offset_touch()V   ConstantValueCode InnerClasses1u                                           !  "  #  $  %  &  '  (  )  *  +  ,  -  .  /  0  1  2  3  4  5  6  7  8  9  :  ;  <  =  >  ?  @  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  [  \  ]  ^  _  `  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y  z  {  |  }  ~  * PK!!Tz'com/example/mp4composer/R$integer.class4!com/example/mp4composer/R$integerjava/lang/Objectcom/example/mp4composer/Rintegerabc_config_activityDefaultDurIabc_config_activityShortDurcancel_button_image_alphaconfig_tooltipAnimTime#status_bar_notification_info_maxnum()V   ConstantValueCode InnerClasses1        * PK!!Bllcom/example/mp4composer/R.class42com/example/mp4composer/Rjava/lang/Objectcom/example/mp4composer/R$animanimcom/example/mp4composer/R$attrattrcom/example/mp4composer/R$bool boolcom/example/mp4composer/R$colorcolorcom/example/mp4composer/R$dimendimen"com/example/mp4composer/R$drawabledrawablecom/example/mp4composer/R$idid!com/example/mp4composer/R$integerinteger&com/example/mp4composer/R$interpolator interpolator com/example/mp4composer/R$layout layout com/example/mp4composer/R$string#stringcom/example/mp4composer/R$style&style#com/example/mp4composer/R$styleable) styleable()V ,- .Code InnerClasses1,-0*/1j     !"$%'(*+PK!!Ud&com/example/mp4composer/R$layout.class48 com/example/mp4composer/R$layoutjava/lang/Objectcom/example/mp4composer/Rlayoutabc_action_bar_title_itemIabc_action_bar_up_containerabc_action_menu_item_layoutabc_action_menu_layoutabc_action_mode_bar#abc_action_mode_close_item_materialabc_activity_chooser_view#abc_activity_chooser_view_list_item$abc_alert_dialog_button_bar_materialabc_alert_dialog_materialabc_alert_dialog_title_materialabc_cascading_menu_item_layoutabc_dialog_title_materialabc_expanded_menu_layoutabc_list_menu_item_checkboxabc_list_menu_item_iconabc_list_menu_item_layoutabc_list_menu_item_radio!abc_popup_menu_header_item_layoutabc_popup_menu_item_layoutabc_screen_content_includeabc_screen_simple%abc_screen_simple_overlay_action_modeabc_screen_toolbar$abc_search_dropdown_item_icons_2lineabc_search_viewabc_select_dialog_material abc_tooltip custom_dialognotification_actionnotification_action_tombstone notification_template_custom_big notification_template_icon_group¬ification_template_part_chronometernotification_template_part_timeselect_dialog_item_material"select_dialog_multichoice_material#select_dialog_singlechoice_material$support_simple_spinner_dropdown_item()V 12 3 ConstantValueCode InnerClasses1'  5 5 5 5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5 5 ! 5 " 5 # 5 $ 5 % 5 & 5 ' 5 ( 5 ) 5 * 5 + 5 , 5 - 5 . 5 / 5 0 5 126*47 PK!!e"/N/N%com/example/mp4composer/R$style.class4ncom/example/mp4composer/R$stylejava/lang/Objectcom/example/mp4composer/RstyleAlertDialog_AppCompatIAlertDialog_AppCompat_LightAnimation_AppCompat_DialogAnimation_AppCompat_DropDownUpAnimation_AppCompat_TooltipBase_AlertDialog_AppCompat Base_AlertDialog_AppCompat_LightBase_Animation_AppCompat_Dialog#Base_Animation_AppCompat_DropDownUp Base_Animation_AppCompat_Tooltip*Base_DialogWindowTitleBackground_AppCompat Base_DialogWindowTitle_AppCompatBase_TextAppearance_AppCompat#Base_TextAppearance_AppCompat_Body1#Base_TextAppearance_AppCompat_Body2$Base_TextAppearance_AppCompat_Button%Base_TextAppearance_AppCompat_Caption&Base_TextAppearance_AppCompat_Display1&Base_TextAppearance_AppCompat_Display2&Base_TextAppearance_AppCompat_Display3&Base_TextAppearance_AppCompat_Display4&Base_TextAppearance_AppCompat_Headline%Base_TextAppearance_AppCompat_Inverse#Base_TextAppearance_AppCompat_Large+Base_TextAppearance_AppCompat_Large_Inverse:Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large:Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small$Base_TextAppearance_AppCompat_Medium,Base_TextAppearance_AppCompat_Medium_Inverse"Base_TextAppearance_AppCompat_Menu*Base_TextAppearance_AppCompat_SearchResult3Base_TextAppearance_AppCompat_SearchResult_Subtitle0Base_TextAppearance_AppCompat_SearchResult_Title#Base_TextAppearance_AppCompat_Small+Base_TextAppearance_AppCompat_Small_Inverse%Base_TextAppearance_AppCompat_Subhead-Base_TextAppearance_AppCompat_Subhead_Inverse#Base_TextAppearance_AppCompat_Title+Base_TextAppearance_AppCompat_Title_Inverse%Base_TextAppearance_AppCompat_Tooltip3Base_TextAppearance_AppCompat_Widget_ActionBar_Menu7Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle?Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse4Base_TextAppearance_AppCompat_Widget_ActionBar_TitleBase_TextAppearance_AppCompat_Widget_Button_Borderless_Colored3Base_TextAppearance_AppCompat_Widget_Button_Colored3Base_TextAppearance_AppCompat_Widget_Button_Inverse1Base_TextAppearance_AppCompat_Widget_DropDownItem5Base_TextAppearance_AppCompat_Widget_PopupMenu_Header4Base_TextAppearance_AppCompat_Widget_PopupMenu_Large4Base_TextAppearance_AppCompat_Widget_PopupMenu_Small+Base_TextAppearance_AppCompat_Widget_Switch9Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem6Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item5Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle2Base_TextAppearance_Widget_AppCompat_Toolbar_TitleBase_ThemeOverlay_AppCompat%Base_ThemeOverlay_AppCompat_ActionBar Base_ThemeOverlay_AppCompat_Dark*Base_ThemeOverlay_AppCompat_Dark_ActionBar"Base_ThemeOverlay_AppCompat_Dialog(Base_ThemeOverlay_AppCompat_Dialog_Alert!Base_ThemeOverlay_AppCompat_LightBase_Theme_AppCompat Base_Theme_AppCompat_CompactMenuBase_Theme_AppCompat_Dialog$Base_Theme_AppCompat_DialogWhenLarge!Base_Theme_AppCompat_Dialog_Alert%Base_Theme_AppCompat_Dialog_FixedSize$Base_Theme_AppCompat_Dialog_MinWidthBase_Theme_AppCompat_Light(Base_Theme_AppCompat_Light_DarkActionBar!Base_Theme_AppCompat_Light_Dialog*Base_Theme_AppCompat_Light_DialogWhenLarge'Base_Theme_AppCompat_Light_Dialog_Alert+Base_Theme_AppCompat_Light_Dialog_FixedSize*Base_Theme_AppCompat_Light_Dialog_MinWidth&Base_V21_ThemeOverlay_AppCompat_DialogBase_V21_Theme_AppCompatBase_V21_Theme_AppCompat_DialogBase_V21_Theme_AppCompat_Light%Base_V21_Theme_AppCompat_Light_DialogBase_V22_Theme_AppCompatBase_V22_Theme_AppCompat_LightBase_V23_Theme_AppCompatBase_V23_Theme_AppCompat_LightBase_V26_Theme_AppCompatBase_V26_Theme_AppCompat_Light!Base_V26_Widget_AppCompat_ToolbarBase_V28_Theme_AppCompatBase_V28_Theme_AppCompat_Light%Base_V7_ThemeOverlay_AppCompat_DialogBase_V7_Theme_AppCompatBase_V7_Theme_AppCompat_DialogBase_V7_Theme_AppCompat_Light$Base_V7_Theme_AppCompat_Light_Dialog-Base_V7_Widget_AppCompat_AutoCompleteTextView!Base_V7_Widget_AppCompat_EditText Base_V7_Widget_AppCompat_ToolbarBase_Widget_AppCompat_ActionBar%Base_Widget_AppCompat_ActionBar_Solid&Base_Widget_AppCompat_ActionBar_TabBar'Base_Widget_AppCompat_ActionBar_TabText'Base_Widget_AppCompat_ActionBar_TabView"Base_Widget_AppCompat_ActionButton,Base_Widget_AppCompat_ActionButton_CloseMode+Base_Widget_AppCompat_ActionButton_Overflow Base_Widget_AppCompat_ActionMode)Base_Widget_AppCompat_ActivityChooserView*Base_Widget_AppCompat_AutoCompleteTextViewBase_Widget_AppCompat_ButtonBase_Widget_AppCompat_ButtonBar+Base_Widget_AppCompat_ButtonBar_AlertDialog'Base_Widget_AppCompat_Button_Borderless/Base_Widget_AppCompat_Button_Borderless_Colored2Base_Widget_AppCompat_Button_ButtonBar_AlertDialog$Base_Widget_AppCompat_Button_Colored"Base_Widget_AppCompat_Button_Small-Base_Widget_AppCompat_CompoundButton_CheckBox0Base_Widget_AppCompat_CompoundButton_RadioButton+Base_Widget_AppCompat_CompoundButton_Switch'Base_Widget_AppCompat_DrawerArrowToggle.Base_Widget_AppCompat_DrawerArrowToggle_Common*Base_Widget_AppCompat_DropDownItem_SpinnerBase_Widget_AppCompat_EditText!Base_Widget_AppCompat_ImageButton%Base_Widget_AppCompat_Light_ActionBar+Base_Widget_AppCompat_Light_ActionBar_Solid,Base_Widget_AppCompat_Light_ActionBar_TabBar-Base_Widget_AppCompat_Light_ActionBar_TabText5Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse-Base_Widget_AppCompat_Light_ActionBar_TabView%Base_Widget_AppCompat_Light_PopupMenu.Base_Widget_AppCompat_Light_PopupMenu_Overflow"Base_Widget_AppCompat_ListMenuView%Base_Widget_AppCompat_ListPopupWindowBase_Widget_AppCompat_ListView'Base_Widget_AppCompat_ListView_DropDown#Base_Widget_AppCompat_ListView_MenuBase_Widget_AppCompat_PopupMenu(Base_Widget_AppCompat_PopupMenu_Overflow!Base_Widget_AppCompat_PopupWindow!Base_Widget_AppCompat_ProgressBar,Base_Widget_AppCompat_ProgressBar_HorizontalBase_Widget_AppCompat_RatingBar)Base_Widget_AppCompat_RatingBar_Indicator%Base_Widget_AppCompat_RatingBar_Small Base_Widget_AppCompat_SearchView*Base_Widget_AppCompat_SearchView_ActionBarBase_Widget_AppCompat_SeekBar&Base_Widget_AppCompat_SeekBar_DiscreteBase_Widget_AppCompat_Spinner(Base_Widget_AppCompat_Spinner_UnderlinedBase_Widget_AppCompat_TextView*Base_Widget_AppCompat_TextView_SpinnerItemBase_Widget_AppCompat_Toolbar/Base_Widget_AppCompat_Toolbar_Button_NavigationPlatform_AppCompatPlatform_AppCompat_LightPlatform_ThemeOverlay_AppCompat$Platform_ThemeOverlay_AppCompat_Dark%Platform_ThemeOverlay_AppCompat_LightPlatform_V21_AppCompatPlatform_V21_AppCompat_LightPlatform_V25_AppCompatPlatform_V25_AppCompat_Light!Platform_Widget_AppCompat_Spinner&RtlOverlay_DialogWindowTitle_AppCompat/RtlOverlay_Widget_AppCompat_ActionBar_TitleItem,RtlOverlay_Widget_AppCompat_DialogTitle_Icon)RtlOverlay_Widget_AppCompat_PopupMenuItem7RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup2RtlOverlay_Widget_AppCompat_PopupMenuItem_Shortcut6RtlOverlay_Widget_AppCompat_PopupMenuItem_SubmenuArrow.RtlOverlay_Widget_AppCompat_PopupMenuItem_Text/RtlOverlay_Widget_AppCompat_PopupMenuItem_Title.RtlOverlay_Widget_AppCompat_SearchView_MagIcon+RtlOverlay_Widget_AppCompat_Search_DropDown1RtlOverlay_Widget_AppCompat_Search_DropDown_Icon11RtlOverlay_Widget_AppCompat_Search_DropDown_Icon21RtlOverlay_Widget_AppCompat_Search_DropDown_Query0RtlOverlay_Widget_AppCompat_Search_DropDown_Text)RtlUnderlay_Widget_AppCompat_ActionButton2RtlUnderlay_Widget_AppCompat_ActionButton_OverflowTextAppearance_AppCompatTextAppearance_AppCompat_Body1TextAppearance_AppCompat_Body2TextAppearance_AppCompat_Button TextAppearance_AppCompat_Caption!TextAppearance_AppCompat_Display1!TextAppearance_AppCompat_Display2!TextAppearance_AppCompat_Display3!TextAppearance_AppCompat_Display4!TextAppearance_AppCompat_Headline TextAppearance_AppCompat_InverseTextAppearance_AppCompat_Large&TextAppearance_AppCompat_Large_Inverse4TextAppearance_AppCompat_Light_SearchResult_Subtitle1TextAppearance_AppCompat_Light_SearchResult_Title5TextAppearance_AppCompat_Light_Widget_PopupMenu_Large5TextAppearance_AppCompat_Light_Widget_PopupMenu_SmallTextAppearance_AppCompat_Medium'TextAppearance_AppCompat_Medium_InverseTextAppearance_AppCompat_Menu.TextAppearance_AppCompat_SearchResult_Subtitle+TextAppearance_AppCompat_SearchResult_TitleTextAppearance_AppCompat_Small&TextAppearance_AppCompat_Small_Inverse TextAppearance_AppCompat_Subhead(TextAppearance_AppCompat_Subhead_InverseTextAppearance_AppCompat_Title&TextAppearance_AppCompat_Title_Inverse TextAppearance_AppCompat_Tooltip.TextAppearance_AppCompat_Widget_ActionBar_Menu2TextAppearance_AppCompat_Widget_ActionBar_Subtitle:TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse/TextAppearance_AppCompat_Widget_ActionBar_Title7TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse3TextAppearance_AppCompat_Widget_ActionMode_Subtitle;TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse0TextAppearance_AppCompat_Widget_ActionMode_Title8TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse&TextAppearance_AppCompat_Widget_Button9TextAppearance_AppCompat_Widget_Button_Borderless_Colored.TextAppearance_AppCompat_Widget_Button_Colored.TextAppearance_AppCompat_Widget_Button_Inverse,TextAppearance_AppCompat_Widget_DropDownItem0TextAppearance_AppCompat_Widget_PopupMenu_Header/TextAppearance_AppCompat_Widget_PopupMenu_Large/TextAppearance_AppCompat_Widget_PopupMenu_Small&TextAppearance_AppCompat_Widget_Switch4TextAppearance_AppCompat_Widget_TextView_SpinnerItem"TextAppearance_Compat_Notification'TextAppearance_Compat_Notification_Info(TextAppearance_Compat_Notification_Line2'TextAppearance_Compat_Notification_Time(TextAppearance_Compat_Notification_Title1TextAppearance_Widget_AppCompat_ExpandedMenu_Item0TextAppearance_Widget_AppCompat_Toolbar_Subtitle-TextAppearance_Widget_AppCompat_Toolbar_TitleThemeOverlay_AppCompat ThemeOverlay_AppCompat_ActionBarThemeOverlay_AppCompat_Dark%ThemeOverlay_AppCompat_Dark_ActionBarThemeOverlay_AppCompat_DayNight)ThemeOverlay_AppCompat_DayNight_ActionBarThemeOverlay_AppCompat_Dialog#ThemeOverlay_AppCompat_Dialog_AlertThemeOverlay_AppCompat_LightTheme_AppCompatTheme_AppCompat_CompactMenuTheme_AppCompat_DayNight&Theme_AppCompat_DayNight_DarkActionBarTheme_AppCompat_DayNight_Dialog(Theme_AppCompat_DayNight_DialogWhenLarge%Theme_AppCompat_DayNight_Dialog_Alert(Theme_AppCompat_DayNight_Dialog_MinWidth$Theme_AppCompat_DayNight_NoActionBarTheme_AppCompat_DialogTheme_AppCompat_DialogWhenLargeTheme_AppCompat_Dialog_AlertTheme_AppCompat_Dialog_MinWidthTheme_AppCompat_Light#Theme_AppCompat_Light_DarkActionBarTheme_AppCompat_Light_Dialog%Theme_AppCompat_Light_DialogWhenLarge"Theme_AppCompat_Light_Dialog_Alert%Theme_AppCompat_Light_Dialog_MinWidth!Theme_AppCompat_Light_NoActionBarTheme_AppCompat_NoActionBarWidget_AppCompat_ActionBar Widget_AppCompat_ActionBar_Solid!Widget_AppCompat_ActionBar_TabBar"Widget_AppCompat_ActionBar_TabText"Widget_AppCompat_ActionBar_TabViewWidget_AppCompat_ActionButton'Widget_AppCompat_ActionButton_CloseMode&Widget_AppCompat_ActionButton_OverflowWidget_AppCompat_ActionMode$Widget_AppCompat_ActivityChooserView%Widget_AppCompat_AutoCompleteTextViewWidget_AppCompat_ButtonWidget_AppCompat_ButtonBar&Widget_AppCompat_ButtonBar_AlertDialog"Widget_AppCompat_Button_Borderless*Widget_AppCompat_Button_Borderless_Colored-Widget_AppCompat_Button_ButtonBar_AlertDialogWidget_AppCompat_Button_ColoredWidget_AppCompat_Button_Small(Widget_AppCompat_CompoundButton_CheckBox+Widget_AppCompat_CompoundButton_RadioButton&Widget_AppCompat_CompoundButton_Switch"Widget_AppCompat_DrawerArrowToggle%Widget_AppCompat_DropDownItem_SpinnerWidget_AppCompat_EditTextWidget_AppCompat_ImageButton Widget_AppCompat_Light_ActionBar&Widget_AppCompat_Light_ActionBar_Solid.Widget_AppCompat_Light_ActionBar_Solid_Inverse'Widget_AppCompat_Light_ActionBar_TabBar/Widget_AppCompat_Light_ActionBar_TabBar_Inverse(Widget_AppCompat_Light_ActionBar_TabText0Widget_AppCompat_Light_ActionBar_TabText_Inverse(Widget_AppCompat_Light_ActionBar_TabView0Widget_AppCompat_Light_ActionBar_TabView_Inverse#Widget_AppCompat_Light_ActionButton-Widget_AppCompat_Light_ActionButton_CloseMode,Widget_AppCompat_Light_ActionButton_Overflow)Widget_AppCompat_Light_ActionMode_Inverse*Widget_AppCompat_Light_ActivityChooserView+Widget_AppCompat_Light_AutoCompleteTextView+Widget_AppCompat_Light_DropDownItem_Spinner&Widget_AppCompat_Light_ListPopupWindow(Widget_AppCompat_Light_ListView_DropDown Widget_AppCompat_Light_PopupMenu)Widget_AppCompat_Light_PopupMenu_Overflow!Widget_AppCompat_Light_SearchView1Widget_AppCompat_Light_Spinner_DropDown_ActionBarWidget_AppCompat_ListMenuView Widget_AppCompat_ListPopupWindowWidget_AppCompat_ListView"Widget_AppCompat_ListView_DropDownWidget_AppCompat_ListView_MenuWidget_AppCompat_PopupMenu#Widget_AppCompat_PopupMenu_OverflowWidget_AppCompat_PopupWindowWidget_AppCompat_ProgressBar'Widget_AppCompat_ProgressBar_HorizontalWidget_AppCompat_RatingBar$Widget_AppCompat_RatingBar_Indicator Widget_AppCompat_RatingBar_SmallWidget_AppCompat_SearchView%Widget_AppCompat_SearchView_ActionBarWidget_AppCompat_SeekBar!Widget_AppCompat_SeekBar_DiscreteWidget_AppCompat_Spinner!Widget_AppCompat_Spinner_DropDown+Widget_AppCompat_Spinner_DropDown_ActionBar#Widget_AppCompat_Spinner_UnderlinedWidget_AppCompat_TextView%Widget_AppCompat_TextView_SpinnerItemWidget_AppCompat_Toolbar*Widget_AppCompat_Toolbar_Button_Navigation)Widget_Compat_NotificationActionContainer$Widget_Compat_NotificationActionText()V gh i ConstantValueCode InnerClasses1]  k k k k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k k ! k " k # k $ k % k & k ' k ( k ) k * k + k , k - k . k / k 0 k 1 k 2 k 3 k 4 k 5 k 6 k 7 k 8 k 9 k : k ; k < k = k > k ? k @ k A k B k C k D k E k F k G k H k I k J k K k L k M k N k O k P k Q k R k S k T k U k V k W k X k Y k Z k [ k \ k ] k ^ k _ k ` k a k b k c k d k e k f k g k h k i k j k k k l k m k n k o k p k q k r k s k t k u k v k w k x k y k z k { k | k } k ~ k  k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k  k ! k " k # k $ k % k & k ' k ( k ) k * k + k , k - k . k / k 0 k 1 k 2 k 3 k 4 k 5 k 6 k 7 k 8 k 9 k : k ; k < k = k > k ? k @ k A k B k C k D k E k F k G k H k I k J k K k L k M k N k O k P k Q k R k S k T k U k V k W k X k Y k Z k [ k \ k ] k ^ k _ k ` k a k b k c k d k e k f k ghl*jm PK!!^KsF(F($com/example/mp4composer/R$attr.class4'com/example/mp4composer/R$attrjava/lang/Objectcom/example/mp4composer/RattractionBarDividerIactionBarItemBackgroundactionBarPopupTheme actionBarSizeactionBarSplitStyleactionBarStyleactionBarTabBarStyleactionBarTabStyleactionBarTabTextStyleactionBarThemeactionBarWidgetThemeactionButtonStyleactionDropDownStyle actionLayoutactionMenuTextAppearanceactionMenuTextColoractionModeBackgroundactionModeCloseButtonStyleactionModeCloseDrawableactionModeCopyDrawableactionModeCutDrawableactionModeFindDrawableactionModePasteDrawableactionModePopupWindowStyleactionModeSelectAllDrawableactionModeShareDrawableactionModeSplitBackgroundactionModeStyleactionModeWebSearchDrawableactionOverflowButtonStyleactionOverflowMenuStyleactionProviderClassactionViewClassactivityChooserViewStylealertDialogButtonGroupStylealertDialogCenterButtonsalertDialogStylealertDialogTheme allowStackingalphaalphabeticModifiersarrowHeadLengtharrowShaftLengthautoCompleteTextViewStyleautoSizeMaxTextSizeautoSizeMinTextSizeautoSizePresetSizesautoSizeStepGranularityautoSizeTextType backgroundbackgroundSplitbackgroundStackedbackgroundTintbackgroundTintMode barLengthborderlessButtonStylebuttonBarButtonStylebuttonBarNegativeButtonStylebuttonBarNeutralButtonStylebuttonBarPositiveButtonStylebuttonBarStyle buttonCompat buttonGravitybuttonIconDimenbuttonPanelSideLayout buttonStylebuttonStyleSmall buttonTintbuttonTintMode checkboxStylecheckedTextViewStyle closeIconcloseItemLayoutcollapseContentDescription collapseIconcolor colorAccentcolorBackgroundFloatingcolorButtonNormalcolorControlActivatedcolorControlHighlightcolorControlNormal colorError colorPrimarycolorPrimaryDarkcolorSwitchThumbNormal commitIconcontentDescriptioncontentInsetEndcontentInsetEndWithActionscontentInsetLeftcontentInsetRightcontentInsetStartcontentInsetStartWithNavigationcontrolBackgroundcustomNavigationLayoutdefaultQueryHintdialogCornerRadiusdialogPreferredPadding dialogThemedisplayOptionsdividerdividerHorizontaldividerPaddingdividerVerticaldrawableBottomCompatdrawableEndCompatdrawableLeftCompatdrawableRightCompat drawableSizedrawableStartCompat drawableTintdrawableTintModedrawableTopCompatdrawerArrowStyledropDownListViewStyledropdownListPreferredItemHeighteditTextBackground editTextColor editTextStyle elevation$expandActivityOverflowButtonDrawablefirstBaselineToTopHeightfont fontFamilyfontProviderAuthorityfontProviderCertsfontProviderFetchStrategyfontProviderFetchTimeoutfontProviderPackagefontProviderQuery fontStylefontVariationSettings fontWeightgapBetweenBarsgoIconheighthideOnContentScrollhomeAsUpIndicator homeLayouticoniconTint iconTintModeiconifiedByDefaultimageButtonStyleindeterminateProgressStyleinitialActivityCount isLightTheme itemPaddinglastBaselineToBottomHeightlayout lineHeightlistChoiceBackgroundIndicator#listChoiceIndicatorMultipleAnimated!listChoiceIndicatorSingleAnimatedlistDividerAlertDialoglistItemLayout listLayoutlistMenuViewStylelistPopupWindowStylelistPreferredItemHeightlistPreferredItemHeightLargelistPreferredItemHeightSmalllistPreferredItemPaddingEndlistPreferredItemPaddingLeftlistPreferredItemPaddingRightlistPreferredItemPaddingStartlogologoDescriptionmaxButtonHeightmeasureWithLargestChildmenumultiChoiceItemLayoutnavigationContentDescriptionnavigationIconnavigationModenumericModifiers overlapAnchorpaddingBottomNoButtons paddingEnd paddingStartpaddingTopNoTitlepanelBackgroundpanelMenuListThemepanelMenuListWidthpopupMenuStyle popupThemepopupWindowStylepreserveIconSpacingprogressBarPaddingprogressBarStylequeryBackground queryHintradioButtonStyleratingBarStyleratingBarStyleIndicatorratingBarStyleSmallsearchHintIcon searchIconsearchViewStyle seekBarStyleselectableItemBackground"selectableItemBackgroundBorderless showAsAction showDividersshowText showTitlesingleChoiceItemLayoutspinBarsspinnerDropDownItemStyle spinnerStyle splitTrack srcCompatstate_above_anchor subMenuArrowsubmitBackgroundsubtitlesubtitleTextAppearancesubtitleTextColorsubtitleTextStylesuggestionRowLayoutswitchMinWidth switchPadding switchStyleswitchTextAppearance textAllCapstextAppearanceLargePopupMenutextAppearanceListItemtextAppearanceListItemSecondarytextAppearanceListItemSmalltextAppearancePopupMenuHeader"textAppearanceSearchResultSubtitletextAppearanceSearchResultTitletextAppearanceSmallPopupMenutextColorAlertDialogListItemtextColorSearchUrl textLocaletheme thicknessthumbTextPadding thumbTint thumbTintModetickMark tickMarkTinttickMarkTintModetinttintModetitle titleMargintitleMarginBottomtitleMarginEndtitleMarginStarttitleMarginTop titleMarginstitleTextAppearancetitleTextColortitleTextStyletoolbarNavigationButtonStyle toolbarStyletooltipForegroundColortooltipFrameBackground tooltipTexttrack trackTint trackTintModettcIndexviewInflaterClass voiceIconwindowActionBarwindowActionBarOverlaywindowActionModeOverlaywindowFixedHeightMajorwindowFixedHeightMinorwindowFixedWidthMajorwindowFixedWidthMinorwindowMinWidthMajorwindowMinWidthMinor windowNoTitle()V  ! " ConstantValueCode InnerClasses1  $ $ $ $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $ $ ! $ " $ # $ $ $ % $ & $ ' $ ( $ ) $ * $ + $ , $ - $ . $ / $ 0 $ 1 $ 2 $ 3 $ 4 $ 5 $ 6 $ 7 $ 8 $ 9 $ : $ ; $ < $ = $ > $ ? $ @ $ A $ B $ C $ D $ E $ F $ G $ H $ I $ J $ K $ L $ M $ N $ O $ P $ Q $ R $ S $ T $ U $ V $ W $ X $ Y $ Z $ [ $ \ $ ] $ ^ $ _ $ ` $ a $ b $ c $ d $ e $ f $ g $ h $ i $ j $ k $ l $ m $ n $ o $ p $ q $ r $ s $ t $ u $ v $ w $ x $ y $ z $ { $ | $ } $ ~ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  $  !%*#& PK!!*SA"com/example/mp4composer/R$id.class4com/example/mp4composer/R$idjava/lang/Objectcom/example/mp4composer/Rid#accessibility_action_clickable_spanIaccessibility_custom_action_0accessibility_custom_action_1accessibility_custom_action_10accessibility_custom_action_11accessibility_custom_action_12accessibility_custom_action_13accessibility_custom_action_14accessibility_custom_action_15accessibility_custom_action_16accessibility_custom_action_17accessibility_custom_action_18accessibility_custom_action_19accessibility_custom_action_2accessibility_custom_action_20accessibility_custom_action_21accessibility_custom_action_22accessibility_custom_action_23accessibility_custom_action_24accessibility_custom_action_25accessibility_custom_action_26accessibility_custom_action_27accessibility_custom_action_28accessibility_custom_action_29accessibility_custom_action_3accessibility_custom_action_30accessibility_custom_action_31accessibility_custom_action_4accessibility_custom_action_5accessibility_custom_action_6accessibility_custom_action_7accessibility_custom_action_8accessibility_custom_action_9 action_baraction_bar_activity_contentaction_bar_containeraction_bar_rootaction_bar_spinneraction_bar_subtitleaction_bar_titleaction_containeraction_context_baraction_divider action_imageaction_menu_divideraction_menu_presenteraction_mode_baraction_mode_bar_stubaction_mode_close_button action_textactionsactivity_chooser_view_contentadd alertTitleasyncblocking buttonPanelcheckboxchecked chronometercontent contentPanelcustom customPaneldecor_content_parentdefault_activity_button dialog_button edit_queryexpand_activities_button expanded_menuforever group_dividerhomeicon icon_groupimageinfoitalicline1line3listMode list_itemmessagemultiplynonenormalnotification_backgroundnotification_main_column"notification_main_column_containeroffon parentPanelprogress_circularprogress_horizontalradio right_icon right_sidescreenscrollIndicatorDownscrollIndicatorUp scrollView search_badge search_bar search_buttonsearch_close_btnsearch_edit_frame search_go_btnsearch_mag_icon search_platesearch_src_textsearch_voice_btnselect_dialog_listviewshortcutspacersplit_action_barsrc_atopsrc_insrc_over submenuarrow submit_areatabModetag_accessibility_actions!tag_accessibility_clickable_spanstag_accessibility_headingtag_accessibility_pane_titletag_screen_reader_focusabletag_transition_grouptag_unhandled_key_event_managertag_unhandled_key_listenerstexttext2textSpacerNoButtonstextSpacerNoTitletimetitletitleDividerNoCustomtitle_templatetopPanel uncheckeduniformup wrap_content()V  ConstantValueCode InnerClasses1                                           !  "  #  $  %  &  '  (  )  *  +  ,  -  .  /  0  1  2  3  4  5  6  7  8  9  :  ;  <  =  >  ?  @  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  [  \  ]  ^  _  `  a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y  z  {  |  }  ~                            * PK!!φ,com/example/mp4composer/R$interpolator.class4&com/example/mp4composer/R$interpolatorjava/lang/Objectcom/example/mp4composer/R interpolator2btn_checkbox_checked_mtrl_animation_interpolator_0I2btn_checkbox_checked_mtrl_animation_interpolator_14btn_checkbox_unchecked_mtrl_animation_interpolator_04btn_checkbox_unchecked_mtrl_animation_interpolator_1.btn_radio_to_off_mtrl_animation_interpolator_0-btn_radio_to_on_mtrl_animation_interpolator_0fast_out_slow_in()V   ConstantValueCode InnerClasses1            * PK!!Ӡp$com/example/mp4composer/R$anim.class4)com/example/mp4composer/R$animjava/lang/Objectcom/example/mp4composer/Ranim abc_fade_inI abc_fade_outabc_grow_fade_in_from_bottomabc_popup_enterabc_popup_exitabc_shrink_fade_out_from_bottomabc_slide_in_bottomabc_slide_in_topabc_slide_out_bottomabc_slide_out_topabc_tooltip_enterabc_tooltip_exit2btn_checkbox_to_checked_box_inner_merged_animation2btn_checkbox_to_checked_box_outer_merged_animation+btn_checkbox_to_checked_icon_null_animation4btn_checkbox_to_unchecked_box_inner_merged_animation5btn_checkbox_to_unchecked_check_path_merged_animation-btn_checkbox_to_unchecked_icon_null_animation)btn_radio_to_off_mtrl_dot_group_animation*btn_radio_to_off_mtrl_ring_outer_animation/btn_radio_to_off_mtrl_ring_outer_path_animation(btn_radio_to_on_mtrl_dot_group_animation)btn_radio_to_on_mtrl_ring_outer_animation.btn_radio_to_on_mtrl_ring_outer_path_animation()V "# $ ConstantValueCode InnerClasses1  & & & &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  & & ! & "#'*%( PK!!2͂jj&com/example/mp4composer/R$string.class4. com/example/mp4composer/R$stringjava/lang/Objectcom/example/mp4composer/Rstringabc_action_bar_home_descriptionIabc_action_bar_up_description$abc_action_menu_overflow_descriptionabc_action_mode_done!abc_activity_chooser_view_see_all*abc_activitychooserview_choose_applicationabc_capital_offabc_capital_onabc_menu_alt_shortcut_labelabc_menu_ctrl_shortcut_labelabc_menu_delete_shortcut_labelabc_menu_enter_shortcut_label abc_menu_function_shortcut_labelabc_menu_meta_shortcut_labelabc_menu_shift_shortcut_labelabc_menu_space_shortcut_labelabc_menu_sym_shortcut_labelabc_prepend_shortcut_labelabc_search_hint abc_searchview_description_clear abc_searchview_description_query!abc_searchview_description_search!abc_searchview_description_submit abc_searchview_description_voice"abc_shareactionprovider_share_with.abc_shareactionprovider_share_with_application abc_toolbar_collapse_descriptionsearch_menu_title%status_bar_notification_info_overflow()V '( ) ConstantValueCode InnerClasses1  + + + +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + + ! + " + # + $ + % + & + '(,**- PK!! 7(com/example/mp4composer/filter/GlCrosshatchFilter.classPK!!Ud&̭com/example/mp4composer/R$layout.classPK!!e"/N/N%com/example/mp4composer/R$style.classPK!!!=com/example/mp4composer/source/FileDescriptorDataSource.classPK!!φ,)Bcom/example/mp4composer/R$interpolator.classPK!!2͂jj&%Kcom/example/mp4composer/R$string.classPK!!pg* * 0com/example/mp4composer/filter/GlLutFilter.classPK!!M!Ħ9<com/example/mp4composer/composer/AudioChannelWithSP.classPK!!> > <com/example/mp4composer/filter/GlBulgeDistortionFilter.classPK!!zz%Jcom/example/mp4composer/R$color.classPK!!N++5#com/example/mp4composer/filter/GlContrastFilter.classPK!!3`NiNi)%com/example/mp4composer/R$styleable.classPK!!{7Hcom/example/mp4composer/filter/GlSaturationFilter.classPK!!63)com/example/mp4composer/composer/AudioChannel.classPK!!#H8com/example/mp4composer/source/DataSource$Listener.classPK!!S2com/example/mp4composer/logger/AndroidLogger.classPK!!dQ  6com/example/mp4composer/filter/GlBilateralFilter.classPK!!P1=com/example/mp4composer/gl/GlSurfaceTexture.classPK!!qy  0com/example/mp4composer/FillModeCustomItem.classPK!!OB B 8^com/example/mp4composer/filter/GlLookUpTableFilter.classPK!!g9p p 3ǫcom/example/mp4composer/filter/GlLut512Filter.classPK!! p)com/example/mp4composer/BuildConfig.classPK!!j| 4com/example/mp4composer/filter/GlOverlayFilter.classPK!! ,\i2 com/example/mp4composer/FillModeCustomItem$1.classPK!!^W  5ocom/example/mp4composer/filter/GlHalftoneFilter.classPK!!M##7com/example/mp4composer/filter/GlMonochromeFilter.classPK!!-]E5d com/example/mp4composer/filter/GlSolarizeFilter.classPK!!r''6 ;com/example/mp4composer/filter/GlToneCurveFilter.classPK!!x6kcom/example/mp4composer/filter/GlGrayScaleFilter.classPK!!7ð4com/example/mp4composer/composer/Mp4Composer$1.classPK!!}ʸb b C"com/example/mp4composer/filter/GlThreex3TextureSamplingFilter.classPK!!MY 5com/example/mp4composer/filter/GlZoomBlurFilter.classPK!!F-8com/example/mp4composer/filter/GlFilter.classPK!!n0(com/example/mp4composer/SampleType.classPK!!Wf60p]com/example/mp4composer/composer/MuxRender.classPK!!UCd!!7_ com/example/mp4composer/filter/GlBrightnessFilter.classPK!![+Ncom/example/mp4composer/logger/Logger.classPK!!fMW 4:com/example/mp4composer/filter/GlBoxBlurFilter.classPK!!R##2com/example/mp4composer/filter/GlSepiaFilter.classPK!!gg2scom/example/mp4composer/source/UriDataSource.classPK!!cLg337com/example/mp4composer/source/FilePathDataSource.classPK!!$;VUcom/example/mp4composer/composer/MuxRender$SampleInfo.classPK!!y7 *com/example/mp4composer/gl/GlPreview.classPK!!<+ii/com/example/mp4composer/source/DataSource.classPK!!1RL}}%@com/example/mp4composer/R$dimen.classPK!!Tz'com/example/mp4composer/R$integer.classPK!!X|R0ucom/example/mp4composer/filter/GlHueFilter.classPK!!rvZ+*com/example/mp4composer/utils/EglUtil.classPK!!:&52com/example/mp4composer/filter/GlExposureFilter.classPK!!]5ncom/example/mp4composer/filter/GlVibranceFilter.classPK!!]bYY1xcom/example/mp4composer/filter/GlHazeFilter.classPK!!0 " "5vcom/example/mp4composer/composer/DecoderSurface.classPK!!aa6com/example/mp4composer/filter/GlPosterizeFilter.classPK!!1++I!com/example/mp4composer/composer/Mp4ComposerEngine$ProgressCallback.classPK!!Q5tcom/example/mp4composer/filter/GlVignetteFilter.classPK!!*1j j 4com/example/mp4composer/gl/GlFramebufferObject.classPK!!) ) 10ccom/example/mp4composer/filter/GlToneFilter.classPK!!<.com/example/mp4composer/filter/GlHighlightShadowFilter.classPK!!w8|com/example/mp4composer/filter/GlWatermarkFilter$1.classPK!!/122CBdcom/example/mp4composer/composer/BaseAudioChannel$AudioBuffer.classPK!!:85com/example/mp4composer/filter/GlToneCurveFilter$2.classPK!!]hh;com/example/mp4composer/composer/Mp4Composer$Listener.classPK!!w:!FF6com/example/mp4composer/filter/GlLuminanceFilter.classPK!!6_kk?com/example/mp4composer/filter/GlWatermarkFilter$Position.classPK!!76com/example/mp4composer/composer/Mp4Composer$2$1.classPK!!+5<com/example/mp4composer/composer/IAudioComposer.classPK!!Bll#com/example/mp4composer/R.classPK!!,,1#com/example/mp4composer/VideoFormatMimeType.classPK!!Dz4xcom/example/mp4composer/filter/GlOpacityFilter.classPK!!Ej}}$com/example/mp4composer/R$bool.classPK!! ^^(com/example/mp4composer/R$drawable.classPK!! 6 9_com/example/mp4composer/filter/GlGaussianBlurFilter.classPK!!!!4com/example/mp4composer/composer/VideoComposer.classPK!!?com/example/mp4composer/filter/GlLuminanceThresholdFilter.classPK!!*SA"-com/example/mp4composer/R$id.classPK!!:*??7fscom/example/mp4composer/composer/DecoderSurface$1.classPK!!Ӡp$.Ecom/example/mp4composer/R$anim.classPK!!2Rcom/example/mp4composer/composer/MuxRender$1.classPK!!o+:<<:com/example/mp4composer/composer/SonicAudioProcessor.classPK!!77com/example/mp4composer/filter/GlPixelationFilter.classPK!!DBfcom/example/mp4composer/composer/BaseAudioChannel$BufferInfo.classPKhhj'Q