introduce a way for encoder to manifest its capabilities
[nihav.git] / nihav-ms / src / codecs / imaadpcmenc.rs
index 45e8d21f32cc2b4e04340c802c40666fceaec838..a113d5d3e0e47be3be0a6364c190d6613df68ede 100644 (file)
@@ -189,9 +189,9 @@ impl NAEncoder for IMAADPCMEncoder {
     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, DEFAULT_BLOCK_LEN));
-                Ok(ofmt)
+                Ok(EncodeParameters {
+                    format: NACodecTypeInfo::Audio(NAAudioInfo::new(0, 1, SND_S16_FORMAT, DEFAULT_BLOCK_LEN)),
+                    ..Default::default() })
             },
             NACodecTypeInfo::Video(_) => Err(EncoderError::FormatError),
             NACodecTypeInfo::Audio(ainfo) => {
@@ -215,6 +215,7 @@ impl NAEncoder for IMAADPCMEncoder {
             }
         }
     }
+    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),
@@ -341,6 +342,7 @@ mod test {
         let mut enc_reg = RegisteredEncoders::new();
         ms_register_all_encoders(&mut enc_reg);
 
+        // sample: https://samples.mplayerhq.hu/V-codecs/VP4/ot171_vp40.avi
         let dec_config = DecoderTestParams {
                 demuxer:        "avi",
                 in_name:        "assets/Duck/ot171_vp40.avi",