dv1394: add a private option for video standard.
This commit is contained in:
		
							parent
							
								
									e199eb44fd
								
							
						
					
					
						commit
						eb040dbbd3
					
				@ -30,6 +30,8 @@
 | 
			
		||||
#include <time.h>
 | 
			
		||||
#include <strings.h>
 | 
			
		||||
 | 
			
		||||
#include "libavutil/log.h"
 | 
			
		||||
#include "libavutil/opt.h"
 | 
			
		||||
#include "libavformat/avformat.h"
 | 
			
		||||
 | 
			
		||||
#undef DV1394_DEBUG
 | 
			
		||||
@ -38,6 +40,7 @@
 | 
			
		||||
#include "dv1394.h"
 | 
			
		||||
 | 
			
		||||
struct dv1394_data {
 | 
			
		||||
    AVClass *class;
 | 
			
		||||
    int fd;
 | 
			
		||||
    int channel;
 | 
			
		||||
    int format;
 | 
			
		||||
@ -90,10 +93,12 @@ static int dv1394_read_header(AVFormatContext * context, AVFormatParameters * ap
 | 
			
		||||
    if (!dv->dv_demux)
 | 
			
		||||
        goto failed;
 | 
			
		||||
 | 
			
		||||
    if (ap->standard && !strcasecmp(ap->standard, "pal"))
 | 
			
		||||
        dv->format = DV1394_PAL;
 | 
			
		||||
    else
 | 
			
		||||
        dv->format = DV1394_NTSC;
 | 
			
		||||
    if (ap->standard) {
 | 
			
		||||
       if (!strcasecmp(ap->standard, "pal"))
 | 
			
		||||
           dv->format = DV1394_PAL;
 | 
			
		||||
       else
 | 
			
		||||
           dv->format = DV1394_NTSC;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (ap->channel)
 | 
			
		||||
        dv->channel = ap->channel;
 | 
			
		||||
@ -227,6 +232,20 @@ static int dv1394_close(AVFormatContext * context)
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const AVOption options[] = {
 | 
			
		||||
    { "standard", "", offsetof(struct dv1394_data, format), FF_OPT_TYPE_INT, {.dbl = DV1394_NTSC}, DV1394_PAL, DV1394_NTSC, AV_OPT_FLAG_DECODING_PARAM, "standard" },
 | 
			
		||||
    { "PAL",      "", 0, FF_OPT_TYPE_CONST, {.dbl = DV1394_PAL},   0, 0, AV_OPT_FLAG_DECODING_PARAM, "standard" },
 | 
			
		||||
    { "NTSC",     "", 0, FF_OPT_TYPE_CONST, {.dbl = DV1394_NTSC},  0, 0, AV_OPT_FLAG_DECODING_PARAM, "standard" },
 | 
			
		||||
    { NULL },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const AVClass dv1394_class = {
 | 
			
		||||
    .class_name = "DV1394 indev",
 | 
			
		||||
    .item_name  = av_default_item_name,
 | 
			
		||||
    .option     = options,
 | 
			
		||||
    .version    = LIBAVUTIL_VERSION_INT,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
AVInputFormat ff_dv1394_demuxer = {
 | 
			
		||||
    .name           = "dv1394",
 | 
			
		||||
    .long_name      = NULL_IF_CONFIG_SMALL("DV1394 A/V grab"),
 | 
			
		||||
@ -234,5 +253,6 @@ AVInputFormat ff_dv1394_demuxer = {
 | 
			
		||||
    .read_header    = dv1394_read_header,
 | 
			
		||||
    .read_packet    = dv1394_read_packet,
 | 
			
		||||
    .read_close     = dv1394_close,
 | 
			
		||||
    .flags          = AVFMT_NOFILE
 | 
			
		||||
    .flags          = AVFMT_NOFILE,
 | 
			
		||||
    .priv_class     = &dv1394_class,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user