introduce a way for encoder to manifest its capabilities
[nihav.git] / nihav-flash / src / codecs / adpcmenc.rs
index ced3c1b8d6b014481bf5dc6c187c80f6612e5cf1..c7bf3aad6293e6999e85e35a9a2d713e161b4395 100644 (file)
@@ -63,9 +63,9 @@ impl NAEncoder for ADPCMEncoder {
     fn negotiate_format(&self, encinfo: &EncodeParameters) -> EncoderResult<EncodeParameters> {
         match encinfo.format {
             NACodecTypeInfo::None => {
-                let mut ofmt = EncodeParameters::default();
-                ofmt.format = NACodecTypeInfo::Audio(NAAudioInfo::new(0, 1, SND_S16_FORMAT, BLOCK_LEN));
-                Ok(ofmt)
+                Ok(EncodeParameters {
+                    format: NACodecTypeInfo::Audio(NAAudioInfo::new(0, 1, SND_S16_FORMAT, BLOCK_LEN)),
+                    ..Default::default() })
             },
             NACodecTypeInfo::Video(_) => Err(EncoderError::FormatError),
             NACodecTypeInfo::Audio(ainfo) => {
@@ -81,6 +81,7 @@ impl NAEncoder for ADPCMEncoder {
             }
         }
     }
+    fn get_capabilities(&self) -> u64 { ENC_CAPS_CBR }
     fn init(&mut self, stream_id: u32, encinfo: EncodeParameters) -> EncoderResult<NAStreamRef> {
         match encinfo.format {
             NACodecTypeInfo::None => Err(EncoderError::FormatError),
@@ -175,6 +176,7 @@ mod test {
         let mut enc_reg = RegisteredEncoders::new();
         flash_register_all_encoders(&mut enc_reg);
 
+        // sample: https://samples.mplayerhq.hu/FLV/flash_flv_adpcm_testfiles/mono_11k.flv
         let dec_config = DecoderTestParams {
                 demuxer:        "flv",
                 in_name:        "assets/Flash/mono_11k.flv",