introduce a way for encoder to manifest its capabilities
[nihav.git] / nihav-llaudio / src / codecs / flacenc.rs
index f9adc24711f9f849ce5f329737a6cbc85aaffc8e..3b992941c6841b681ba4d520bb7cdb0e83a2af7a 100644 (file)
@@ -396,9 +396,9 @@ impl NAEncoder for FLACEncoder {
     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) => {
@@ -417,6 +417,7 @@ impl NAEncoder for FLACEncoder {
             }
         }
     }
+    fn get_capabilities(&self) -> u64 { 0 }
     fn init(&mut self, stream_id: u32, encinfo: EncodeParameters) -> EncoderResult<NAStreamRef> {
         match encinfo.format {
             NACodecTypeInfo::None => Err(EncoderError::FormatError),
@@ -599,6 +600,7 @@ mod test {
         let mut enc_reg = RegisteredEncoders::new();
         llaudio_register_all_encoders(&mut enc_reg);
 
+        // sample: https://samples.mplayerhq.hu/A-codecs/lossless/luckynight.flac
         let dec_config = DecoderTestParams {
                 demuxer:        "flac",
                 in_name:        "assets/LLaudio/luckynight.flac",