[FFmpeg-trac] #1656(undetermined:new): AVRn (mjpeg): change field order for ntsc
FFmpeg
trac at avcodec.org
Sat Aug 18 20:07:23 CEST 2012
#1656: AVRn (mjpeg): change field order for ntsc
-------------------------------------+-------------------------------------
Reporter: ami_stuff | Owner:
Type: defect | Status: new
Priority: normal | Component:
Version: | undetermined
unspecified | Keywords:
Blocked By: | Blocking:
Reproduced by developer: 0 | Analyzed by developer: 0
-------------------------------------+-------------------------------------
AVRn in ntsc mode needs change of field order, so probably check for MKTAG
and "NTSC" string in the file should be aded.
libavcodec/mjpegdec.c:
{{{
av_cold int ff_mjpeg_decode_init(AVCodecContext *avctx)
{
MJpegDecodeContext *s = avctx->priv_data;
if (!s->picture_ptr)
s->picture_ptr = &s->picture;
avcodec_get_frame_defaults(&s->picture);
s->avctx = avctx;
ff_dsputil_init(&s->dsp, avctx);
ff_init_scantable(s->dsp.idct_permutation, &s->scantable,
ff_zigzag_direct);
s->buffer_size = 0;
s->buffer = NULL;
s->start_code = -1;
s->first_picture = 1;
s->org_height = avctx->coded_height;
avctx->chroma_sample_location = AVCHROMA_LOC_CENTER;
build_basic_mjpeg_vlc(s);
if (s->extern_huff) {
av_log(avctx, AV_LOG_INFO, "using external huffman table\n");
init_get_bits(&s->gb, avctx->extradata, avctx->extradata_size *
8);
if (ff_mjpeg_decode_dht(s)) {
av_log(avctx, AV_LOG_ERROR,
"error using external huffman table, switching back to
internal\n");
build_basic_mjpeg_vlc(s);
}
}
- if (avctx->field_order == AV_FIELD_BB) {
+ if (avctx->field_order == AV_FIELD_BB || s->avctx->codec_tag ==
MKTAG('A', 'V', 'R', 'n') && ntsc_string) {
s->interlace_polarity = 1; /* bottom field first */
av_log(avctx, AV_LOG_DEBUG, "bottom field first\n");
}
if (avctx->codec->id == CODEC_ID_AMV)
s->flipped = 1;
return 0;
}
}}}
{{{
C:\>ffmpeg -i ntsc.avi out.bmp
ffmpeg version N-43678-gceb8773 Copyright (c) 2000-2012 the FFmpeg
developers
built on Aug 18 2012 02:22:03 with gcc 4.5.0 (GCC) 20100414 (Fedora
MinGW 4.5.
0-1.fc14)
configuration: --prefix=/var/www/users/research/ffmpeg/snapshots/build
--arch=
x86 --target-os=mingw32 --cross-prefix=i686-pc-mingw32- --cc='ccache i686
-pc-min
gw32-gcc' --enable-w32threads --enable-memalign-hack --enable-runtime-
cpudetect
--enable-cross-compile --enable-static --disable-shared --extra-
libs='-lws2_32 -
lwinmm -lpthread' --extra-cflags='--static
-I/var/www/users/research/ffmpeg/snap
shots/build/include' --extra-ldflags='-static
-L/var/www/users/research/ffmpeg/s
napshots/build/lib' --enable-bzlib --enable-zlib --enable-gpl --enable-
version3
--enable-nonfree --enable-libx264 --enable-libspeex --enable-libtheora
--enable-
libvorbis --enable-libfaac --enable-libxvid --enable-libopencore-amrnb
--enable-
libopencore-amrwb --enable-libmp3lame --enable-libvpx --disable-
decoder=libvpx
libavutil 51. 70.100 / 51. 70.100
libavcodec 54. 53.100 / 54. 53.100
libavformat 54. 25.100 / 54. 25.100
libavdevice 54. 2.100 / 54. 2.100
libavfilter 3. 10.100 / 3. 10.100
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, avi, from 'ntsc.avi':
Duration: 00:00:00.10, start: 0.000000, bitrate: 6630 kb/s
Stream #0:0: Video: mjpeg (AVRn / 0x6E525641), yuvj422p, 720x496, 10
tbr, 10
tbn, 10 tbc
Output #0, image2, to 'out.bmp':
Metadata:
encoder : Lavf54.25.100
Stream #0:0: Video: bmp, bgr24, 720x496, q=2-31, 200 kb/s, 90k tbn, 10
tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg -> bmp)
Press [q] to stop, [?] for help
frame= 1 fps=0.0 q=0.0 Lsize= 0kB time=00:00:00.10 bitrate=
0.0kbits/
s
video:1046kB audio:0kB subtitle:0 global headers:0kB muxing overhead
-100.000000
%
}}}
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1656>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list