Re: [FFmpeg-devel] [PATCH 1/3] libopenmpt: change layout option to use string

2016-07-19 Thread Josh de Kock
On Tue, Jul 19, 2016, at 10:39 PM, Hendrik Leppkes wrote:
> 
> We do have this option, so I would prefer if we keep using it.
> 
Sure, that makes sense. I'll drop this patch from the set.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 1/3] libopenmpt: change layout option to use string

2016-07-19 Thread Hendrik Leppkes
On Tue, Jul 19, 2016 at 11:33 PM, Josh de Kock  wrote:
> Libav doesn't have AV_OPT_TYPE_CHANNEL_LAYOUT
> so use strings instead to maintain consistency.

We do have this option, so I would prefer if we keep using it.

- Hendrik
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH 1/3] libopenmpt: change layout option to use string

2016-07-19 Thread Josh de Kock
Libav doesn't have AV_OPT_TYPE_CHANNEL_LAYOUT
so use strings instead to maintain consistency.
---
 libavformat/libopenmpt.c | 18 +-
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/libavformat/libopenmpt.c b/libavformat/libopenmpt.c
index 58a02be..17eb611 100644
--- a/libavformat/libopenmpt.c
+++ b/libavformat/libopenmpt.c
@@ -35,15 +35,16 @@ typedef struct OpenMPTContext {
 double duration;
 /* options */
 int sample_rate;
-int64_t layout;
+const char *layout;
+int subsong;
 } OpenMPTContext;
 
 #define OFFSET(x) offsetof(OpenMPTContext, x)
 #define A AV_OPT_FLAG_AUDIO_PARAM
 #define D AV_OPT_FLAG_DECODING_PARAM
 static const AVOption options[] = {
-{"sample_rate", "set sample rate",OFFSET(sample_rate), 
AV_OPT_TYPE_INT,{.i64 = 48000},   1000, INT_MAX,   
A|D},
-{"layout",  "set channel layout", OFFSET(layout),  
AV_OPT_TYPE_CHANNEL_LAYOUT, {.i64 = AV_CH_LAYOUT_STEREO}, 0,INT64_MAX, 
A|D},
+{"sample_rate", "set sample rate",OFFSET(sample_rate), 
AV_OPT_TYPE_INT,{.i64 = 48000},1000, INT_MAX,   A | D},
+{"layout",  "set channel layout", OFFSET(layout),  
AV_OPT_TYPE_STRING, {.i64 = .str = "stereo"}, 0, INT64_MAX, A | D},
 {NULL}
 };
 
@@ -70,17 +71,24 @@ static int read_header_openmpt(AVFormatContext *s)
 OpenMPTContext *openmpt = s->priv_data;
 int64_t size = avio_size(s->pb);
 char *buf = av_malloc(size);
+int64_t layout;
 
 if (!buf)
 return AVERROR(ENOMEM);
 size = avio_read(s->pb, buf, size);
 
+layout = av_get_channel_layout(openmpt->layout);
+if (!layout){
+av_log(s, AV_LOG_ERROR, "Invalid channel layout: %s\n", 
openmpt->layout);
+return AVERROR(EINVAL);
+}
+
 openmpt->module = openmpt_module_create_from_memory(buf, size, 
openmpt_logfunc, s, NULL);
 av_freep();
 if (!openmpt->module)
-return AVERROR_INVALIDDATA;
+return AVERROR_INVALIDDATA;
 
-openmpt->channels   = av_get_channel_layout_nb_channels(openmpt->layout);
+openmpt->channels   = av_get_channel_layout_nb_channels(layout);
 openmpt->duration   = openmpt_module_get_duration_seconds(openmpt->module);
 
 add_meta(s, "artist",  openmpt_module_get_metadata(openmpt->module, 
"artist"));
-- 
2.7.4 (Apple Git-66)

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel